Ejemplo n.º 1
0
 /**
  * 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'));
 }
Ejemplo n.º 2
0
 /**
  * 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 '';
     }
 }
Ejemplo n.º 3
0
 /**
  * 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'));
 }