/**
  * Creates a new CmsDocument model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  *
  * @return mixed 
  * @menuLabel crate new cms document
  * @menuIcon <span class="glyphicon glyphicon-list-alt"></span>
  * @functionalRight cmsBackendWrite
  */
 public function actionCreate()
 {
     $model = new CmsDocument();
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['view', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model]);
     }
 }
 /**
  * @menuLabel __HIDDEN__
  * @menuIcon <span class="glyphicon glyphicon-list-alt"></span>
  */
 public function actionEditMenuLanguageVersion($menuItemId, $useget = false)
 {
     $menuItemId = intval($menuItemId);
     $model_menu = CmsMenuItem::find()->where(['id' => $menuItemId])->with('cmsHierarchyItem')->one();
     $hierarchyItem = $model_menu->cmsHierarchyItem;
     $languageCode = $this->module->getLanguageManager()->getMappingForIdResolveAlias($model_menu->language);
     $model_wrapperform = new MenuItemAndContentForm();
     if ($useget) {
         $model_wrapperform->load(Yii::$app->request->get());
     } else {
         $model_wrapperform->load(Yii::$app->request->post());
     }
     $model_content = null;
     $model_document = null;
     $message = null;
     $page_content_id_set = $model_menu->page_content_id != null;
     $contentType = $page_content_id_set ? MenuItemAndContentForm::CONTENT_TYPE_PAGE : intval($model_wrapperform->contentType);
     /**
      * **** PAGE CONTENT FORM ****************
      */
     if ($page_content_id_set || $contentType == intval(MenuItemAndContentForm::CONTENT_TYPE_PAGE)) {
         $model_content = new CmsPageContent();
         if ($page_content_id_set) {
             $model_content = CmsPageContent::findOne($model_menu->page_content_id);
         }
         $loadSuccess_content = $model_content->load(Yii::$app->request->post());
         // check if menu item needs to be saved
         $model_content->language = $model_menu->language;
         if ($loadSuccess_content) {
             if ($model_content->created_datetime == null) {
                 $model_content->created_datetime = new Expression('NOW()');
                 $model_content->createdby_userid = Yii::$app->user->id;
             }
             if ($model_content->validate() && $model_content->save()) {
                 // link new item to menu if needed
                 if (!$page_content_id_set) {
                     $model_menu->page_content_id = $model_content->id;
                     if ($model_menu->save()) {
                         $message .= '<span class="success">' . Yii::t('simplecms', 'Content linked to Menu language version') . '</span>';
                     } else {
                         $message .= '<span class="error">' . Yii::t('simplecms', 'Error: content saved, yet it could not be linked to the menu language version!') . implode($model_content->getFirstErrors(), ' ') . '</span>';
                     }
                 }
                 $message .= '<span class="success">' . Yii::t('simplecms', 'Content saved successfully') . '</span>';
             } else {
                 $message .= '<span class="error">' . Yii::t('simplecms', 'Error: saving content failed!') . implode($model_content->getFirstErrors(), ' ') . '</span>';
             }
         }
         // update menu item
         // $menu_item_new_name = new CmsMenuItem();
         if ($model_menu->load(Yii::$app->request->post())) {
             if ($model_menu->save()) {
                 $message .= '<span class="success">' . Yii::t('simplecms', 'Menu details saved successfully') . '</span>';
             } else {
                 $message .= '<span class="error">' . Yii::t('simplecms', 'Error: saving new menu name!') . '</span>';
             }
         }
         $model_wrapperform->contentType = MenuItemAndContentForm::CONTENT_TYPE_PAGE;
     } else {
         if ($model_menu->document_id != null || $contentType == MenuItemAndContentForm::CONTENT_TYPE_DOCUMENT) {
             /**
              * **** DOCUMENT FORM ****************
              */
             if ($model_menu->document_id != null) {
                 $model_document = CmsDocument::findOne($model_menu->document_id);
             } else {
                 $model_document = new CmsDocument();
                 $model_document->created_datetime = new Expression('NOW()');
                 $model_document->createdby_userid = Yii::$app->user->id;
             }
             $loadSuccess_document = $model_document->load(Yii::$app->request->post());
             // set fixed values
             $model_document->language = $model_menu->language;
             if ($loadSuccess_document) {
                 if ($model_document->save()) {
                     // link new item to menu if needed
                     if ($model_menu->document_id == null) {
                         $model_menu->document_id = $model_document->id;
                         $model_menu->save();
                     }
                     $message .= '<span class="success">' . Yii::t('simplecms', 'Document saved successfully') . '</span>';
                 } else {
                     $message .= '<span class="error">' . Yii::t('simplecms', 'Error: saving document failed!') . '</span>';
                 }
             }
             // check if menu item name has been altered
             if ($model_menu->load(Yii::$app->request->post())) {
                 if ($model_menu->save()) {
                     $message .= '<span class="success">' . Yii::t('simplecms', 'Menu details saved successfully') . '</span>';
                 } else {
                     $message .= '<span class="error">' . Yii::t('simplecms', 'Error: saving new menu name!') . '</span>';
                 }
             }
             $model_wrapperform->contentType = MenuItemAndContentForm::CONTENT_TYPE_DOCUMENT;
         } else {
             if ($model_menu->direct_url != null || $contentType == MenuItemAndContentForm::CONTENT_TYPE_URL) {
                 /**
                  * **** DIRECT URL FORM ****************
                  */
                 if ($model_menu->load(Yii::$app->request->post())) {
                     if ($model_menu->save()) {
                         $message .= '<span class="success">' . Yii::t('simplecms', 'Menu details saved successfully') . '</span>';
                     } else {
                         $message .= '<span class="error">' . Yii::t('simplecms', 'Error: saving new menu name!') . '</span>';
                     }
                 }
                 $model_wrapperform->contentType = MenuItemAndContentForm::CONTENT_TYPE_URL;
             } else {
                 // illegal state, no content found for item, menu might not have been created properly or not completed, display selector for new content type
                 $model_wrapperform->contentType = MenuItemAndContentForm::CONTENT_TYPE_UNDEFINED;
             }
         }
     }
     // get post parameters
     // TODO
     // set default values
     return $this->render('editMenuAndContent', ['model_wrapperform' => $model_wrapperform, 'model_content' => $model_content, 'hierarchy_item' => $hierarchyItem, 'languageCode' => $languageCode, 'model_document' => $model_document, 'model_menu' => $model_menu, 'message' => $message]);
 }