/** * Loads the theme config from config.php file. * * @param string $themename * @param stdClass $settings from config_plugins table * @param boolean $parentscheck true to also check the parents. . * @return stdClass The theme configuration */ private static function find_theme_config($themename, $settings, $parentscheck = true) { // We have to use the variable name $THEME (upper case) because that // is what is used in theme config.php files. if (!($dir = theme_config::find_theme_location($themename))) { return null; } $THEME = new stdClass(); $THEME->name = $themename; $THEME->dir = $dir; $THEME->settings = $settings; global $CFG; // just in case somebody tries to use $CFG in theme config include "{$THEME->dir}/config.php"; // verify the theme configuration is OK if (!is_array($THEME->parents)) { // parents option is mandatory now return null; } else { // We use $parentscheck to only check the direct parents (avoid infinite loop). if ($parentscheck) { // Find all parent theme configs. foreach ($THEME->parents as $parent) { $parentconfig = theme_config::find_theme_config($parent, $settings, false); if (empty($parentconfig)) { return null; } } } } return $THEME; }
/** * Loads the theme config from config.php file. * * @param string $themename * @param stdClass $settings from config_plugins table * @return stdClass The theme configuration */ private static function find_theme_config($themename, $settings) { // We have to use the variable name $THEME (upper case) because that // is what is used in theme config.php files. if (!($dir = theme_config::find_theme_location($themename))) { return null; } $THEME = new stdClass(); $THEME->name = $themename; $THEME->dir = $dir; $THEME->settings = $settings; global $CFG; // just in case somebody tries to use $CFG in theme config include "{$THEME->dir}/config.php"; // verify the theme configuration is OK if (!is_array($THEME->parents)) { // parents option is mandatory now return null; } return $THEME; }