/**
  * Lists all CsServices models.
  * @return mixed
  */
 public function actionIndex($entity = null, $title = null)
 {
     $request = Yii::$app->request;
     $session = Yii::$app->session;
     //$session->removeAll();
     $entity = $request->get('entity');
     $title = $request->get('title');
     if ($state = $request->get('st')) {
         $session->set('state', $state);
         if ($state == 'gl') {
             $session->remove('state');
         }
     }
     $q = $request->get('q');
     $queryObjects = $q ? new ActiveDataProvider(['query' => CsObjects::find()->joinWith(['t t'])->where(['like', 't.name', $q])->andWhere('cs_objects.class != "abstract"')->groupBy('cs_objects.id')]) : null;
     $queryIndustries = $q ? new ActiveDataProvider(['query' => CsIndustries::find()->joinWith(['t t'])->where(['like', 't.name', $q])->groupBy('cs_industries.id')]) : null;
     //$queryIndustries = ($q) ? $this->suggested_word($q) : null;
     $queryActions = $q ? new ActiveDataProvider(['query' => CsActions::find()->joinWith(['t t'])->where(['like', 't.name', $q])->groupBy('cs_actions.id')]) : null;
     $queryProducts = $q ? new ActiveDataProvider(['query' => CsProducts::find()->where(['like', 'name', $q])->andWhere(['or', 'level=1', 'level=2'])]) : null;
     $object = ($entity == 'o' and $title) ? $this->findObjectByTitle($title) : null;
     $industry = ($entity == 'i' and $title) ? $this->findIndustryByTitle($title) : null;
     $action = ($entity == 'a' and $title) ? $this->findActionByTitle($title) : null;
     $product = ($entity == 'p' and $title) ? $this->findProductByTitle($title) : null;
     $renderIndex = $object || $industry || $action || $product || $q ? false : true;
     $searchModel = new CsServicesSearch();
     $dataProvider = $searchModel->search(['CsServicesSearch' => ['name' => $q, 'industry_id' => $industry ? $industry->id : null, 'action_id' => $action ? $action->id : null, 'object_id' => $object ? $object->id : null]]);
     return $this->render('index', ['dataProvider' => $dataProvider, 'renderIndex' => $renderIndex, 'industry' => $industry, 'action' => $action, 'object' => $object, 'product' => $product, 'searchString' => $request->get('q'), 'queryObjects' => $queryObjects, 'queryIndustries' => $queryIndustries, 'queryActions' => $queryActions, 'queryProducts' => $queryProducts, 'countSearchResults' => $this->countSearchResults($dataProvider, $queryObjects, $queryIndustries, $queryActions, $queryProducts), 'countServicesResults' => $this->countServicesResults($dataProvider), 'countIndustriesResults' => $this->countIndustriesResults($queryIndustries), 'countActionsResults' => $this->countActionsResults($queryActions), 'countObjectsResults' => $this->countObjectsResults($queryObjects), 'countProductsResults' => $this->countProductsResults($queryProducts)]);
 }
Example #2
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = CsActions::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['id' => $this->id, 'object_mode' => $this->object_mode]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'status', $this->status]);
     return $dataProvider;
 }
Example #3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getAction()
 {
     return $this->hasOne(CsActions::className(), ['id' => 'action_id']);
 }
Example #4
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getActions()
 {
     return $this->hasMany(CsActions::className(), ['industry_id' => 'id']);
 }
 /**
  * Finds the CsActions model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return CsActions the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = CsActions::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 /**
  * Lists all CsServices models.
  * @return mixed
  */
 public function actionIndex()
 {
     $request = Yii::$app->request;
     $post = $request->post('CsServicesSearch');
     // industry
     if (isset($post['industry_id']) && $post['industry_id'] != null && $post['industry_id'] != '') {
         $industry = CsIndustries::findOne($post['industry_id']);
         return $this->redirect(['/services/i/' . slug($industry->tName)]);
     }
     // object
     if (isset($post['object_id']) && $post['object_id'] != null && $post['object_id'] != '') {
         $object = CsObjects::findOne($post['object_id']);
         return $this->redirect(['/services/o/' . slug($object->tName)]);
     }
     // product
     if (isset($post['product_id']) && $post['product_id'] != null && $post['product_id'] != '') {
         $product = CsProducts::findOne($post['product_id']);
         return $this->redirect(['/services/p/' . slug($product->name)]);
     }
     // action
     if (isset($post['action_id']) && $post['action_id'] != null && $post['action_id'] != '') {
         $action = CsActions::findOne($post['action_id']);
         return $this->redirect(['/services/a/' . slug($action->tName)]);
     }
     // service
     if (isset($post['id']) && $post['id'] != null && $post['id'] != '') {
         $service = CsServices::findOne($post['id']);
         return $this->redirect(['/s/' . slug($service->tName)]);
     }
     // tags
     if (isset($post['tag_id']) && $post['tag_id'] != null && $post['tag_id'] != '') {
         $tag = CsTags::findOne($post['tag_id']);
         switch ($tag->entity) {
             case 'action':
                 return $this->redirect(['/services', 'a' => $tag->entity_id]);
                 break;
             case 'object':
                 return $this->redirect(['/services', 'o' => $tag->entity_id]);
                 break;
             case 'industry':
                 return $this->redirect(['/services', 'i' => $tag->entity_id]);
                 break;
             case 'service':
                 $service = CsServices::findOne($tag->entity_id);
                 return $this->redirect(['/s/' . slug($service->tName)]);
                 break;
             default:
                 return $this->redirect(['/services']);
                 break;
         }
     }
     if (isset($post['name']) && $post['name'] != null && $post['name'] != '') {
         return $this->redirect(['/services', 'q' => $post['name']]);
     }
 }