Package | system.web |
---|---|
Inheritance | class CTheme » CComponent |
Since | 1.0 |
Source Code | framework/web/CTheme.php |
Property | Type | Description | Defined By |
---|---|---|---|
basePath | string | the file path to the theme folder | CTheme |
baseUrl | string | the relative URL to the theme folder (without ending slash) | CTheme |
name | string | theme name | CTheme |
skinPath | string | the path for widget skins. | CTheme |
systemViewPath | string | the path for system views. | CTheme |
viewPath | string | the path for controller views. | CTheme |
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__construct() | Constructor. | CTheme |
__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 file path to the theme folder | CTheme |
getBaseUrl() | Returns the relative URL to the theme folder (without ending slash) | CTheme |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getLayoutFile() | Finds the layout file for the specified controller's layout. | CTheme |
getName() | Returns theme name | CTheme |
getSkinPath() | Returns the path for widget skins. Defaults to 'ThemeRoot/views/skins'. | CTheme |
getSystemViewPath() | Returns the path for system views. Defaults to 'ThemeRoot/views/system'. | CTheme |
getViewFile() | Finds the view file for the specified controller's view. | CTheme |
getViewPath() | Returns the path for controller views. Defaults to 'ThemeRoot/views'. | CTheme |
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 |
raiseEvent() | Raises an event. | CComponent |
the file path to the theme folder
the relative URL to the theme folder (without ending slash)
theme name
the path for widget skins. Defaults to 'ThemeRoot/views/skins'.
the path for system views. Defaults to 'ThemeRoot/views/system'.
the path for controller views. Defaults to 'ThemeRoot/views'.
public void __construct(string $name, string $basePath, string $baseUrl)
| ||
$name | string | name of the theme |
$basePath | string | base theme path |
$baseUrl | string | base theme URL |
public function __construct($name,$basePath,$baseUrl)
{
$this->_name=$name;
$this->_baseUrl=$baseUrl;
$this->_basePath=$basePath;
}
Constructor.
public string getBasePath()
| ||
{return} | string | the file path to the theme folder |
public function getBasePath()
{
return $this->_basePath;
}
public string getBaseUrl()
| ||
{return} | string | the relative URL to the theme folder (without ending slash) |
public function getBaseUrl()
{
return $this->_baseUrl;
}
public string getLayoutFile(CController $controller, string $layoutName)
| ||
$controller | CController | the controller |
$layoutName | string | the layout name |
{return} | string | the layout file path. False if the file does not exist. |
public function getLayoutFile($controller,$layoutName)
{
$moduleViewPath=$basePath=$this->getViewPath();
$module=$controller->getModule();
if(empty($layoutName))
{
while($module!==null)
{
if($module->layout===false)
return false;
if(!empty($module->layout))
break;
$module=$module->getParentModule();
}
if($module===null)
$layoutName=Yii::app()->layout;
else
{
$layoutName=$module->layout;
$moduleViewPath.='/'.$module->getId();
}
}
elseif($module!==null)
$moduleViewPath.='/'.$module->getId();
return $controller->resolveViewFile($layoutName,$moduleViewPath.'/layouts',$basePath,$moduleViewPath);
}
Finds the layout file for the specified controller's layout.
public string getName()
| ||
{return} | string | theme name |
public string getSkinPath()
| ||
{return} | string | the path for widget skins. Defaults to 'ThemeRoot/views/skins'. |
public function getSkinPath()
{
return $this->getViewPath().DIRECTORY_SEPARATOR.'skins';
}
public string getSystemViewPath()
| ||
{return} | string | the path for system views. Defaults to 'ThemeRoot/views/system'. |
public function getSystemViewPath()
{
return $this->getViewPath().DIRECTORY_SEPARATOR.'system';
}
public string getViewFile(CController $controller, string $viewName)
| ||
$controller | CController | the controller |
$viewName | string | the view name |
{return} | string | the view file path. False if the file does not exist. |
public function getViewFile($controller,$viewName)
{
$moduleViewPath=$this->getViewPath();
if(($module=$controller->getModule())!==null)
$moduleViewPath.='/'.$module->getId();
return $controller->resolveViewFile($viewName,$this->getViewPath().'/'.$controller->getUniqueId(),$this->getViewPath(),$moduleViewPath);
}
Finds the view file for the specified controller's view.
public string getViewPath()
| ||
{return} | string | the path for controller views. Defaults to 'ThemeRoot/views'. |
public function getViewPath()
{
return $this->_basePath.DIRECTORY_SEPARATOR.'views';
}
Example
Directory structure
- css - js - images - protected - themes - mydefaulttheme - css - js - images - views - layouts - base_layout.php - two_column.php - three_column.php
File: protected/config/main.php
return array( 'theme' => 'mydefaulttheme', ... );
File: protected/componentes/Controller.php
class Controller extends CController { public $layout='//layouts/two_column'; ... }
base_layout.php
<html> <head> ... <?php Yii::app()->clientScript->registerCssFile(Yii::app()->theme->baseUrl . '/css/style.css'); ?> <?php Yii::app()->clientScript->registerCssFile(Yii::app()->request->baseUrl . '/css/common.css'); ?> ... </head> <body> ... <?php echo $content; ?> ... </body> </html>
two_column.php
<?php $this->beginContent('//layouts/base_layout'); ?> <div class="left_column"> ... </div> <div class="right_column"> <?php echo $content?> </div> <?php $this->endContent(); ?>
Signup or Login in order to comment.