public function createUrl($params) { if (isset($params['lang_id'])) { //Если указан идентификатор языка, то делаем попытку найти язык в БД, //иначе работаем с языком по умолчанию $lang = Lang::findOne($params['lang_id']); if ($lang === null) { $lang = Lang::getDefaultLang(); } unset($params['lang_id']); } else { //Если не указан параметр языка, то работаем с текущим языком $lang = Lang::getCurrent(); } //Получаем сформированный URL(без префикса идентификатора языка) $url = parent::createUrl($params); //Добавляем к URL префикс - буквенный идентификатор языка if ($url == '/') { return '/' . $lang->url; } else { if (YII_DEBUG && !empty(Yii::$app->params['mainPathCount'])) { $url_list = explode('/', $url); $mainPath = []; for ($i = 0; $i <= Yii::$app->params['mainPathCount']; $i++) { $mainPath[] = array_shift($url_list); } $url_list = array_merge($mainPath, [$lang->url], $url_list); return join('/', $url_list); } return '/' . $lang->url . $url; } }
/** * @inheritdoc */ public function rules() { $languagesModel = Lang::find()->all(); $languageDefault = Lang::findOne(['default' => 1]); $language_rules = []; foreach ($languagesModel as $language) { $message = Yii::t('backend', 'Please specify {name} category name', ['name' => $language->name]); if ($languageDefault->url == $language->url) { array_push($language_rules, [['title'], 'required', 'message' => $message]); } else { array_push($language_rules, [['title_' . $language->url], 'required', 'message' => $message]); } } $rules_general = [[['content', 'meta_keywords', 'meta_description'], 'string'], [['code_id', 'no_code_id', 'category_id', 'created_at', 'updated_at'], 'safe'], [['is_active', 'sort_order'], 'integer'], [['title', 'content_heading'], 'string', 'max' => 255], [['identifier'], 'string', 'max' => 128]]; return array_merge($language_rules, $rules_general); }
public function createUrl($params) { if (isset($params['lang_id'])) { //Если указан идентификатор языка, то делаем попытку найти язык в БД, //иначе работаем с языком по умолчанию $lang = Lang::findOne($params['lang_id']); if ($lang === null) { $lang = Lang::getDefaultLang(); } unset($params['lang_id']); } else { //Если не указан параметр языка, то работаем с текущим языком $lang = Lang::getCurrent(); } //Получаем сформированный URL(без префикса идентификатора языка) $url = parent::createUrl($params); //Добавляем к URL префикс - буквенный идентификатор языка if ($url == '/') { return '/' . $lang->url; } else { return '/' . $lang->url . $url; } }
/** * Finds the Lang model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Lang the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Lang::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }