Skip to content
Snippets Groups Projects
Select Git revision
  • fff91df2fd646da70e3eea2e78cb91aad534a5f0
  • master default protected
  • subtemplate
  • release_7.0.6
  • php84
  • 6.x
  • v5.x-test
  • 5x
  • 7.1.0
  • 7.0.6
  • 7.0.5
  • 7.0.4
  • 7.0.3
  • 7.0.2
  • 7.0.1
  • 7.0.0
  • 6.1.7
  • 6.1.6
  • 6.1.5
  • 6.1.4
  • 6.1.3
  • 6.1.2
  • 6.1.1
  • 6.1.0
  • 6.0.3
  • 6.0.2
  • 5.0.6
  • 6.0.1
28 results

ContenuController.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ContenuController.php 3.85 KiB
    <?php
    
    namespace UnicaenRenderer\Controller;
    
    use UnicaenRenderer\Entity\Db\Content;
    use UnicaenRenderer\Form\Contenu\ContenuFormAwareTrait;
    use UnicaenRenderer\Service\Contenu\ContenuServiceAwareTrait;
    use UnicaenRenderer\Service\Macro\MacroServiceAwareTrait;
    use Zend\Http\Request;
    use Zend\Mvc\Controller\AbstractActionController;
    use Zend\View\Model\ViewModel;
    
    class ContenuController extends AbstractActionController {
        use ContenuServiceAwareTrait;
        use MacroServiceAwareTrait;
        use ContenuFormAwareTrait;
    
        public function indexAction()
        {
            $contenus = $this->getContenuService()->getContenus();
    
            return new ViewModel([
                'contenus' => $contenus,
            ]);
        }
    
        public function afficherAction()
        {
            $contenu = $this->getContenuService()->getRequestedContenu($this);
    
            return new ViewModel([
                'title' => "Affichage du contenu",
                'contenu' => $contenu,
            ]);
        }
    
        public function ajouterAction()
        {
            $contenu = new Content();
    
            $form = $this->getContenuForm();
            $form->setAttribute('action', $this->url()->fromRoute('contenu/contenu/ajouter', [], [], true));
            $form->bind($contenu);
    
            $request = $this->getRequest();
            if ($request->isPost()) {
                $data = $request->getPost();
                $form->setData($data);
                if ($form->isValid()) {
                    $this->getContenuService()->create($contenu);
                }
            }
    
            $vm = new ViewModel();
            $vm->setTemplate('unicaen-renderer/contenu/modifier');
            $vm->setVariables([
                'title' => "Création d'un contenu",
                'form' => $form,
            ]);
            return $vm;
        }
    
        public function modifierAction()
        {
            $contenu = $this->getContenuService()->getRequestedContenu($this);
    
            $form = $this->getContenuForm();
            $form->setAttribute('action', $this->url()->fromRoute('contenu/contenu/modifier', ['contenu' => $contenu->getId()], [], true));
            $form->bind($contenu);
    
            $request = $this->getRequest();
            if ($request->isPost()) {
                $data = $request->getPost();
                $form->setData($data);
                if ($form->isValid()) {
                    $this->getContenuService()->update($contenu);
                }
            }
    
            return new ViewModel([
                'title' => "Modification d'un contenu",
                'form' => $form,
            ]);
        }
    
        public function historiserAction()
        {
            $contenu = $this->getContenuService()->getRequestedContenu($this);
            $this->getContenuService()->historise($contenu);
    
            return $this->redirect()->toRoute('contenu/contenu', [], [], true);
        }
    
        public function restaurerAction()
        {
            $contenu = $this->getContenuService()->getRequestedContenu($this);
            $this->getContenuService()->restore($contenu);
    
            return $this->redirect()->toRoute('contenu/contenu', [], [], true);
        }
    
        public function detruireAction()
        {
            $contenu = $this->getContenuService()->getRequestedContenu($this);
    
            /** @var Request $request */
            $request = $this->getRequest();
            if ($request->isPost()) {
                $data = $request->getPost();
                if ($data["reponse"] === "oui") {
                    $this->getContenuService()->delete($contenu);
                }
                exit();
            }
    
            $vm = new ViewModel();
            if ($contenu !== null) {
                $vm->setTemplate('unicaen-renderer/default/confirmation');
                $vm->setVariables([
                    'title' => "Suppression du contenu [" . $contenu->getCode() . "]",
                    'text' => "La suppression est définitive êtes-vous sûr&middot;e de vouloir continuer ?",
                    'action' => $this->url()->fromRoute('contenu/contenu/detruire', ["contenu" => $contenu->getId()], [], true),
                ]);
            }
            return $vm;
        }
    }