/** * Finds the ParserAlias model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param string $id * @return ParserAlias the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = ParserAlias::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 = ParserAlias::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]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'category', $this->category]); return $dataProvider; }
public function actionAristo($url, $lang) { Lang::setCurrent($lang); $type_list = ParserAlias::type(); $view_list = ParserAlias::view(); $region_list = ParserAlias::region(); $district_list = ParserAlias::district(); $vat_list = ParserAlias::vat(); $stage_list = ParserAlias::stage(); //$file = '../../upload/xml'; $file = $url; $ids = Parse::saveXml($file, Parse::SCENARIO_ARISTO); $temp = Parse::find()->with('content')->where(['id' => $ids])->all(); $items = []; foreach ($temp as $t) { $data = Json::decode($t->content->data); if ($t->sale_id) { $sale = Sale::findOne(['id' => $t->sale_id]); $content = SaleLang::findOne(['id' => $t->sale_id, 'lang_id' => Lang::getCurrent()->id]); } else { $sale = new Sale(); $sale->user_id = $t->user_id; $content = new SaleLang(); $content->lang_id = Lang::getCurrent()->id; } $sale->covered = round($data['propertyTotalCoveredArea']); $sale->gps = $data['gpsLat'] . ', ' . $data['gpsLong']; $sale->bedroom = $data['propertyBedrooms']; $sale->price = round($data['propertyPrice']); $origin = []; if (isset($type_list[$data['propertyType']])) { $sale->type_id = $type_list[$data['propertyType']]; } else { $origin['type'] = $data['propertyType']; } if (isset($region_list[$data['area']])) { $sale->region_id = $region_list[$data['area']]; } else { $origin['region'] = $data['area']; } if (isset($district_list[$data['city']])) { $sale->district_id = $district_list[$data['city']]; } else { $origin['district'] = $data['city']; } if (!empty($data['views'])) { $view_ids = []; $views = explode(',', $data['views']); foreach ($views as $view) { $view = trim($view); if (isset($view_list[$view])) { $view_ids[] = $view_list[$view]; } } $sale->view_ids = $view_ids; } if (!empty($data['constructionStatus'])) { $stage_ids = []; $stages = explode(',', $data['constructionStatus']); foreach ($stages as $stage) { $stage = trim($stage); if (isset($stage_list[$stage])) { $stage_ids[] = $stage_list[$stage]; } } $sale->stage_ids = $stage_ids; } if (isset($vat_list[$data['vat']])) { $sale->vat = $vat_list[$data['vat']]; } else { $origin['vat'] = $data['vat']; } $content->description = $data['longDesc']; $content->name = $data['propertyName']; $image_array = []; if (isset($data['ImagesGallery']['mainImage'])) { $image_array[] = $data['ImagesGallery']['mainImage']; } foreach ($data['ImagesGallery']['image'] as $img) { $image_array[] = $img; } $image = ParseImage::find()->where(['parse_id' => $t->id])->indexBy('url')->all(); foreach ($image as $key => $value) { $image[$key]->url = ''; } foreach ($image_array as $key) { if (!isset($image[$key])) { $image[$key] = new ParseImage(); $image[$key]->parse_id = $t->id; } $image[$key]->url = $key; } $sale->validate(); $content->validate(); $items[] = ['sale' => $sale, 'content' => $content, 'image' => $image, 'origin' => $origin, 'parse' => $t]; } return $this->render('prepare', ['items' => $items]); }