/** * 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(); }