Loading config/merged/documentation.config.php 0 → 100644 +219 −0 Original line number Diff line number Diff line <?php namespace UnicaenParametre; use Laminas\Router\Http\Literal; use Laminas\Router\Http\Segment; use UnicaenAide\Controller\Documentation\DocumentationController; use UnicaenAide\Controller\Documentation\DocumentationControllerFactory; use UnicaenAide\Controller\Documentation\LienController; use UnicaenAide\Controller\Documentation\LienControllerFactory; use UnicaenAide\Form\Documentation\Lien\LienForm; use UnicaenAide\Form\Documentation\Lien\LienFormFactory; use UnicaenAide\Form\Documentation\Lien\LienHydrator; use UnicaenAide\Form\Documentation\Lien\LienHydratorFactory; use UnicaenAide\Provider\Privilege\UnicaenaidedocumentationPrivileges; use UnicaenAide\Service\Documentation\Lien\LienService; use UnicaenAide\Service\Documentation\Lien\LienServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; return [ 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ [ 'controller' => DocumentationController::class, 'action' => [ 'index', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_AFFICHER, ], [ 'controller' => LienController::class, 'action' => [ 'index', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_INDEX, ], [ 'controller' => LienController::class, 'action' => [ 'afficher', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_INDEX, ], [ 'controller' => LienController::class, 'action' => [ 'ajouter', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_AJOUTER, ], [ 'controller' => LienController::class, 'action' => [ 'modifier', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_MODIFIER, ], [ 'controller' => LienController::class, 'action' => [ 'historiser', 'restaurer', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_HISTORISER, ], [ 'controller' => LienController::class, 'action' => [ 'supprimer', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_SUPPRIMER, ], ], ], ], 'navigation' => [ 'default' => [ 'home' => [ 'pages' => [ 'unicaenaide' => [ 'pages' => [ 'documentation' => [ 'label' => "Documentation", 'route' => "unicaen-aide/documentation", 'resource' => PrivilegeController::getResourceId(DocumentationController::class, 'index'), 'order' => 300, 'pages' => [], ], ], ], ], ], ], ], 'router' => [ 'routes' => [ 'unicaen-aide' => [ 'type' => Literal::class, 'options' => [ 'route' => '/unicaen-aide', ], 'child_routes' => [ 'documentation' => [ 'type' => Literal::class, 'options' => [ 'route' => '/documentation', 'defaults' => [ 'controller' => DocumentationController::class, 'action' => 'index' ], ], 'may_terminate' => true, 'child_routes' => [ 'lien' => [ 'type' => Literal::class, 'options' => [ 'route' => '/lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'index' ], ], 'may_terminate' => true, 'child_routes' => [ 'afficher' => [ 'type' => Segment::class, 'options' => [ 'route' => '/afficher/:lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'afficher' ], ], ], 'ajouter' => [ 'type' => Literal::class, 'options' => [ 'route' => '/ajouter', 'defaults' => [ 'controller' => LienController::class, 'action' => 'ajouter' ], ], ], 'modifier' => [ 'type' => Segment::class, 'options' => [ 'route' => '/modifier/:lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'modifier' ], ], ], 'historiser' => [ 'type' => Segment::class, 'options' => [ 'route' => '/historiser/:lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'historiser' ], ], ], 'restaurer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/restaurer/:lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'restaurer' ], ], ], 'supprimer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/supprimer/:lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'supprimer' ], ], ], ], ], ] ], ], ], ], ], 'service_manager' => [ 'factories' => [ LienService::class => LienServiceFactory::class, ], ], 'controllers' => [ 'factories' => [ DocumentationController::class => DocumentationControllerFactory::class, LienController::class => LienControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ LienForm::class => LienFormFactory::class, ], ], 'hydrators' => [ 'factories' => [ LienHydrator::class => LienHydratorFactory::class, ], ] ]; No newline at end of file config/merged/faq.config.php +1 −1 Original line number Diff line number Diff line Loading @@ -85,7 +85,7 @@ return [ 'label' => "Foire aux questions", 'route' => "unicaen-aide/faq", 'resource' => PrivilegeController::getResourceId(FaqController::class, 'index'), 'order' => 200, 'order' => 100, 'pages' => [], ], ], Loading src/UnicaenAide/Controller/Documentation/DocumentationController.php 0 → 100644 +22 −0 Original line number Diff line number Diff line <?php namespace UnicaenAide\Controller\Documentation; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use UnicaenAide\Service\Documentation\Lien\LienServiceAwareTrait; class DocumentationController extends AbstractActionController { use LienServiceAwareTrait; public function indexAction() : ViewModel { $liens = $this->getLienService()->getLiens(false); $vm = new ViewModel([ 'liens' => $liens, ]); $vm->setTemplate('unicaen-aide/documentation/afficher'); return $vm; } } No newline at end of file src/UnicaenAide/Controller/Documentation/DocumentationControllerFactory.php 0 → 100644 +29 −0 Original line number Diff line number Diff line <?php namespace UnicaenAide\Controller\Documentation; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; use UnicaenAide\Service\Documentation\Lien\LienService; class DocumentationControllerFactory { /** * @param ContainerInterface $container * @return DocumentationController * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function __invoke(ContainerInterface $container) : DocumentationController { /** * @var LienService $lienService */ $lienService = $container->get(LienService::class); $controller = new DocumentationController(); $controller->setLienService($lienService); return $controller; } } No newline at end of file src/UnicaenAide/Controller/Documentation/LienController.php 0 → 100644 +128 −0 Original line number Diff line number Diff line <?php namespace UnicaenAide\Controller\Documentation; use Laminas\Http\Request; use Laminas\Http\Response; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use UnicaenAide\Entity\Db\DocumentationLien; use UnicaenAide\Form\Documentation\Lien\LienFormAwareTrait; use UnicaenAide\Service\Documentation\Lien\LienServiceAwareTrait; class LienController extends AbstractActionController { use LienServiceAwareTrait; use LienFormAwareTrait; public function indexAction() : ViewModel { $liens = $this->getLienService()->getLiens(); return new ViewModel([ 'liens' => $liens, ]); } public function afficherAction() : ViewModel { $lien = $this->getLienService()->getRequestedLien($this); return new ViewModel([ 'title' => "Affichage de la lien", 'lien' => $lien, ]); } public function ajouterAction() : ViewModel { $lien = new DocumentationLien(); $form = $this->getLienForm(); $form->setAttribute('action', $this->url()->fromRoute('unicaen-aide/documentation/lien/ajouter', [], [], true)); $form->bind($lien); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getLienService()->create($lien); } } $vm = new ViewModel([ 'title' => "Ajouter une documentation", 'form' => $form, ]); $vm->setTemplate('unicaen-aide/default/default-form'); return $vm; } public function modifierAction() : ViewModel { $lien = $this->getLienService()->getRequestedLien($this); $form = $this->getLienForm(); $form->setAttribute('action', $this->url()->fromRoute('unicaen-aide/documentation/lien/modifier', ['lien' => $lien->getId()], [], true)); $form->bind($lien); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getLienService()->update($lien); } } $vm = new ViewModel([ 'title' => "Modification d'une documentation", 'form' => $form, ]); $vm->setTemplate('unicaen-aide/default/default-form'); return $vm; } public function historiserAction() : Response { $lien = $this->getLienService()->getRequestedLien($this); $this->getLienService()->historise($lien); $retour = $this->params()->fromQuery('retour'); if ($retour) return $this->redirect()->toUrl($retour); return $this->redirect()->toRoute('unicaen-aide/documentation/lien', [], [], true); } public function restaurerAction() : Response { $lien = $this->getLienService()->getRequestedLien($this); $this->getLienService()->restore($lien); $retour = $this->params()->fromQuery('retour'); if ($retour) return $this->redirect()->toUrl($retour); return $this->redirect()->toRoute('unicaen-aide/documentation/lien', [], [], true); } public function supprimerAction() { $lien = $this->getLienService()->getRequestedLien($this); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); if ($data["reponse"] === "oui") $this->getLienService()->delete($lien); exit(); } $vm = new ViewModel(); if ($lien !== null) { $vm->setTemplate('unicaen-aide/default/confirmation'); $vm->setVariables([ 'title' => "Suppression de la documentation", 'text' => "La suppression est définitive êtes-vous sûr·e de vouloir continuer ?", 'action' => $this->url()->fromRoute('unicaen-aide/documentation/lien/supprimer', ["lien" => $lien->getId()], [], true), ]); } return $vm; } } No newline at end of file Loading
config/merged/documentation.config.php 0 → 100644 +219 −0 Original line number Diff line number Diff line <?php namespace UnicaenParametre; use Laminas\Router\Http\Literal; use Laminas\Router\Http\Segment; use UnicaenAide\Controller\Documentation\DocumentationController; use UnicaenAide\Controller\Documentation\DocumentationControllerFactory; use UnicaenAide\Controller\Documentation\LienController; use UnicaenAide\Controller\Documentation\LienControllerFactory; use UnicaenAide\Form\Documentation\Lien\LienForm; use UnicaenAide\Form\Documentation\Lien\LienFormFactory; use UnicaenAide\Form\Documentation\Lien\LienHydrator; use UnicaenAide\Form\Documentation\Lien\LienHydratorFactory; use UnicaenAide\Provider\Privilege\UnicaenaidedocumentationPrivileges; use UnicaenAide\Service\Documentation\Lien\LienService; use UnicaenAide\Service\Documentation\Lien\LienServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; return [ 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ [ 'controller' => DocumentationController::class, 'action' => [ 'index', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_AFFICHER, ], [ 'controller' => LienController::class, 'action' => [ 'index', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_INDEX, ], [ 'controller' => LienController::class, 'action' => [ 'afficher', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_INDEX, ], [ 'controller' => LienController::class, 'action' => [ 'ajouter', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_AJOUTER, ], [ 'controller' => LienController::class, 'action' => [ 'modifier', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_MODIFIER, ], [ 'controller' => LienController::class, 'action' => [ 'historiser', 'restaurer', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_HISTORISER, ], [ 'controller' => LienController::class, 'action' => [ 'supprimer', ], 'pivileges' => UnicaenaidedocumentationPrivileges::DOCUMENTATION_SUPPRIMER, ], ], ], ], 'navigation' => [ 'default' => [ 'home' => [ 'pages' => [ 'unicaenaide' => [ 'pages' => [ 'documentation' => [ 'label' => "Documentation", 'route' => "unicaen-aide/documentation", 'resource' => PrivilegeController::getResourceId(DocumentationController::class, 'index'), 'order' => 300, 'pages' => [], ], ], ], ], ], ], ], 'router' => [ 'routes' => [ 'unicaen-aide' => [ 'type' => Literal::class, 'options' => [ 'route' => '/unicaen-aide', ], 'child_routes' => [ 'documentation' => [ 'type' => Literal::class, 'options' => [ 'route' => '/documentation', 'defaults' => [ 'controller' => DocumentationController::class, 'action' => 'index' ], ], 'may_terminate' => true, 'child_routes' => [ 'lien' => [ 'type' => Literal::class, 'options' => [ 'route' => '/lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'index' ], ], 'may_terminate' => true, 'child_routes' => [ 'afficher' => [ 'type' => Segment::class, 'options' => [ 'route' => '/afficher/:lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'afficher' ], ], ], 'ajouter' => [ 'type' => Literal::class, 'options' => [ 'route' => '/ajouter', 'defaults' => [ 'controller' => LienController::class, 'action' => 'ajouter' ], ], ], 'modifier' => [ 'type' => Segment::class, 'options' => [ 'route' => '/modifier/:lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'modifier' ], ], ], 'historiser' => [ 'type' => Segment::class, 'options' => [ 'route' => '/historiser/:lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'historiser' ], ], ], 'restaurer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/restaurer/:lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'restaurer' ], ], ], 'supprimer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/supprimer/:lien', 'defaults' => [ 'controller' => LienController::class, 'action' => 'supprimer' ], ], ], ], ], ] ], ], ], ], ], 'service_manager' => [ 'factories' => [ LienService::class => LienServiceFactory::class, ], ], 'controllers' => [ 'factories' => [ DocumentationController::class => DocumentationControllerFactory::class, LienController::class => LienControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ LienForm::class => LienFormFactory::class, ], ], 'hydrators' => [ 'factories' => [ LienHydrator::class => LienHydratorFactory::class, ], ] ]; No newline at end of file
config/merged/faq.config.php +1 −1 Original line number Diff line number Diff line Loading @@ -85,7 +85,7 @@ return [ 'label' => "Foire aux questions", 'route' => "unicaen-aide/faq", 'resource' => PrivilegeController::getResourceId(FaqController::class, 'index'), 'order' => 200, 'order' => 100, 'pages' => [], ], ], Loading
src/UnicaenAide/Controller/Documentation/DocumentationController.php 0 → 100644 +22 −0 Original line number Diff line number Diff line <?php namespace UnicaenAide\Controller\Documentation; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use UnicaenAide\Service\Documentation\Lien\LienServiceAwareTrait; class DocumentationController extends AbstractActionController { use LienServiceAwareTrait; public function indexAction() : ViewModel { $liens = $this->getLienService()->getLiens(false); $vm = new ViewModel([ 'liens' => $liens, ]); $vm->setTemplate('unicaen-aide/documentation/afficher'); return $vm; } } No newline at end of file
src/UnicaenAide/Controller/Documentation/DocumentationControllerFactory.php 0 → 100644 +29 −0 Original line number Diff line number Diff line <?php namespace UnicaenAide\Controller\Documentation; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; use UnicaenAide\Service\Documentation\Lien\LienService; class DocumentationControllerFactory { /** * @param ContainerInterface $container * @return DocumentationController * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function __invoke(ContainerInterface $container) : DocumentationController { /** * @var LienService $lienService */ $lienService = $container->get(LienService::class); $controller = new DocumentationController(); $controller->setLienService($lienService); return $controller; } } No newline at end of file
src/UnicaenAide/Controller/Documentation/LienController.php 0 → 100644 +128 −0 Original line number Diff line number Diff line <?php namespace UnicaenAide\Controller\Documentation; use Laminas\Http\Request; use Laminas\Http\Response; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; use UnicaenAide\Entity\Db\DocumentationLien; use UnicaenAide\Form\Documentation\Lien\LienFormAwareTrait; use UnicaenAide\Service\Documentation\Lien\LienServiceAwareTrait; class LienController extends AbstractActionController { use LienServiceAwareTrait; use LienFormAwareTrait; public function indexAction() : ViewModel { $liens = $this->getLienService()->getLiens(); return new ViewModel([ 'liens' => $liens, ]); } public function afficherAction() : ViewModel { $lien = $this->getLienService()->getRequestedLien($this); return new ViewModel([ 'title' => "Affichage de la lien", 'lien' => $lien, ]); } public function ajouterAction() : ViewModel { $lien = new DocumentationLien(); $form = $this->getLienForm(); $form->setAttribute('action', $this->url()->fromRoute('unicaen-aide/documentation/lien/ajouter', [], [], true)); $form->bind($lien); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getLienService()->create($lien); } } $vm = new ViewModel([ 'title' => "Ajouter une documentation", 'form' => $form, ]); $vm->setTemplate('unicaen-aide/default/default-form'); return $vm; } public function modifierAction() : ViewModel { $lien = $this->getLienService()->getRequestedLien($this); $form = $this->getLienForm(); $form->setAttribute('action', $this->url()->fromRoute('unicaen-aide/documentation/lien/modifier', ['lien' => $lien->getId()], [], true)); $form->bind($lien); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); $form->setData($data); if ($form->isValid()) { $this->getLienService()->update($lien); } } $vm = new ViewModel([ 'title' => "Modification d'une documentation", 'form' => $form, ]); $vm->setTemplate('unicaen-aide/default/default-form'); return $vm; } public function historiserAction() : Response { $lien = $this->getLienService()->getRequestedLien($this); $this->getLienService()->historise($lien); $retour = $this->params()->fromQuery('retour'); if ($retour) return $this->redirect()->toUrl($retour); return $this->redirect()->toRoute('unicaen-aide/documentation/lien', [], [], true); } public function restaurerAction() : Response { $lien = $this->getLienService()->getRequestedLien($this); $this->getLienService()->restore($lien); $retour = $this->params()->fromQuery('retour'); if ($retour) return $this->redirect()->toUrl($retour); return $this->redirect()->toRoute('unicaen-aide/documentation/lien', [], [], true); } public function supprimerAction() { $lien = $this->getLienService()->getRequestedLien($this); /** @var Request $request */ $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost(); if ($data["reponse"] === "oui") $this->getLienService()->delete($lien); exit(); } $vm = new ViewModel(); if ($lien !== null) { $vm->setTemplate('unicaen-aide/default/confirmation'); $vm->setVariables([ 'title' => "Suppression de la documentation", 'text' => "La suppression est définitive êtes-vous sûr·e de vouloir continuer ?", 'action' => $this->url()->fromRoute('unicaen-aide/documentation/lien/supprimer', ["lien" => $lien->getId()], [], true), ]); } return $vm; } } No newline at end of file