Affects Version/s: 2.0
Fix Version/s: None
This issue is related to
MDL-25856 - it seems that in that ticket it was decided that a theme creator should call the parent csspostprocess function if they wanted it, rather than Moodle doing it manually. The issue is that csspostprocess doesn't accept an array.
When creating a child theme that has its own postprocessing based off of a parent that also has postprocessing, only one can be called, not both.
Here's what happens:
$THEME->csspostprocess = array('parent_process_css', 'child_process_css');
will cause Moodle to throw errors about not being able to parse $csspostprocess.
Each value in the array would be parsed and the process_css function would be called for each theme and then properly rendered in that order.
Theme Parent has a single setting that defines the URL for the site logo
Themes Child1, Child2, and Child3 have a variety of different settings including colors, etc...
Ideally the admin would be able to change the logo url in the Parent settings page and it would propagate to Child1, Child2, and Child3 automatically.
As it is, the settings, lib functions, and strings must first be removed from the parent theme, and then replicated in Child1, Child2, and Child3 - then the admin must go to the settings page for Child1, Child2, and Child3 to change the logo url.
Obviously the more settings that the parent has the more trouble the current model becomes to maintain (e.g. logo url, footer information, font size options, etc...) and the more child themes that are created off of the parent theme cause the amount of extra work to increase exponentially.