CThemeManager
| Пакет | system.web |
|---|---|
| Наследование | class CThemeManager » CApplicationComponent » CComponent |
| Реализует | IApplicationComponent |
| С версии | 1.0 |
| Исходный код | framework/web/CThemeManager.php |
CThemeManager управляет темами веб-приложения.
Тема — это набор файлов представления/макета и файлов ресурсов (например, css, изображения, js-файлы). Когда активна тема, CController сначала ищет указанные представление/макет в папке темы. Соответствующие файлы представления/макета будут использоваться, если тема их предоставляет. В противном случае будут использованы стандартные файлы представления/макета.
По умолчанию каждая тема организована как директория с именем, соответствующим названию темы. Все темы расположены в каталоге "WebRootPath/themes".
Чтобы активировать тему, установите свойство theme в имя этой темы.
Поскольку автономная тема часто содержит файлы ресурсов, доступные в веб, убедитесь, что файлы представления/макета защищены от доступа по сети.
Тема — это набор файлов представления/макета и файлов ресурсов (например, css, изображения, js-файлы). Когда активна тема, CController сначала ищет указанные представление/макет в папке темы. Соответствующие файлы представления/макета будут использоваться, если тема их предоставляет. В противном случае будут использованы стандартные файлы представления/макета.
По умолчанию каждая тема организована как директория с именем, соответствующим названию темы. Все темы расположены в каталоге "WebRootPath/themes".
Чтобы активировать тему, установите свойство theme в имя этой темы.
Поскольку автономная тема часто содержит файлы ресурсов, доступные в веб, убедитесь, что файлы представления/макета защищены от доступа по сети.
Свойства общего доступа
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| basePath | string | базовый путь для всех тем. | CThemeManager |
| baseUrl | string | базовый URL для всех тем. | CThemeManager |
| behaviors | array | поведение, которое должно быть прикреплено к данному компоненту. | CApplicationComponent |
| isInitialized | boolean | Проверяет, был ли инициализирован компонент приложения. | CApplicationComponent |
| themeClass | string | имя класса темы для представления темы. | CThemeManager |
| themeNames | array | список доступных названий тем | CThemeManager |
Методы общего доступа
| Метод | Описание | Определено |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | CComponent |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение по его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | CComponent |
| attachEventHandler() | Прикрепляет обработчик событий к событию. | CComponent |
| canGetProperty() | Определяет, можно ли читать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает прикрепленное поведение. | CComponent |
| disableBehaviors() | Отключает все прикрепленные поведения к данному компоненту. | CComponent |
| enableBehavior() | Включает прикрепленное поведение. | CComponent |
| enableBehaviors() | Включает все прикрепленные к данному компоненту поведения. | CComponent |
| evaluateExpression() | Вычисляет выражение PHP или обратный вызов в контексте этого компонента. | CComponent |
| getBasePath() | Возвращает базовый путь для всех тем. По умолчанию "WebRootPath/themes". | CThemeManager |
| getBaseUrl() | Возвращает базовый URL для всех тем. По умолчанию "/WebRoot/themes". | CThemeManager |
| getEventHandlers() | Возвращает список прикреплённых обработчиков событий для события. | CComponent |
| getIsInitialized() | Проверяет, был ли инициализирован компонент приложения. | CApplicationComponent |
| getTheme() | Возвращает полученную тему. Нуль, если тема не существует. | CThemeManager |
| getThemeNames() | Возвращает список доступных названий тем | CThemeManager |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли присоединенные обработчики к событию с указанным именем. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует компонент приложения. | CApplicationComponent |
| raiseEvent() | Вызывает событие. | CComponent |
| setBasePath() | Устанавливает базовый путь для всех тем. | CThemeManager |
| setBaseUrl() | Устанавливает базовый URL для всех тем. | CThemeManager |
Подробное описание свойств
basePath свойство
public string getBasePath()
public void setBasePath(string $value)
базовый путь для всех тем. По умолчанию "WebRootPath/themes".
baseUrl свойство
public string getBaseUrl()
public void setBaseUrl(string $value)
базовый URL для всех тем. По умолчанию "/WebRoot/themes".
themeClass свойство
public string $themeClass;
имя класса темы для представления темы. По умолчанию CTheme. Также может быть именем класса в формате точка с запятой.
themeNames свойство только для чтения
public array getThemeNames()
список доступных названий тем
Подробное описание методов
getBasePath() метод
public string getBasePath() | ||
| {return} | string | базовый путь для всех тем. По умолчанию "WebRootPath/themes". |
Исходный код: framework/web/CThemeManager.php#95 (показать)
public function getBasePath()
{
if($this->_basePath===null)
$this->setBasePath(dirname(Yii::app()->getRequest()->getScriptFile()).DIRECTORY_SEPARATOR.self::DEFAULT_BASEPATH);
return $this->_basePath;
}
getBaseUrl() метод
public string getBaseUrl() | ||
| {return} | строка | базовый URL для всех тем. По умолчанию "/WebRoot/themes". |
Исходный код: framework/web/CThemeManager.php#116 (показать)
public function getBaseUrl()
{
if($this->_baseUrl===null)
$this->_baseUrl=Yii::app()->getBaseUrl().'/'.self::DEFAULT_BASEPATH;
return $this->_baseUrl;
}
getTheme() метод
public CTheme getTheme(string $name) | ||
| $name | строка | имя темы, которую нужно получить |
| {return} | CTheme | полученная тема. Null, если тема не существует. |
Исходный код: framework/web/CThemeManager.php#58 (показать)
public function getTheme($name)
{
$themePath=$this->getBasePath().DIRECTORY_SEPARATOR.$name;
if(is_dir($themePath))
{
$class=Yii::import($this->themeClass, true);
return new $class($name,$themePath,$this->getBaseUrl().'/'.$name);
}
else
return null;
}
getThemeNames() метод
public array getThemeNames() | ||
| {return} | массив | список доступных имён тем |
Исходный код: framework/web/CThemeManager.php#73 (показать)
public function getThemeNames()
{
static $themes;
if($themes===null)
{
$themes=array();
$basePath=$this->getBasePath();
$folder=@opendir($basePath);
while(($file=@readdir($folder))!==false)
{
if($file!=='.' && $file!=='..' && $file!=='.svn' && $file!=='.gitignore' && is_dir($basePath.DIRECTORY_SEPARATOR.$file))
$themes[]=$file;
}
closedir($folder);
sort($themes);
}
return $themes;
}
setBasePath() метод
public void setBasePath(string $value) | ||
| $value | строка | базовый путь для всех тем. |
Исходный код: framework/web/CThemeManager.php#106 (показать)
public function setBasePath($value)
{
$this->_basePath=realpath($value);
if($this->_basePath===false || !is_dir($this->_basePath))
throw new CException(Yii::t('yii','Theme directory "{directory}" does not exist.',array('{directory}'=>$value)));
}
setBaseUrl() метод
public void setBaseUrl(string $value) | ||
| $value | строка | базовый URL для всех тем. |
Исходный код: framework/web/CThemeManager.php#126 (показать)
public function setBaseUrl($value)
{
$this->_baseUrl=rtrim($value,'/');
}
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CThemeManager