/** * @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; }