示例#1
0
文件: news.php 项目: Okutsuko/ZwiiCMS
 /**
  * MODULE : Édition d'une news */
 public function edit()
 {
     // Erreur 404
     if (!$this->getData([$this->getUrl(0), $this->getUrl(2)])) {
         return false;
     } elseif ($this->getPost('submit')) {
         // Modifie la clef de la news si le titre a été modifié
         $key = $this->getPost('title') ? $this->getPost('title', helper::URL) : $this->getUrl(2);
         // Sauvegarde la date de création de la news
         $date = $this->getData([$this->getUrl(0), $this->getUrl(2), 'date']);
         // Si la clef à changée
         if ($key !== $this->getUrl(2)) {
             // Incrémente la nouvelle clef de la news pour éviter les doublons
             $key = helper::increment($key, $this->getData($this->getUrl(0)));
             // Supprime l'ancienne news
             $this->removeData([$this->getUrl(0), $this->getUrl(2)]);
         }
         // Modifie la news ou en crée une nouvelle si la clef a changée
         $this->setData([$this->getUrl(0), $key, ['title' => $this->getPost('title', helper::STRING), 'date' => $date, 'content' => $this->getPost('content')]]);
         // Enregistre les données
         $this->saveData();
         // Notification de modification
         $this->setNotification('News modifiée avec succès !');
         // Redirige vers l'édition de la nouvelle news si la clef à changée ou sinon vers l'ancienne
         helper::redirect('module/' . $this->getUrl(0) . '/edit/' . $key);
     }
     // Contenu de la page
     self::$content = template::openForm() . template::openRow() . template::text('title', ['label' => 'Titre de la news', 'value' => $this->getData([$this->getUrl(0), $this->getUrl(2), 'title']), 'required' => 'required']) . template::newRow() . template::textarea('content', ['class' => 'editor', 'value' => $this->getData([$this->getUrl(0), $this->getUrl(2), 'content'])]) . template::newRow() . template::button('back', ['value' => 'Retour', 'href' => helper::baseUrl() . 'module/' . $this->getUrl(0), 'col' => 2]) . template::submit('submit', ['col' => 2, 'offset' => 8]) . template::closeRow();
     template::closeForm();
 }
示例#2
0
文件: form.php 项目: Okutsuko/ZwiiCMS
 /** MODULE : Formulaire */
 public function index()
 {
     // Traitement du formulaire
     if ($this->getPost('submit')) {
         // Préparation des données (index + 1 comme l'item 0 = champ de copie qui est supprimé à l'enregistrement)
         $data = [];
         $mail = '';
         foreach ($this->getPost('input') as $key => $value) {
             // Préparation des données pour la création dans la base
             $data[$this->getData([$this->getUrl(0), 'inputs', $key + 1, 'name'])] = $value;
             // Préparation des données pour le mail
             $mail .= '<li>' . $this->getData([$this->getUrl(0), 'inputs', $key + 1, 'name']) . ' : ' . $value . '</li>';
         }
         // Crée les données
         $this->setData([$this->getUrl(0), 'data', helper::increment(1, $this->getData([$this->getUrl(0), 'data'])), $data]);
         // Enregistre les données
         $this->saveData();
         // Envoi du mail
         if ($this->getData([$this->getUrl(0), 'config', 'mail'])) {
             helper::mail(false, $this->getData([$this->getUrl(0), 'config', 'mail']), helper::translate('Mail de votre site ZwiiCMS'), '<h1>' . helper::translate('Mail en provenance de votre site ZwiiCMS') . '</h1>' . $mail . '</ul>');
         }
         // Notification de soumission
         $this->setNotification('Formulaire soumis avec succès !');
         // Redirige vers la page courante
         helper::redirect($this->getUrl());
     }
     // Génère les inputs
     if ($this->getData([$this->getUrl(0), 'inputs'])) {
         foreach ($this->getData([$this->getUrl(0), 'inputs']) as $input) {
             self::$content .= $this->generateInput($input);
         }
         // Texte du bouton de validation
         $submitText = $this->getData([$this->getUrl(0), 'config', 'button']);
         // Ajout du bouton de validation
         self::$content .= template::openRow() . template::submit('submit', ['value' => $submitText ? $submitText : 'Enregistrer', 'col' => 2]) . template::closeRow();
     }
     // Contenu de la page
     self::$content = template::openForm() . self::$content . template::closeForm();
 }
示例#3
0
文件: core.php 项目: Okutsuko/ZwiiCMS
 /** MODULE : Édition de page */
 public function edit()
 {
     // Erreur 404
     if (!$this->getData(['pages', $this->getUrl(0)])) {
         return false;
     } elseif ($this->getPost('submit')) {
         // Modifie la clef de la page si le titre a été modifié
         $key = $this->getPost('title') ? $this->getPost('title', helper::URL) : $this->getUrl(0);
         // Sauvegarde le module de la page
         $module = $this->getData(['pages', $this->getUrl(0), 'module']);
         // Si la clef à changée
         if ($key !== $this->getUrl(0)) {
             // Incrémente la nouvelle clef de la page pour éviter les doublons
             $key = helper::increment($key, $this->getData('pages'));
             $key = helper::increment($key, self::$modules);
             // Evite à une page d'avoir la même clef qu'un module système
             // Supprime l'ancienne page
             $this->removeData(['pages', $this->getUrl(0)]);
             // Crée les nouvelles données du module de la page (avec la nouvelle clef) en copiant les anciennes
             $this->setData([$key, $this->getData($this->getUrl(0))]);
             // Supprime les données du module de l'ancienne page
             $this->removeData($this->getUrl(0));
             // Si la page est la page d'accueil, modification la clef dans la configuration du site
             if ($this->getData(['config', 'index']) === $this->getUrl(0)) {
                 $this->setData(['config', 'index', $key]);
             }
         }
         // Change la positions des pages suivantes si la position de la page à changée
         $position = $this->getPost('position', helper::INT);
         if ($position and $position !== $this->getData(['pages', $this->getUrl(0), 'position'])) {
             // Nouvelle position des pages
             $newPosition = $position;
             // Liste les pages en les triant par position en ordre croissant
             $pages = array_flip(helper::arrayCollumn($this->getData('pages'), 'position', 'SORT_ASC', true));
             // Incrémente la position des pages suivante
             foreach ($pages as $pagePosition => $pageKey) {
                 if ($pagePosition >= $position) {
                     $newPosition++;
                     $this->setData(['pages', $pageKey, 'position', $newPosition]);
                 }
             }
         }
         // Modifie la page ou en crée une nouvelle si la clef à changée
         $this->setData(['pages', $key, ['title' => $this->getPost('title', helper::STRING), 'description' => $this->getPost('description', helper::STRING), 'position' => $position, 'blank' => $this->getPost('blank', helper::BOOLEAN), 'module' => $module, 'content' => $this->getPost('content')]]);
         // Supprime l'ancienne page si la clef à changée
         if ($key !== $this->getUrl(0)) {
             $this->removeData(['pages', $this->getUrl(0)]);
         }
         // Enregistre les données
         $this->saveData($key);
         // Notification de modification
         $this->setNotification('Page modifiée avec succès !');
         // Redirige vers la l'édition de la nouvelle page si la clef à changée ou sinon vers l'ancienne
         helper::redirect('edit/' . $key);
     }
     // Liste les pages en les triant par position
     $listPages = ['Ne pas afficher', 'Au début'];
     $selected = 0;
     $pagePositionPrevious = 1;
     $pages = array_flip(helper::arrayCollumn($this->getData('pages'), 'position', 'SORT_ASC', true));
     foreach ($pages as $pagePosition => $pageKey) {
         // Si la page est la page courante on ne l'affiche pas et on selection l'élément précédent (pas de - 1 à $pagePosition car + 1 dans $listPages)
         if ($pageKey === $this->getUrl(0)) {
             $selected = $pagePositionPrevious;
         } else {
             // Ajoute à la liste
             $listPages[$pagePosition + 1] = helper::translate('Après') . ' "' . $this->getData(['pages', $pageKey, 'title']) . '"';
             // Enregistre la position de cette page afin de la sélectionner si la prochaine page de la liste est la page en train d'être éditée
             $pagePositionPrevious = $pagePosition + 1;
         }
     }
     self::$title = $this->getData(['pages', $this->getUrl(0), 'title']);
     self::$content = template::openForm() . template::openRow() . template::text('title', ['label' => 'Titre de la page', 'value' => $this->getData(['pages', $this->getUrl(0), 'title']), 'required' => true]) . template::newRow() . template::select('position', $listPages, ['label' => 'Position dans le menu', 'selected' => $selected]) . template::newRow() . template::textarea('content', ['value' => $this->getData(['pages', $this->getUrl(0), 'content']), 'class' => 'editor']) . template::newRow() . template::textarea('description', ['label' => 'Description de la page', 'help' => 'Si le champ est vide, la description du site est utilisée.', 'value' => $this->getData(['pages', $this->getUrl(0), 'description'])]) . template::newRow() . template::hidden('key', ['value' => $this->getUrl(0)]) . template::hidden('oldModule', ['value' => $this->getData(['pages', $this->getUrl(0), 'module'])]) . template::select('module', helper::listModules('Aucun module'), ['label' => 'Inclure le module', 'help' => 'En cas de changement de module, les données du module précédent seront supprimées.', 'selected' => $this->getData(['pages', $this->getUrl(0), 'module']), 'col' => 10]) . template::button('admin', ['value' => 'Administrer', 'href' => helper::baseUrl() . 'module/' . $this->getUrl(0), 'disabled' => $this->getData(['pages', $this->getUrl(0), 'module']) ? '' : 'disabled', 'col' => 2]) . template::newRow() . template::checkbox('blank', true, 'Ouvrir dans un nouvel onglet en mode public', ['checked' => $this->getData(['pages', $this->getUrl(0), 'blank'])]) . template::newRow() . template::button('delete', ['value' => 'Supprimer', 'href' => helper::baseUrl() . 'delete/' . $this->getUrl(0), 'onclick' => 'return confirm(\'' . helper::translate('Êtes-vous sûr de vouloir supprimer cette page ?') . '\');', 'col' => 2, 'offset' => 8]) . template::submit('submit', ['col' => 2]) . template::closeRow() . template::closeForm();
 }