Пример #1
0
 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;
     }
 }
Пример #2
0
 /**
  * @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);
 }
Пример #3
0
 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;
     }
 }
Пример #4
0
 /**
  * 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.');
     }
 }