Skip to content
Snippets Groups Projects
Select Git revision
  • a6a828b500c062ee1e8058ca532a32e9996e2377
  • 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

TemplateController.php

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