/**
  * 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;
 }
Beispiel #2
0
 /**
  * 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;
 }