/** * 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)]); }
/** * Finds the CsObjects model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return CsObjects the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = CsObjects::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = CsObjects::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_type_id' => $this->object_type_id, 'object_id' => $this->object_id, 'favour' => $this->favour, 'file_id' => $this->file_id]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'class', $this->class]); return $dataProvider; }
use yii\helpers\Url; use kartik\widgets\ActiveForm; use kartik\switchinput\SwitchInput; use kartik\widgets\DatePicker; use kartik\select2\Select2; use yii\helpers\ArrayHelper; use kartik\widgets\FileInput; ?> <?php $form = kartik\widgets\ActiveForm::begin(['id' => 'form-horizontal', 'type' => ActiveForm::TYPE_HORIZONTAL, 'fullSpan' => 7, 'formConfig' => ['labelSpan' => 3, 'deviceSize' => ActiveForm::SIZE_MEDIUM], 'options' => ['enctype' => 'multipart/form-data']]); ?> <?php echo $form->field($model, 'object_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(\common\models\CsObjects::find()->all(), 'id', 'name'), 'options' => ['placeholder' => 'Izaberite...'], 'language' => 'sr-Latn', 'changeOnReset' => false]); ?> <?php echo $form->field($model, 'property_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(\common\models\CsProperties::find()->all(), 'id', 'name'), 'options' => ['placeholder' => 'Izaberite...'], 'language' => 'sr-Latn', 'changeOnReset' => false]); ?> <?php echo $form->field($model, 'property_unit_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(\common\models\CsUnits::find()->all(), 'id', 'name'), 'options' => ['placeholder' => 'Izaberite...'], 'language' => 'sr-Latn', 'changeOnReset' => false]); ?> <?php echo $form->field($model, 'property_unit_imperial_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(\common\models\CsUnits::find()->all(), 'id', 'name'), 'options' => ['placeholder' => 'Izaberite...'], 'language' => 'sr-Latn', 'changeOnReset' => false]); ?> <?php
/** * @return \yii\db\ActiveQuery */ public function getPartContainer() { return $this->hasOne(CsObjects::className(), ['id' => 'object_container_id']); }
/** * @return \yii\db\ActiveQuery */ public function getChildren() { return $this->hasMany(CsObjects::className(), ['object_id' => 'id']); }
/** * Izlistava sve specifikacije izabranih predmeta usluga i modela predmeta. */ protected function objectProperties($service, $object_models, $products) { if ($object_models != null or $products != null or $service->serviceObjectProperties != null) { /*$object = $service->object; $class = $object->class; $level = $object->level;*/ // if part: parts properties + container's own and inherited properties + container model/product properties /*if($class=='part'){ $part = $object; $container = $service->partContainer; }*/ // if model: models properties + objects public/protected properties + inherited properties // filtered through services object properties $objectProperties = []; if ($object_models and count($object_models) == 1) { foreach ($object_models as $object_model) { $object_m = \common\models\CsObjects::findOne($object_model); if ($object_m and $object_m->objectProperties) { foreach ($object_m->objectProperties as $object_mProperty) { //if(!in_array($object_mProperty->id, $objectSpecification)){ $objectProperties[] = $object_mProperty; //} } } } } if ($service->serviceObjectProperties != null) { foreach ($service->serviceObjectProperties as $serviceObjectProperty) { // all servicespecs // we need only specs for this service and this/these object_models if (!in_array($serviceObjectProperty->object_property_id, $objectProperties)) { $objectProperties[] = $serviceObjectProperty->objectProperty; } } } // if object: object's and inherited properties // filtered through services object properties // if products: product properties + inherited + object's and inherited properties // filtered through services object properties // filtered through services object properties /*if ($object = $service->object) { if ($object->objectProperties) { foreach($object->objectProperties as $objectProperty) { if($objectProperty->property_class!='private'){ $objectSpecification[] = $objectProperty->id; } } } } if(isset($objectSpecification) and $objectSpecification) { }*/ } return isset($objectProperties) ? $objectProperties : null; }
/** * @return \yii\db\ActiveQuery */ public function getObject() { return $this->hasOne(CsObjects::className(), ['id' => 'object_id']); }
public function actionAjaxCreate() { $model = new CsObjects(); $model_trans = new CsObjectsTranslation(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $id]); } //if (Yii::$app->request->isAjax) { return $this->renderPartial('/objects/_form', ['model' => $model, 'model_trans' => $model_trans]); //} }
/** * Displays a single CsObjectTypes model. * @param integer $id * @return mixed */ public function actionView($id) { return $this->render('view', ['model' => $this->findModel($id), 'objects' => new ActiveDataProvider(['query' => \common\models\CsObjects::find()->where(['object_type_id' => $id])])]); }
/** * @return \yii\db\ActiveQuery */ public function getCsObjects() { return $this->hasMany(CsObjects::className(), ['file_id' => 'id']); }
/* @var $this yii\web\View */ /* @var $model frontend\models\CsServicesSearch */ /* @var $form yii\widgets\ActiveForm */ ?> <?php $form = ActiveForm::begin(['action' => ['index'], 'method' => 'get', 'type' => ActiveForm::TYPE_HORIZONTAL, 'fullSpan' => 11, 'formConfig' => ['labelSpan' => 2, 'deviceSize' => ActiveForm::SIZE_SMALL]]); ?> <?php echo $form->field($model, 'industry_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(\common\models\CsIndustries::find()->all(), 'id', 'name'), 'options' => ['placeholder' => 'Izaberi uslužnu delatnost ...'], 'pluginOptions' => ['allowClear' => true, 'width' => '100%']]); ?> <?php echo $form->field($model, 'object_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(\common\models\CsObjects::find()->all(), 'id', 'name'), 'options' => ['placeholder' => 'Izaberi predmet usluge ...'], 'pluginOptions' => ['allowClear' => true, 'width' => '100%']]); ?> <div class="form-group"> <div class="col-sm-offset-2 col-sm-9"> <?php echo Html::submitButton(Yii::t('app', 'Traži'), ['class' => 'btn btn-default']); ?> </div> </div> <?php ActiveForm::end(); ?>
/** * 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']]); } }