public function smartSearch($criteria, $pageSize = null)
 {
     $sort = new SmartSort(get_class($this->owner), isset($this->owner->uid) ? $this->owner->uid : get_class($this->owner));
     $sort->multiSort = false;
     $sort->attributes = $this->owner->getSort();
     $sort->defaultOrder = 't.lastUpdated DESC, t.id DESC';
     if (!$pageSize) {
         if (!Yii::app()->user->isGuest) {
             $pageSize = Profile::getResultsPerPage();
         } else {
             $pageSize = 20;
         }
     }
     $dataProvider = new SmartActiveDataProvider(get_class($this->owner), array('sort' => $sort, 'pagination' => array('pageSize' => $pageSize), 'criteria' => $criteria, 'uid' => $this->owner->uid, 'dbPersistentGridSettings' => $this->owner->dbPersistentGridSettings));
     $sort->applyOrder($criteria);
     return $dataProvider;
 }
Exemplo n.º 2
0
 /**
  * Base search function, includes Retrieves a list of models based on the current 
  *  search/filter conditions.
  * @param CDbCriteria $criteria the attribute name
  * @param integer $pageSize If set, will override property of profile model
  * @return CActiveDataProvider the data provider that can return the models based on the 
  *  search/filter conditions.
  */
 public function searchBase($criteria, $pageSize = null, $showHidden = false)
 {
     if (isset($_GET['showHidden']) && $_GET['showHidden'] && Yii::app()->user->checkAccess(self::getModuleName(get_class($this)) . 'Admin')) {
         $showHidden = true;
     }
     if ($criteria === null) {
         $criteria = $this->getAccessCriteria('t', Yii::app()->params->modelPermissions, $showHidden);
     } else {
         $criteria->mergeWith($this->getAccessCriteria('t', Yii::app()->params->modelPermissions, $showHidden));
     }
     $filterCriteria = new CDbCriteria();
     $this->compareAttributes($filterCriteria);
     $criteria->mergeWith($filterCriteria);
     $criteria->with = array();
     // No joins necessary!
     $sort = new SmartSort(get_class($this), isset($this->uid) ? $this->uid : get_class($this));
     $sort->multiSort = false;
     $sort->attributes = $this->getSort();
     $sort->defaultOrder = 't.lastUpdated DESC, t.id DESC';
     if ($pageSize === null) {
         if (!Yii::app()->user->isGuest) {
             $pageSize = Profile::getResultsPerPage();
         } else {
             $pageSize = 20;
         }
     }
     $dataProvider = new SmartActiveDataProvider(get_class($this), array('sort' => $sort, 'pagination' => array('pageSize' => $pageSize), 'criteria' => $criteria, 'uid' => $this->uid, 'dbPersistentGridSettings' => $this->dbPersistentGridSettings, 'disablePersistentGridSettings' => $this->disablePersistentGridSettings));
     $sort->applyOrder($criteria);
     return $dataProvider;
 }