本文整理汇总了PHP中theme_config::find_theme_config方法的典型用法代码示例。如果您正苦于以下问题:PHP theme_config::find_theme_config方法的具体用法?PHP theme_config::find_theme_config怎么用?PHP theme_config::find_theme_config使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类theme_config
的用法示例。
在下文中一共展示了theme_config::find_theme_config方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* Private constructor, can be called only from the factory method.
* @param stdClass $config
*/
private function __construct($config)
{
global $CFG;
//needed for included lib.php files
$this->settings = $config->settings;
$this->name = $config->name;
$this->dir = $config->dir;
if ($this->name != 'base') {
$baseconfig = theme_config::find_theme_config('base', $this->settings);
} else {
$baseconfig = $config;
}
$configurable = array('parents', 'sheets', 'parents_exclude_sheets', 'plugins_exclude_sheets', 'javascripts', 'javascripts_footer', 'parents_exclude_javascripts', 'layouts', 'enable_dock', 'enablecourseajax', 'rendererfactory', 'csspostprocess', 'editor_sheets', 'rarrow', 'larrow', 'hidefromselector');
foreach ($config as $key => $value) {
if (in_array($key, $configurable)) {
$this->{$key} = $value;
}
}
// verify all parents and load configs and renderers
foreach ($this->parents as $parent) {
if ($parent == 'base') {
$parent_config = $baseconfig;
} else {
if (!($parent_config = theme_config::find_theme_config($parent, $this->settings))) {
// this is not good - better exclude faulty parents
continue;
}
}
$libfile = $parent_config->dir . '/lib.php';
if (is_readable($libfile)) {
// theme may store various function here
include_once $libfile;
}
$renderersfile = $parent_config->dir . '/renderers.php';
if (is_readable($renderersfile)) {
// may contain core and plugin renderers and renderer factory
include_once $renderersfile;
}
$this->parent_configs[$parent] = $parent_config;
$rendererfile = $parent_config->dir . '/renderers.php';
if (is_readable($rendererfile)) {
// may contain core and plugin renderers and renderer factory
include_once $rendererfile;
}
}
$libfile = $this->dir . '/lib.php';
if (is_readable($libfile)) {
// theme may store various function here
include_once $libfile;
}
$rendererfile = $this->dir . '/renderers.php';
if (is_readable($rendererfile)) {
// may contain core and plugin renderers and renderer factory
include_once $rendererfile;
} else {
// check if renderers.php file is missnamed renderer.php
if (is_readable($this->dir . '/renderer.php')) {
debugging('Developer hint: ' . $this->dir . '/renderer.php should be renamed to ' . $this->dir . "/renderers.php.\n See: http://docs.moodle.org/dev/Output_renderers#Theme_renderers.", DEBUG_DEVELOPER);
}
}
// cascade all layouts properly
foreach ($baseconfig->layouts as $layout => $value) {
if (!isset($this->layouts[$layout])) {
foreach ($this->parent_configs as $parent_config) {
if (isset($parent_config->layouts[$layout])) {
$this->layouts[$layout] = $parent_config->layouts[$layout];
continue 2;
}
}
$this->layouts[$layout] = $value;
}
}
//fix arrows if needed
$this->check_theme_arrows();
}
示例2: find_theme_config
/**
* 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;
}
示例3: __construct
/**
* Private constructor, can be called only from the factory method.
* @param stdClass $config
*/
private function __construct($config)
{
global $CFG;
//needed for included lib.php files
$this->settings = $config->settings;
$this->name = $config->name;
$this->dir = $config->dir;
if ($this->name != 'base') {
$baseconfig = theme_config::find_theme_config('base', $this->settings);
} else {
$baseconfig = $config;
}
$configurable = array('parents', 'sheets', 'parents_exclude_sheets', 'plugins_exclude_sheets', 'javascripts', 'javascripts_footer', 'parents_exclude_javascripts', 'layouts', 'resource_mp3player_colors', 'enable_dock', 'enablecourseajax', 'filter_mediaplugin_colors', 'rendererfactory', 'csspostprocess', 'editor_sheets', 'rarrow', 'larrow', 'hidefromselector');
foreach ($config as $key => $value) {
if (in_array($key, $configurable)) {
$this->{$key} = $value;
}
}
// verify all parents and load configs and renderers
foreach ($this->parents as $parent) {
if ($parent == 'base') {
$parent_config = $baseconfig;
} else {
if (!($parent_config = theme_config::find_theme_config($parent, $this->settings))) {
// this is not good - better exclude faulty parents
continue;
}
}
$libfile = $parent_config->dir . '/lib.php';
if (is_readable($libfile)) {
// theme may store various function here
include_once $libfile;
}
$renderersfile = $parent_config->dir . '/renderers.php';
if (is_readable($renderersfile)) {
// may contain core and plugin renderers and renderer factory
include_once $renderersfile;
}
$this->parent_configs[$parent] = $parent_config;
$rendererfile = $parent_config->dir . '/renderers.php';
if (is_readable($rendererfile)) {
// may contain core and plugin renderers and renderer factory
include_once $rendererfile;
}
}
$libfile = $this->dir . '/lib.php';
if (is_readable($libfile)) {
// theme may store various function here
include_once $libfile;
}
$rendererfile = $this->dir . '/renderers.php';
if (is_readable($rendererfile)) {
// may contain core and plugin renderers and renderer factory
include_once $rendererfile;
}
// cascade all layouts properly
foreach ($baseconfig->layouts as $layout => $value) {
if (!isset($this->layouts[$layout])) {
foreach ($this->parent_configs as $parent_config) {
if (isset($parent_config->layouts[$layout])) {
$this->layouts[$layout] = $parent_config->layouts[$layout];
continue 2;
}
}
$this->layouts[$layout] = $value;
}
}
//fix arrows if needed
$this->check_theme_arrows();
}