system system.base system.caching system.caching.dependencies system.collections system.console system.db system.db.ar system.db.schema system.db.schema.cubrid system.db.schema.mssql system.db.schema.mysql system.db.schema.oci system.db.schema.pgsql system.db.schema.sqlite system.gii system.i18n system.i18n.gettext system.logging system.test system.utils system.validators system.web system.web.actions system.web.auth system.web.filters system.web.form system.web.helpers system.web.renderers system.web.services system.web.widgets system.web.widgets.captcha system.web.widgets.pagers zii.behaviors zii.widgets zii.widgets.grid zii.widgets.jui

CThemeManager

system.web
继承 class CThemeManager » CApplicationComponent » CComponent
实现 IApplicationComponent
可用自 1.0
源码 framework/web/CThemeManager.php
CThemeManager manages the themes for the Web application.

A theme is a collection of view/layout files and resource files (e.g. css, image, js files). When a theme is active, CController will look for the specified view/layout under the theme folder first. The corresponding view/layout files will be used if the theme provides them. Otherwise, the default view/layout files will be used.

By default, each theme is organized as a directory whose name is the theme name. All themes are located under the "WebRootPath/themes" directory.

To activate a theme, set the theme property to be the name of that theme.

Since a self-contained theme often contains resource files that are made Web accessible, please make sure the view/layout files are protected from Web access.

公共属性

隐藏继承的属性

属性类型描述被定义在
basePath string the base path for all themes. CThemeManager
baseUrl string the base URL for all themes. CThemeManager
behaviors array the behaviors that should be attached to this component. CApplicationComponent
isInitialized boolean Checks if this application component has been initialized. CApplicationComponent
themeClass string the name of the theme class for representing a theme. CThemeManager
themeNames array list of available theme names CThemeManager

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. CComponent
__get() Returns a property value, an event handler list or a behavior based on its name. CComponent
__isset() Checks if a property value is null. CComponent
__set() Sets value of a component property. CComponent
__unset() Sets a component property to be null. CComponent
asa() Returns the named behavior object. CComponent
attachBehavior() Attaches a behavior to this component. CComponent
attachBehaviors() Attaches a list of behaviors to the component. CComponent
attachEventHandler() Attaches an event handler to an event. CComponent
canGetProperty() Determines whether a property can be read. CComponent
canSetProperty() Determines whether a property can be set. CComponent
detachBehavior() Detaches a behavior from the component. CComponent
detachBehaviors() Detaches all behaviors from the component. CComponent
detachEventHandler() Detaches an existing event handler. CComponent
disableBehavior() Disables an attached behavior. CComponent
disableBehaviors() Disables all behaviors attached to this component. CComponent
enableBehavior() Enables an attached behavior. CComponent
enableBehaviors() Enables all behaviors attached to this component. CComponent
evaluateExpression() Evaluates a PHP expression or callback under the context of this component. CComponent
getBasePath() Returns the base path for all themes. Defaults to "WebRootPath/themes". CThemeManager
getBaseUrl() Returns the base URL for all themes. Defaults to "/WebRoot/themes". CThemeManager
getEventHandlers() Returns the list of attached event handlers for an event. CComponent
getIsInitialized() Checks if this application component has been initialized. CApplicationComponent
getTheme() Returns the theme retrieved. Null if the theme does not exist. CThemeManager
getThemeNames() Returns list of available theme names CThemeManager
hasEvent() Determines whether an event is defined. CComponent
hasEventHandler() Checks whether the named event has attached handlers. CComponent
hasProperty() Determines whether a property is defined. CComponent
init() Initializes the application component. CApplicationComponent
raiseEvent() Raises an event. CComponent
setBasePath() Sets the base path for all themes. CThemeManager
setBaseUrl() Sets the base URL for all themes. CThemeManager

属性详情

basePath 属性
public string getBasePath()
public void setBasePath(string $value)

the base path for all themes. Defaults to "WebRootPath/themes".

baseUrl 属性
public string getBaseUrl()
public void setBaseUrl(string $value)

the base URL for all themes. Defaults to "/WebRoot/themes".

themeClass 属性
public string $themeClass;

the name of the theme class for representing a theme. Defaults to CTheme. This can also be a class name in dot syntax.

themeNames 属性 只读
public array getThemeNames()

list of available theme names

方法详情

getBasePath() 方法
public string getBasePath()
{return} string the base path for all themes. Defaults to "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} string the base URL for all themes. Defaults to "/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 string name of the theme to be retrieved
{return} CTheme the theme retrieved. Null if the theme does not exist.
源码: framework/web/CThemeManager.php#58 (显示)
public function getTheme($name)
{
    
$themePath=$this->getBasePath().DIRECTORY_SEPARATOR.$name;
    if(
is_dir($themePath))
    {
        
$class=Yii::import($this->themeClasstrue);
        return new 
$class($name,$themePath,$this->getBaseUrl().'/'.$name);
    }
    else
        return 
null;
}

getThemeNames() 方法
public array getThemeNames()
{return} array list of available theme names
源码: 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 string the base path for all themes.
源码: 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 string the base URL for all themes.
源码: framework/web/CThemeManager.php#126 (显示)
public function setBaseUrl($value)
{
    
$this->_baseUrl=rtrim($value,'/');
}