Added the possibility for themes to override core module functions

This commit is contained in:
Andrej Stieben 2016-02-04 21:45:21 +01:00
parent acefb84681
commit 48e6ff21aa
2 changed files with 24 additions and 3 deletions

View file

@ -59,7 +59,19 @@ The same rule applies to the JavaScript files found in
they will be overwritten by files in they will be overwritten by files in
/view/theme/**your-theme-name**/js. /view/theme/**your-theme-name**/js
### Modules
You have the freedom to override core modules found in
/mod
They will be overwritten by files in
/view/theme/**your-theme-name**/mod
Be aware that you can break things easily here if you don't know what you do. Also notice that you can override parts of the module functions not defined in your theme module will be loaded from the core module.
## Expand an existing Theme ## Expand an existing Theme

View file

@ -233,7 +233,16 @@ if(strlen($a->module)) {
} }
/** /**
* If not, next look for a 'standard' program module in the 'mod' directory * If not, next look for module overrides by the theme
*/
if((! $a->module_loaded) && (file_exists("view/theme/" . current_theme() . "/mod/{$a->module}.php"))) {
include_once("view/theme/" . current_theme() . "/mod/{$a->module}.php");
// We will not set module_loaded to true to allow for partial overrides.
}
/**
* Finally, look for a 'standard' program module in the 'mod' directory
*/ */
if((! $a->module_loaded) && (file_exists("mod/{$a->module}.php"))) { if((! $a->module_loaded) && (file_exists("mod/{$a->module}.php"))) {