CThemeManager
优质
小牛编辑
130浏览
2023-12-01
所有包 | 属性 | 方法
CThemeManager管理web应用程序的主题。
一个主题是一个view/layout文件和资源文件 (例如css,image,js文件)的集合。当一个主题是激活的时,CController 将首先在主题文件夹下查找指定的view/layout。 如果此主题提供了它们,相应的view/layout文件将被使用。 否则,默认的view/layout文件将被使用。
默认情况下,每一个主题被组织为一个目录,目录名就是主题名。 所有的主题存放在“WebRootPath/themes”目录下。
要激活一个主题,设置theme属性 为主题的名字。
一个独立的主题经常包含可经web访问的资源文件, 请确保view/layout文件被保护不被web用户访问。
public void setBasePath(string $value)
public void setBaseUrl(string $value)
源码: framework/web/CThemeManager.php#96 (显示)
源码: framework/web/CThemeManager.php#117 (显示)
源码: framework/web/CThemeManager.php#59 (显示)
源码: framework/web/CThemeManager.php#74 (显示)
源码: framework/web/CThemeManager.php#107 (显示)
源码: framework/web/CThemeManager.php#127 (显示)
包 | system.web |
---|---|
继承 | class CThemeManager » CApplicationComponent » CComponent |
实现 | IApplicationComponent |
源自 | 1.0 |
版本 | $Id: CThemeManager.php 3426 2011-10-25 00:01:09Z alexander.makarow $ |
源码 | framework/web/CThemeManager.php |
一个主题是一个view/layout文件和资源文件 (例如css,image,js文件)的集合。当一个主题是激活的时,CController 将首先在主题文件夹下查找指定的view/layout。 如果此主题提供了它们,相应的view/layout文件将被使用。 否则,默认的view/layout文件将被使用。
默认情况下,每一个主题被组织为一个目录,目录名就是主题名。 所有的主题存放在“WebRootPath/themes”目录下。
要激活一个主题,设置theme属性 为主题的名字。
一个独立的主题经常包含可经web访问的资源文件, 请确保view/layout文件被保护不被web用户访问。
公共属性
隐藏继承属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
basePath | string | 所有主题的基本路径。默认是“WebRootPath/themes”。 | CThemeManager |
baseUrl | string | 所有主题的基本URL。默认是“/WebRoot/themes”。 | CThemeManager |
behaviors | array | 这个应用组件附加的行为。 这此行为将在应用组件调用init时附加在应用组件上。 请参照CModel::behaviors如何指定此属性值。 | CApplicationComponent |
isInitialized | boolean | 检查应用组件是否已经初始化。 | CApplicationComponent |
themeClass | string | 表示一个主题的主题类名称。 默认是CTheme。这也可以是一个带点语法的类名。 | 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() | 返回已取回的主题。如果主题不存在为Null。 | 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”。 |
publicfunctiongetBasePath()
{
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 | 所有主题的基本URL。默认是“/WebRoot/themes”。 |
publicfunctiongetBaseUrl()
{
if($this->_baseUrl===null)
$this->_baseUrl=Yii::app()->getBaseUrl().'/'.self::DEFAULT_BASEPATH;
return$this->_baseUrl;
}
getTheme() 方法public CTheme getTheme(string $name) | ||
$name | string | 要取回的主题的名称 |
{return} | CTheme | 已取回的主题。如果主题不存在为Null。 |
publicfunctiongetTheme($name)
{
$themePath=$this->getBasePath().DIRECTORY_SEPARATOR.$name;
if(is_dir($themePath))
{
$class=Yii::import($this->themeClass,true);
returnnew$class($name,$themePath,$this->getBaseUrl().'/'.$name);
}
else
returnnull;
}
getThemeNames() 方法public array getThemeNames() | ||
{return} | array | 可用主题名列表 |
publicfunctiongetThemeNames()
{
static$themes;
if($themes===null)
{
$themes=array();
$basePath=$this->getBasePath();
$folder=@opendir($basePath);
while(($file=@readdir($folder))!==false)
{
if($file!=='.'&&$file!=='..'&&$file!=='.svn'&&is_dir($basePath.DIRECTORY_SEPARATOR.$file))
$themes[]=$file;
}
closedir($folder);
sort($themes);
}
return$themes;
}
setBasePath() 方法public void setBasePath(string $value) | ||
$value | string | 所有主题基本路径。 |
publicfunctionsetBasePath($value)
{
$this->_basePath=realpath($value);
if($this->_basePath===false||!is_dir($this->_basePath))
thrownewCException(Yii::t('yii','Themedirectory"{directory}"doesnotexist.',array('{directory}'=>$value)));
}
setBaseUrl() 方法public void setBaseUrl(string $value) | ||
$value | string | 所有主题的基本URL。 |
publicfunctionsetBaseUrl($value)
{
$this->_baseUrl=rtrim($value,'/');
}