Beispiel #1
0
 /**
  * @param DaObjectView $view
  * @param DaActiveRecord $model
  * @return CActiveDataProvider
  */
 public function buildDataProvider(DaObjectView $view, DaActiveRecord $model)
 {
     $pk = $model->getInstanceKeyName();
     $criteria = new CDbCriteria();
     $criteria->condition = $view->getWhere();
     $dataProvider = new CActiveDataProvider($model, array('criteria' => $criteria, 'keyAttribute' => $pk));
     $event = new ConfigureDataProviderEvent(Yii::app()->controller, $view->id_object, $dataProvider);
     Yii::app()->controller->raiseEvent(DefaultController::EVENT_ON_CONFIGURE_DATA_PROVIDER, $event);
     $dataProvider = $event->dataProvider;
     /***Ограничение по условию, сформированным программистом в классе***/
     $event = new PermissionWhereEvent(Yii::app()->controller, $view->id_object, '');
     $event->criteria = $criteria;
     Yii::app()->controller->raiseEvent(DefaultController::EVENT_ON_PROCESS_PERMISSION_WHERE, $event);
     $where = $event->where;
     if ($where != '') {
         $criteria->addCondition($where);
     }
     $criteria->params = array_merge($criteria->params, $event->params);
     return $dataProvider;
 }