learningworks/moodle-block_lw_courses

View on GitHub

Showing 142 of 142 total issues

Function lw_courses has a Cognitive Complexity of 61 (exceeds 5 allowed). Consider refactoring.
Open

    public function lw_courses($courses) {
        global $CFG, $PAGE, $DB, $OUTPUT;
        $html = '';
        // LearningWorks.
        $PAGE->requires->js(new moodle_url($CFG->wwwroot.'/blocks/lw_courses/js/custom.js'));
Severity: Minor
Found in renderer.php - About 1 day to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Method lw_courses has 167 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    public function lw_courses($courses) {
        global $CFG, $PAGE, $DB, $OUTPUT;
        $html = '';
        // LearningWorks.
        $PAGE->requires->js(new moodle_url($CFG->wwwroot.'/blocks/lw_courses/js/custom.js'));
Severity: Major
Found in renderer.php - About 6 hrs to fix

    File renderer.php has 359 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    <?php
    // This file is part of Moodle - http://moodle.org/
    //
    // Moodle is free software: you can redistribute it and/or modify
    // it under the terms of the GNU General Public License as published by
    Severity: Minor
    Found in renderer.php - About 4 hrs to fix

      The class block_lw_courses_renderer has an overall complexity of 72 which is very high. The configured complexity threshold is 50.
      Open

      class block_lw_courses_renderer extends plugin_renderer_base {
      
          /**
           * Construct contents of lw_courses block
           *
      Severity: Minor
      Found in renderer.php by phpmd

      Since: PHPMD 0.2.5

      The Weighted Method Count (WMC) of a class is a good indicator of how much time and effort is required to modify and maintain this class. The WMC metric is defined as the sum of complexities of all methods declared in a class. A large number of methods also means that this class has a greater potential impact on derived classes.

      Example:

      class Foo {
            public function bar() {
                if ($a == $b)  {
                    if ($a1 == $b1) {
                        fiddle();
                    } elseif ($a2 == $b2) {
                        fiddle();
                    } else {
                    }
                }
            }
            public function baz() {
                if ($a == $b) {
                    if ($a1 == $b1) {
                        fiddle();
                    } elseif ($a2 == $b2) {
                        fiddle();
                    } else {
                    }
                }
            }
            // Several other complex methods
        }

      Source: http://phpmd.org/rules/codesize.txt

      Function add_handles has 74 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

      M.block_lw_courses.add_handles = function(Y) {
          M.block_lw_courses.Y = Y;
          var MOVEICON = {
              pix: "i/move_2d",
              component: 'moodle'
      Severity: Major
      Found in module.js - About 2 hrs to fix

        Function block_lw_courses_get_sorted_courses has a Cognitive Complexity of 21 (exceeds 5 allowed). Consider refactoring.
        Open

        function block_lw_courses_get_sorted_courses($showallcourses = false) {
            global $USER;
        
            $limit = block_lw_courses_get_max_user_courses($showallcourses);
        
        
        Severity: Minor
        Found in locallib.php - About 2 hrs to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function course_image has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
        Open

            public function course_image($course) {
                global $CFG;
        
                $course = new core_course_list_element($course);
                // Check to see if a file has been set on the course level.
        Severity: Minor
        Found in renderer.php - About 1 hr to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

                            if (is_null($config->lw_courses_bgimage) ||
                                 $config->lw_courses_bgimage == BLOCKS_LW_COURSES_IMAGEASBACKGROUND_FALSE) {
                                // Embed the image url as a img tag sweet...
                                $image = html_writer::empty_tag('img', array('src' => $url, 'class' => 'course_image'));
                                return html_writer::div($image, 'image_wrap');
        Severity: Major
        Found in renderer.php and 1 other location - About 1 hr to fix
        renderer.php on lines 509..517

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 99.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

                if (is_null($config->lw_courses_bgimage) || $config->lw_courses_bgimage == BLOCKS_LW_COURSES_IMAGEASBACKGROUND_FALSE) {
                    // Embed the image url as a img tag sweet...
                    $image = html_writer::empty_tag('img', array( 'src' => $imageurl, 'class' => 'course_image' ));
                    return html_writer::div($image, 'image_wrap');
                } else {
        Severity: Major
        Found in renderer.php and 1 other location - About 1 hr to fix
        renderer.php on lines 461..470

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 99.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Method block_lw_courses_get_sorted_courses has 45 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

        function block_lw_courses_get_sorted_courses($showallcourses = false) {
            global $USER;
        
            $limit = block_lw_courses_get_max_user_courses($showallcourses);
        
        
        Severity: Minor
        Found in locallib.php - About 1 hr to fix

          Function CollapsibleRegion has 36 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

          M.block_lw_courses.CollapsibleRegion = function(Y, id, userpref, strtooltip) {
              // Record the pref name.
              this.userpref = userpref;
          
              // Find the divs in the document.
          Severity: Minor
          Found in module.js - About 1 hr to fix

            Method get_content has 32 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                public function get_content() {
                    global $USER, $CFG;
                    require_once($CFG->dirroot.'/user/profile/lib.php');
            
                    if ($this->content !== null) {
            Severity: Minor
            Found in block_lw_courses.php - About 1 hr to fix

              Method block_lw_courses_get_child_shortnames has 30 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

              function block_lw_courses_get_child_shortnames($courseid) {
                  global $DB;
                  $ctxselect = context_helper::get_preload_record_columns_sql('ctx');
                  $sql = "SELECT c.id, c.shortname, $ctxselect
                          FROM {enrol} e
              Severity: Minor
              Found in locallib.php - About 1 hr to fix

                Function truncate_html has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
                Open

                    public function truncate_html($s, $l, $e = '&hellip;') {
                        $s = trim($s);
                        $e = (strlen(strip_tags($s)) > $l) ? $e : '';
                        $i = 0;
                        $tags = array();
                Severity: Minor
                Found in renderer.php - About 1 hr to fix

                Cognitive Complexity

                Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                A method's cognitive complexity is based on a few simple rules:

                • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                • Code is considered more complex for each "break in the linear flow of the code"
                • Code is considered more complex when "flow breaking structures are nested"

                Further reading

                Function block_lw_courses_get_overviews has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
                Open

                function block_lw_courses_get_overviews($courses) {
                    $htmlarray = array();
                    if ($modules = get_plugin_list_with_function('mod', 'print_overview')) {
                        // Split courses list into batches with no more than MAX_MODINFO_CACHE_SIZE courses in one batch.
                        // Otherwise we exceed the cache limit in get_fast_modinfo() and rebuild it too often.
                Severity: Minor
                Found in locallib.php - About 1 hr to fix

                Cognitive Complexity

                Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                A method's cognitive complexity is based on a few simple rules:

                • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                • Code is considered more complex for each "break in the linear flow of the code"
                • Code is considered more complex when "flow breaking structures are nested"

                Further reading

                Method course_image has 26 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                    public function course_image($course) {
                        global $CFG;
                
                        $course = new core_course_list_element($course);
                        // Check to see if a file has been set on the course level.
                Severity: Minor
                Found in renderer.php - About 1 hr to fix

                  Function block_lw_courses_get_child_shortnames has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
                  Open

                  function block_lw_courses_get_child_shortnames($courseid) {
                      global $DB;
                      $ctxselect = context_helper::get_preload_record_columns_sql('ctx');
                      $sql = "SELECT c.id, c.shortname, $ctxselect
                              FROM {enrol} e
                  Severity: Minor
                  Found in locallib.php - About 55 mins to fix

                  Cognitive Complexity

                  Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                  A method's cognitive complexity is based on a few simple rules:

                  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                  • Code is considered more complex for each "break in the linear flow of the code"
                  • Code is considered more complex when "flow breaking structures are nested"

                  Further reading

                  Method block_lw_courses_pluginfile has 7 arguments (exceeds 4 allowed). Consider refactoring.
                  Open

                  function block_lw_courses_pluginfile($course, $birecord, $context, $filearea, $args, $forcedownload, array $options = array()) {
                  Severity: Major
                  Found in lib.php - About 50 mins to fix

                    Method collapsible_region has 6 arguments (exceeds 4 allowed). Consider refactoring.
                    Open

                        protected function collapsible_region($contents, $classes, $id, $caption, $userpref = '', $default = false) {
                    Severity: Minor
                    Found in renderer.php - About 45 mins to fix

                      Method collapsible_region_start has 5 arguments (exceeds 4 allowed). Consider refactoring.
                      Open

                          protected function collapsible_region_start($classes, $id, $caption, $userpref = '', $default = false) {
                      Severity: Minor
                      Found in renderer.php - About 35 mins to fix
                        Severity
                        Category
                        Status
                        Source
                        Language