芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/yii/framework/web/widgets/CFilterWidget.php
* @link http://www.yiiframework.com/ * @copyright 2008-2013 Yii Software LLC * @license http://www.yiiframework.com/license/ */ /** * CFilterWidget is the base class for widgets that can also be used as filters. * * Derived classes may need to override the following methods: *
*
{@link CWidget::init()} : called when this is object is used as a widget and needs initialization.
*
{@link CWidget::run()} : called when this is object is used as a widget.
*
{@link filter()} : the filtering method called when this object is used as an action filter.
*
* * CFilterWidget provides all properties and methods of {@link CWidget} and {@link CFilter}. * * @property boolean $isFilter Whether this widget is used as a filter. * * @author Qiang Xue
* @package system.web.widgets * @since 1.0 */ class CFilterWidget extends CWidget implements IFilter { /** * @var boolean whether to stop the action execution when this widget is used as a filter. * This property should be changed only in {@link CWidget::init} method. * Defaults to false, meaning the action should be executed. */ public $stopAction=false; private $_isFilter; /** * Constructor. * @param CBaseController $owner owner/creator of this widget. It could be either a widget or a controller. */ public function __construct($owner=null) { parent::__construct($owner); $this->_isFilter=($owner===null); } /** * @return boolean whether this widget is used as a filter. */ public function getIsFilter() { return $this->_isFilter; } /** * Performs the filtering. * The default implementation simply calls {@link init()}, * {@link CFilterChain::run()} and {@link run()} in order * Derived classes may want to override this method to change this behavior. * @param CFilterChain $filterChain the filter chain that the filter is on. */ public function filter($filterChain) { $this->init(); if(!$this->stopAction) { $filterChain->run(); $this->run(); } } }