Exemplo n.º 1
0
 /**
  * MODULE : Édition de page
  */
 public function edit()
 {
     if (!$this->getData('pages', $this->getUrl(1))) {
         return false;
     } elseif ($this->getPost('submit')) {
         $key = $this->getPost('title') ? $this->getPost('title', helpers::URL) : $this->getUrl(1);
         if ($key !== $this->getUrl(1)) {
             $key = helpers::increment($key, $this->getData('pages'));
             $key = helpers::increment($key, self::$modules);
             $this->removeData('pages', $this->getUrl(1));
             $this->setData($key, $this->getData($this->getUrl(1)));
             $this->removeData($this->getUrl(1));
             if ($this->getData('config', 'index') === $this->getUrl(1)) {
                 $this->setData('config', 'index', $key);
             }
         }
         if ($this->getPost('module') !== $this->getData('pages', $key, 'module')) {
             $this->removeData($key);
         }
         $this->setData('pages', $key, ['title' => $this->getPost('title', helpers::STRING), 'description' => $this->getPost('description', helpers::STRING), 'position' => $this->getPost('position', helpers::INT), 'blank' => $this->getPost('blank', helpers::BOOLEAN), 'theme' => $this->getPost('theme', helpers::STRING), 'module' => $this->getPost('module', helpers::STRING), 'content' => $this->getPost('content')]);
         $this->saveData($key);
         $this->setNotification('Page modifiée avec succès !');
         helpers::redirect('edit/' . $key);
     }
     $this->setMode(true);
     self::$title = $this->getData('pages', $this->getUrl(1), 'title');
     self::$content = template::openForm() . template::openRow() . template::text('title', ['label' => 'Titre de la page', 'value' => $this->getData('pages', $this->getUrl(1), 'title'), 'required' => true]) . template::newRow() . template::text('position', ['label' => 'Position dans le menu' . template::help('Le classement se fait par ordre croissant. Si le champ est vide, la page ne s\'affiche pas dans le menu.'), 'value' => $this->getData('pages', $this->getUrl(1), 'position')]) . template::newRow() . template::textarea('content', ['value' => $this->getData('pages', $this->getUrl(1), 'content'), 'class' => 'editor']) . template::newRow() . template::textarea('description', ['label' => 'Description de la page' . template::help('Si le champ est vide, la description du site est utilisée.'), 'value' => $this->getData('pages', $this->getUrl(1), 'description')]) . template::newRow() . template::select('module', helpers::listModules('Aucun module'), ['label' => 'Inclure un module' . template::help('En cas de changement de module, les données rattachées au module précédant seront supprimées.'), 'selected' => $this->getData('pages', $this->getUrl(1), 'module'), 'col' => 10]) . template::button('config', ['value' => 'Administrer', 'href' => '?module/' . $this->getUrl(1), 'disabled' => $this->getData('pages', $this->getUrl(1), 'module') ? false : true, 'col' => 2]) . template::newRow() . template::select('theme', helpers::listThemes('Thème par défaut'), ['label' => 'Thème en mode public', 'selected' => $this->getData('pages', $this->getUrl(1), 'theme')]) . template::newRow() . template::checkbox('blank', true, 'Ouvrir dans un nouvel onglet en mode public', ['checked' => $this->getData('pages', $this->getUrl(1), 'blank')]) . template::newRow() . template::button('delete', ['value' => 'Supprimer', 'href' => '?delete/' . $this->getUrl(1), 'onclick' => 'return confirm(\'Êtes-vous certain de vouloir supprimer cette page ?\');', 'col' => 2, 'offset' => 8]) . template::submit('submit', ['col' => 2]) . template::closeRow() . template::closeForm();
 }