コード例 #1
0
 public function init()
 {
     $methodVar = $this->getMethodVar();
     $filterId = $this->getFilterId();
     $filterVar = 'filter_' . $filterId;
     if (isset($methodVar['resetFilter_' . $filterId . ''])) {
         Yii::app()->session->remove($filterVar);
         unset($_GET['resetFilter_' . $filterId . '']);
         foreach ($this->getModel() as $key => $value) {
             if (isset($_GET[get_class($value)])) {
                 unset($_GET[get_class($value)]);
             }
         }
         $str = Yii::app()->request->getBaseUrl() . '/' . Yii::app()->request->getPathInfo() . '?' . http_build_query($_GET);
         Yii::app()->request->redirect($str);
         Yii::app()->end();
     }
     $filterData = array();
     if (isset($methodVar[$filterVar])) {
         if ($this->storeInSession) {
             Yii::app()->session->add($filterVar, serialize($methodVar));
         }
         $filterData = $methodVar;
     } else {
         /** @var $session CHttpSession */
         $session = Yii::app()->session;
         if ($this->storeInSession && !isset($methodVar['resetFilter_' . $filterId]) && $session[$filterVar]) {
             $filterData = unserialize($session[$filterVar]);
         }
     }
     if (isset($filterData) && $filterData) {
         $this->loadFilterDataToModel($filterData);
     }
     parent::init();
     echo CHtml::hiddenField($filterVar, true);
     $this->registerScripts();
 }