Spliting Themes Out

Spliting Themes Out

by Dan Poltawski -
Number of replies: 2
I am working on a large moodle hosting setup which will eventually become moodle hosting for around 1000 schools with around 250,000 students.

We want to strike the right balance between a centrally managed install and upgrade cycle and single-site flexibility. It is essential to share a single codebase between all schools but provide the flexibility to allow individual school themes (which are not visible to other schools).

One distinct inflexibility which it appears to me with moodle is that (unlike the data dir) the themes directory is fixed. When I think about it, I see where it makes sense in terms of referencing publicly visible images and such. But it makes a customisable solution interesting.

Does anyone else have any ideas in how to deal with this sort of issue, are there any modifcations which allow this kind of flexibility within moodle? I had a brief skim through the code, and the themes directory seems fairly heavily refrences so I imagine making changes to the way this works would be non-trivial

Our current solution is to use unionfs to mount the code directory, and apply school-based changes on top, which is incredibly elegant, but until i've conducted proper testing on the scalability of such a solution, i'm going to be looking for a more simplistic aproach.
Average of ratings: -
In reply to Dan Poltawski

Re: Splitting Themes Out

by Helen Foster -
Picture of Core developers Picture of Documentation writers Picture of Moodle HQ Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers Picture of Translators
Hi Dan,

As you've most likely found, Moodle 1.5 supports site, course, user and session themes (see MoodleDocs Theme config for further details). Please could you explain any requirements you have in addition to these options.
In reply to Helen Foster

Re: Splitting Themes Out

by Dan Poltawski -
To allow specific theme directories per config file. i.e. to keep themes in isolation per site, in a situation where there is a shared codebase for multiple sites.