/** * Affichage du formulaire de création * * @return mixed */ public function actionCreate() { $model = new WebPage(); $request = Yii::$app->request; $ok = true; $baseModel = null; if ($request->isPost) { // Mise à jour de la WebPage et de la BasePage associée /** @var BasePage $baseModel */ $baseModel = BasePage::findOne($request->post()['WebPage']['base_id']); $ok &= $baseModel && $baseModel->load($request->post()) && $baseModel->save(); $ok &= $model->load($request->post()) && $model->save(); if (!$ok) { Yii::$app->session->setFlash('flash-warning', HLib::t('messages', 'There are errors in your form')); } else { return $this->redirectAfterCreateSuccess($model); } } else { $baseModel = new BasePage(); } // Affichage ou ré-affichage $basePages = BasePage::find()->orderBy('code ASC')->all(); $languages = Language::find()->orderBy('name')->all(); return $this->render('create', compact('model', 'basePages', 'languages', 'baseModel')); }
/** * Récupère la liste des pages qui doivent apparaître dans le menu principal en frontend * Construit le code HTML pour afficher ces éléments de menu */ public function run() { if (!isset($this->languageCode)) { $this->languageCode = mb_substr(Yii::$app->language, 0, 2); } $pages = WebPage::find()->asMenuItems($this->languageCode)->all(); if (count($pages)) { return $this->render('frontendPagesMenuItems', compact('pages')); } else { return ''; } }
/** * Affichage de la page de consultation * * @param string $id * @return mixed */ public function actionView($id) { $model = $this->findModel($id); $relatedPages = WebPage::find()->byBaseTextId($model->base_id)->language($model->language->iso_639_code)->all(); return $this->render('view', compact('model', 'relatedPages')); }