public function getLangUrl() { if ($this->_lang_url === null) { $this->_lang_url = $this->getUrl(); $url_list = explode('/', $this->_lang_url); $lang_url = isset($url_list[1]) ? $url_list[1] : null; Lang::setCurrent($lang_url); if ($lang_url !== null && $lang_url === Lang::getCurrent()->code && strpos($this->_lang_url, Lang::getCurrent()->code) === 1) { $this->_lang_url = substr($this->_lang_url, strlen(Lang::getCurrent()->code) + 1); } } return $this->_lang_url; }
/** * @return mixed|string */ public function getLangUrl() { if ($this->_lang_url === null) { $this->_lang_url = $this->getUrl(); preg_match('#^' . $this->baseUrl . '\\/([^\\/]*).*#', $this->_lang_url, $lang_list); $lang_url = array_key_exists(1, $lang_list) ? $lang_list[1] : null; Lang::setCurrent($lang_url); if ($lang_url !== null && $lang_url === Lang::getCurrent()->url) { $search = $lang_list[0] === $this->baseUrl . '/' . $lang_url ? '/' . $lang_url : '/' . $lang_url . '/'; $this->_lang_url = str_replace($search, '/', $this->_lang_url); } } return $this->_lang_url; }
/** * [getLangUrl description] * @return [type] [description] */ public function getLangUrl() { if ($this->_lang_url === null) { $defaultLang = Lang::getDefaultLang(); $this->_lang_url = $this->getUrl(); $url_list = explode('/', $this->_lang_url); $lang_url = isset($url_list[1]) ? $url_list[1] : null; Lang::setCurrent($lang_url); if ($lang_url !== null && $lang_url === Lang::getCurrent()->url && strpos($this->_lang_url, Lang::getCurrent()->url) === 1) { $this->_lang_url = substr($this->_lang_url, strlen(Lang::getCurrent()->url) + 1); } // Если язык в адресе соотвествует дефолтному то редиректим на урл без языка. if ($defaultLang->url == $lang_url) { if ($this->_lang_url) { $url = $this->_lang_url; } else { $url = '/'; } return Yii::$app->getResponse()->redirect($url, 301); } } return $this->_lang_url; }
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]); }