A small bounty of design goodness is hidden in plain sight on the forest that is the Moodle admin settings page.
Check out the Theme Settings panel. Located at
Site administration → Appearance → Themes → Theme settings
it boasts a series of exciting features for theme designers at any point of their learning curve. It offers further theme customization, personalization, and a series of features that will not provide you with multitenancy, but take you very close to it.
Let’s check it out!
Let the user choose their own theme
Allow user theme
option on the menu.
When enabled, the student will see a drop-down menu that will allow them to choose their own theme. A small but potentially meaningful step to make an experience more homely and personal.
But suppose you couple this with a basic lesson on how to make your own theme? It could really open up the doors for an exploration on how students would build their own interfaces.
There’s issues to figure out, of course. Letting everyone have their own theme could have come with serious performance issues. For a student to have the ability to enable a theme, the admin must install it first. We can see how taxing it can get after the second couple of individual themes.
Set a theme for each course…
Allow course themes
A probably more feasible option is to set up themes that work according to a course. This could also benefit certain courses for certain properties a theme provides. Some themes have an “edge” on content types such as video or galleries. Others excel at promoting focus and an efficient workflow.
On a more cosmetic front, course-based theming could recreate unique environments through colors and background images. Rich, HD photography of cosmic phenomena could entice students for their physics and chemistry class, as close-ups of animals or even microbes would for biology.
…Or set themes for course categories
Allow category themes
This principle could be applied to groups of courses. There are many ways to go about it:
- Colors for individual paths or tracks. A bold idea would be to associate courses and Competencies.
- Colors for levels of difficulty. In this case, themes associated to more advanced levels could reflect on the path taken so far, with the addition of special blocks or widgets.
- Colors for types of courses. Courses involving a lot of reading could have amber or less bright backgrounds. Courses heavy on typing, data entry or coding activity could resemble a dark console.
Easy switch themes from the URL
Allow theme changes in the URL
The address bar of your browser can be a small but powerful way to increase your productivity, and now, quickly tweak your visual experience.
You don’t have to be a hacker to realize you can access frequently visited websites and perform search queries from the address bar. Depending on the search engine you use you can get take advantage of basic, to really advanced search operators.
Many, non-search web services offer several ways to customize what the website shows the user by modifying the URL, and Moodle is no exception.
Enable this option to make Moodle switch appearances by appending either ‘
?’ or ‘
&’ (if the ‘?’ is already there followed by other command)
theme=themenameto the URL.
The default names of the themes can be found on the Moodle plugin directory. An admin can restrict and edit these names for URL access.
Almost multitenancy: Cohort-based themes
Allow cohort themes
One step further towards multitenancy (but not quite there) is the support for cohort-dependent themes. (“Allow cohort themes.”) Students from different organizations would enter the same Login page, but once inside different experiences could be served.
Befriend your student’s User Agent
Enable device detection
Device detection regular expressions
Think of a ‘User Agent’ as a brief bio or description of the device and technology a user using to access your site. Moodle as well as every other web application need a form of identification from the user’s browser in order to access their content. The user agent can tell Moodle if, for example, the user is using a laptop or a mobile device, and provide content accordingly. It can also check the browser and its version to make sure it can offer functional can compatible content.