/**
  * @param string $page_key
  * @param integer $languageId
  * @return mixed
  * @throws BadRequestHttpException
  * @throws BadRequestHttpException
  */
 public function actionSavePage($page_key = null, $languageId = null)
 {
     $selected_language = !empty($languageId) ? Language::findOne($languageId) : Language::findOne(['lang_id' => Yii::$app->language]);
     if (!empty($selected_language)) {
         if (!empty($page_key)) {
             $static_page = StaticPage::findOne($page_key);
             if (!empty($static_page)) {
                 $static_page_translation = StaticPageTranslation::find()->where(['page_key' => $page_key, 'language_id' => $selected_language->id])->one();
                 if (empty($static_page_translation)) {
                     $static_page_translation = new StaticPageTranslation();
                     $static_page_translation->page_key = $static_page->key;
                 }
             } else {
                 throw new BadRequestHttpException('Such static page doesn\'t exist. You can\'t add translation.');
             }
         } else {
             $static_page = new StaticPage();
             $static_page_translation = new StaticPageTranslation();
         }
         if (Yii::$app->request->isPost) {
             if ($static_page_translation->load(Yii::$app->request->post())) {
                 if (empty($static_page->key)) {
                     $static_page->key = $static_page_translation->page_key;
                     if ($static_page->validate()) {
                         $static_page->save();
                     } else {
                         throw new BadRequestHttpException('Sorry, such static page already exist.');
                     }
                 }
                 $static_page_translation->language_id = $selected_language->id;
                 $static_page_translation->save();
             }
         }
         return $this->render('save-page', ['static_page' => $static_page, 'static_page_translation' => $static_page_translation, 'staticPage' => StaticPage::find()->all(), 'selectedLanguage' => $selected_language, 'languages' => Language::findAll(['active' => true])]);
     } else {
         throw new BadRequestHttpException('You can\'t add this static page translation, because such language doesn\'t exist');
     }
 }
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getTranslations()
 {
     return $this->hasMany(StaticPageTranslation::className(), ['page_key' => 'key']);
 }