Note: You are currently viewing documentation for Moodle 2.2. Up-to-date documentation for the latest stable version is available here: Chameleon theme.

Chameleon theme

From MoodleDocs
Revision as of 10:48, 7 June 2006 by Matt Gibson (talk | contribs) (added 'Which tags to change' about firefox webdeveloper extension)

Template:Moodle 1.6 Chameleon is an interactive Moodle theme. You are welcome to try it at the Chameleon theme test site - please login with username and password "chameleon".

How does Chameleon change its colours?

  • Shift-click anywhere on the page to open a floating window showing all elements under the mouse
  • Click on elements in the list to create a CSS selector - one or as many as you need
  • Click on the "Set Styles" button and set the styles of your choice
  • View the changes immediately

Chameleon allows almost complete control over styling elements in Moodle. It makes working with themes easier for theme designers and opens up a wide range of experimental uses for interface designers. Just change and work with the changed page and go on optimizing your theme whilst you work with Moodle.

Chameleon makes use of Ajax technologies.

Which tags to change

The easy way to find this out is to use Firefox with the Webdeveloper extension installed. You can then press Ctrl-Shift-Y to change your mouse cursor to crosshairs so that whatever you hover over, it displays the CSS information (e.g. div#content) in the status bar at the bottom of the browser page.

Saving your changes

As you work, you have the option to save changes in a temporary file, or save them to the theme CSS file on the server. All temporarily saved changes may be reverted.

Once your theme is completed

Chameleon does a lot of work behind the scenes as the page loads. This extra work can slow down the display of the page, particularly as your theme files grow bigger. Once your theme is completed and there is no need to be running the Chameleon interface, you may disable the interactive theme by editing the line in config.php:

$THEME->chameleonenabled = true;

and changing true to false.

Now, no extra code will be run on page load and your customised theme will behave exactly like any other Moodle theme. (Please note that this only applies to editing users - a non-editing user will never have any of the extra code running when they view a page.)

Alternative uses

In addition to creating a complete theme, Chameleon may also be used to help make changes to your existing theme. Simply experiment with Chameleon until you have achieved the change you desire, then copy the css in the "Free Edit" tab to a style sheet in your theme folder.

Adding the Chameleon "engine" to your theme

You may add the Chameleon engine to any existing theme as follows:

  • Copy the "ui" folder from the Chameleon theme folder to your theme folder.
  • Copy the two files temp_user_styles.css and user_styles.css from your Chameleon folder to your theme folder. Set write permissions for these two files that PHP can write the changed CSS properties to the files. You may choose to delete all CSS properties in these files if you want to start from scratch.
  • Add the include line in header.html (line 9):
      7     <link rel="shortcut icon" href="<?php echo 
$CFG->wwwroot.'/theme/'.current_theme() ?>/favicon.ico" />
      8
      9     <?php include('ui/chameleon.php'); ?>
     10     <?php include("$CFG->javascript"); ?>
     11 </head>
     12
  • Add the Chameleon vars in config.php and set them (line 99 to 109):
     89
     90 $THEME->makenavmenulist = false;
     91
     92 /// By setting this to true, then you will have access to a
     93 /// new variable in your header.html and footer.html called
     94 /// $navmenulist ... this contains a simple XHTML menu of
     95 /// all activities in the current course, mostly useful for
     96 /// creating popup navigation menus and so on.
     97
     98
     99 $THEME->chameleonenabled = true;
    100
    101 /// By setting this to false it disables editing of the stylesheets
    102 /// this saves the overhead of loading chameleon on each page
    103 /// viewed by a user who can edit pages. it is recommended to
    104 /// set this to false once you're satisfied with your theme.
    105
    106 $THEME->chameleonteachereditenabled = false;
    107
    108 /// If you use chameleon as a course theme setting this to true
    109 /// will allow teachers on that course to edit the theme.
    110

Then you can start working on your CSS for any Moodle page from your browser.

You can see and add CSS properties of the two files temp_user_styles.css and user_styles.css. You can't see or change the CSS properties in your other CSS files in your theme folder.

See also