| 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.phpFile: 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.