diff options
Diffstat (limited to 'framework/web/CExtController.php')
| -rw-r--r-- | framework/web/CExtController.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/framework/web/CExtController.php b/framework/web/CExtController.php new file mode 100644 index 0000000..987d1ae --- /dev/null +++ b/framework/web/CExtController.php @@ -0,0 +1,54 @@ +<?php +/** + * CExtController class file. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @link http://www.yiiframework.com/ + * @copyright Copyright © 2008-2011 Yii Software LLC + * @license http://www.yiiframework.com/license/ + */ + + +/** + * CExtController is the base class for controllers distributed as extension. + * + * The main purpose of CExtController is to redefine the {@link viewPath} property + * so that it points to the "views" subdirectory under the directory containing + * the controller class file. + * + * @property string $viewPath The directory containing the view files for this controller. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @version $Id: CExtController.php 3515 2011-12-28 12:29:24Z mdomba $ + * @package system.web + * @since 1.0 + */ +class CExtController extends CController +{ + private $_viewPath; + + /** + * Returns the directory containing view files for this controller. + * This method overrides the parent implementation by specifying the view path + * to be the "views" subdirectory under the directory containing the controller + * class file. + * @return string the directory containing the view files for this controller. + */ + public function getViewPath() + { + if($this->_viewPath===null) + { + $class=new ReflectionClass(get_class($this)); + $this->_viewPath=dirname($class->getFileName()).DIRECTORY_SEPARATOR.'views'; + } + return $this->_viewPath; + } + + /** + * @param string $value the directory containing the view files for this controller. + */ + public function setViewPath($value) + { + $this->_viewPath=$value; + } +} |
