Moodle
  1. Moodle
  2. MDL-32684

Setting Theme-Priority with $CFG->themeorder does not work correctly

    Details

    • Testing Instructions:
      Hide
      1. In config php set: $CFG->themeorder = array('course', 'category', 'session', 'user', 'site');
      2. Go To Admin > Appearance > Themes > Theme Settings
      3. Enable user themes and course themes
      4. Go to your user profile and edit your theme to be anonomoly
      5. Verify theme is is changed to anomoly on all pages
      6. Create a course and set the theme to splash
      7. Verify theme is changed to splash
      8. Change your config.php to:
        $CFG->themeorder = array('user', 'course', 'category', 'session', 'site');
      9. Verify that the theme visible in the course is now anomoly not splash.
      Show
      In config php set: $CFG->themeorder = array('course', 'category', 'session', 'user', 'site'); Go To Admin > Appearance > Themes > Theme Settings Enable user themes and course themes Go to your user profile and edit your theme to be anonomoly Verify theme is is changed to anomoly on all pages Create a course and set the theme to splash Verify theme is changed to splash Change your config.php to: $CFG->themeorder = array('user', 'course', 'category', 'session', 'site'); Verify that the theme visible in the course is now anomoly not splash.
    • Workaround:
      Hide

      None

      Show
      None
    • Difficulty:
      Easy
    • Affected Branches:
      MOODLE_22_STABLE
    • Fixed Branches:
      MOODLE_21_STABLE, MOODLE_22_STABLE
    • Pull Master Branch:
    • Rank:
      39636

      Description

      When using $CFG->themeorder = array('session', 'course', 'category', 'user', 'site'); Moodle will take the site-Theme before the course-Theme because of missing "break" in the switch-case Block of the function resolve_theme() in lib/pagelib.php.

        Issue Links

          Activity

          Hide
          Mary Evans added a comment -

          Thank you for reporting this issue and for the patch, Andreas, however this is not a 'Themes' problem, although it is related, it actually comes under Administration as the fix would need to be done in CORE files and not Themes. So, in view of this, I have just changed the component from 'Themes' to 'Administration' so one of the Moodle Developers can look at this.

          Thanks again
          Mary

          Show
          Mary Evans added a comment - Thank you for reporting this issue and for the patch, Andreas, however this is not a 'Themes' problem, although it is related, it actually comes under Administration as the fix would need to be done in CORE files and not Themes. So, in view of this, I have just changed the component from 'Themes' to 'Administration' so one of the Moodle Developers can look at this. Thanks again Mary
          Hide
          Michael de Raadt added a comment -

          Thanks for spotting that and providing a patch.

          Show
          Michael de Raadt added a comment - Thanks for spotting that and providing a patch.
          Hide
          Michael de Raadt added a comment -

          Hi, Tim.

          I thought you might be interested in looking at this potential fix as you were involved in the original code.

          Show
          Michael de Raadt added a comment - Hi, Tim. I thought you might be interested in looking at this potential fix as you were involved in the original code.
          Hide
          Tim Hunt added a comment -

          Oh, I see. Yes, good catch Andreas. I can't believe this bug has been there for nearly two years, and no-one has noticed. This fix should be turned into a git commit, and submitted for integration.

          (It took me a while to work out why the break; statements were necessary, given that there are all the return statements there, but they are necessary.)

          Show
          Tim Hunt added a comment - Oh, I see. Yes, good catch Andreas. I can't believe this bug has been there for nearly two years, and no-one has noticed. This fix should be turned into a git commit, and submitted for integration. (It took me a while to work out why the break; statements were necessary, given that there are all the return statements there, but they are necessary.)
          Hide
          Mary Evans added a comment -

          Thanks Tim, if it's OK I can do this.

          Show
          Mary Evans added a comment - Thanks Tim, if it's OK I can do this.
          Hide
          Dan Poltawski added a comment -

          Added more verbose testing instructions.

          Show
          Dan Poltawski added a comment - Added more verbose testing instructions.
          Hide
          Dan Poltawski added a comment -

          Integrated, thanks

          Show
          Dan Poltawski added a comment - Integrated, thanks
          Hide
          Rajesh Taneja added a comment -

          Works Great
          Thanks for fixing this Mary and Andreas.

          Show
          Rajesh Taneja added a comment - Works Great Thanks for fixing this Mary and Andreas.
          Hide
          Eloy Lafuente (stronk7) added a comment -

          This is now part of Moodle and a few millions people around the globe will be using it soon. Isn't that awesome?

          Many, many thanks and don't forget http://youtu.be/4N7dPaP5Z8U

          Closing, ciao

          Show
          Eloy Lafuente (stronk7) added a comment - This is now part of Moodle and a few millions people around the globe will be using it soon. Isn't that awesome? Many, many thanks and don't forget http://youtu.be/4N7dPaP5Z8U Closing, ciao

            People

            • Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: