Commit 2256a85b authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Integration de la faq

parent ecc92bca
Loading
Loading
Loading
Loading
Loading
+142 −8
Original line number Diff line number Diff line
@@ -2,9 +2,17 @@

namespace UnicaenParametre;

use UnicaenAide\Controller\FAQ\FaqController;
use UnicaenAide\Controller\Faq\FaqController;
use UnicaenAide\Controller\Faq\FaqControllerFactory;
use UnicaenAide\Controller\Faq\QuestionController;
use UnicaenAide\Controller\Faq\QuestionControllerFactory;
use UnicaenAide\Form\Faq\Question\QuestionForm;
use UnicaenAide\Form\Faq\Question\QuestionFormFactory;
use UnicaenAide\Form\Faq\Question\QuestionHydrator;
use UnicaenAide\Form\Faq\Question\QuestionHydratorFactory;
use UnicaenAide\Provider\Privilege\UnicaenaidefaqPrivileges;
use UnicaenAide\Service\Faq\Question\QuestionService;
use UnicaenAide\Service\Faq\Question\QuestionServiceFactory;
use UnicaenPrivilege\Guard\PrivilegeController;
use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;
@@ -16,10 +24,53 @@ return [
                [
                    'controller' => FaqController::class,
                    'action' => [
                        'afficher',
                        'index',
                    ],
                    'pivileges' => UnicaenaidefaqPrivileges::FAQ_AFFICHER,
                ],
                [
                    'controller' => QuestionController::class,
                    'action' => [
                        'index',
                    ],
                    'pivileges' => UnicaenaidefaqPrivileges::FAQ_INDEX,
                ],
                [
                    'controller' => QuestionController::class,
                    'action' => [
                        'afficher',
                    ],
                    'pivileges' => UnicaenaidefaqPrivileges::FAQ_INDEX,
                ],
                [
                    'controller' => QuestionController::class,
                    'action' => [
                        'ajouter',
                    ],
                    'pivileges' => UnicaenaidefaqPrivileges::FAQ_AJOUTER,
                ],
                [
                    'controller' => QuestionController::class,
                    'action' => [
                        'modifier',
                    ],
                    'pivileges' => UnicaenaidefaqPrivileges::FAQ_MODIFIER,
                ],
                [
                    'controller' => QuestionController::class,
                    'action' => [
                        'historiser',
                        'restaurer',
                    ],
                    'pivileges' => UnicaenaidefaqPrivileges::FAQ_HISTORISER,
                ],
                [
                    'controller' => QuestionController::class,
                    'action' => [
                        'supprimer',
                    ],
                    'pivileges' => UnicaenaidefaqPrivileges::FAQ_SUPPRIMER,
                ],
            ],
        ],
    ],
@@ -33,7 +84,7 @@ return [
                            'faq' => [
                                'label'    => "Foire aux questions",
                                'route'    => "unicaen-aide/faq",
                                'resource' => PrivilegeController::getResourceId(FaqController::class, 'afficher'),
                                'resource' => PrivilegeController::getResourceId(FaqController::class, 'index'),
                                'order'    => 200,
                                'pages' => [],
                            ],
@@ -58,28 +109,111 @@ return [
                            'route'    => '/faq',
                            'defaults' => [
                                'controller' => FaqController::class,
                                'action' => 'index'
                            ],
                        ],
                        'may_terminate' => true,
                        'child_routes' => [
                            'question' => [
                                'type'  => Literal::class,
                                'options' => [
                                    'route'    => '/question',
                                    'defaults' => [
                                        'controller' => QuestionController::class,
                                        'action' => 'index'
                                    ],
                                ],
                                'may_terminate' => true,
                                'child_routes' => [
                                    'afficher' => [
                                        'type'  => Segment::class,
                                        'options' => [
                                            'route'    => '/afficher/:question',
                                            'defaults' => [
                                                'controller' => QuestionController::class,
                                                'action' => 'afficher'
                                            ],
                                        ],
                                    ],
                                    'ajouter' => [
                                        'type'  => Literal::class,
                                        'options' => [
                                            'route'    => '/ajouter',
                                            'defaults' => [
                                                'controller' => QuestionController::class,
                                                'action' => 'ajouter'
                                            ],
                                        ],
                                    ],
                                    'modifier' => [
                                        'type'  => Segment::class,
                                        'options' => [
                                            'route'    => '/modifier/:question',
                                            'defaults' => [
                                                'controller' => QuestionController::class,
                                                'action' => 'modifier'
                                            ],
                                        ],
                                    ],
                                    'historiser' => [
                                        'type'  => Segment::class,
                                        'options' => [
                                            'route'    => '/historiser/:question',
                                            'defaults' => [
                                                'controller' => QuestionController::class,
                                                'action' => 'historiser'
                                            ],
                                        ],
                                    ],
                                    'restaurer' => [
                                        'type'  => Segment::class,
                                        'options' => [
                                            'route'    => '/restaurer/:question',
                                            'defaults' => [
                                                'controller' => QuestionController::class,
                                                'action' => 'restaurer'
                                            ],
                                        ],
                                    ],
                                    'supprimer' => [
                                        'type'  => Segment::class,
                                        'options' => [
                                            'route'    => '/supprimer/:question',
                                            'defaults' => [
                                                'controller' => QuestionController::class,
                                                'action' => 'supprimer'
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

    'service_manager' => [
        'factories' => [],
        'factories' => [
            QuestionService::class => QuestionServiceFactory::class,
        ],
    ],
    'controllers'     => [
        'factories' => [
            FaqController::class => FaqControllerFactory::class,
            QuestionController::class => QuestionControllerFactory::class,
        ],
    ],
    'form_elements' => [
        'factories' => [],
        'factories' => [
            QuestionForm::class => QuestionFormFactory::class,
        ],
    ],
    'hydrators' => [
        'factories' => [],
        'factories' => [
            QuestionHydrator::class => QuestionHydratorFactory::class,
        ],
    ]

];
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ return [
                        'historiser',
                        'restaurer',
                    ],
                    'pivileges' => UnicaenaideglossairePrivileges::GLOSSAIRE_MODIFIER,
                    'pivileges' => UnicaenaideglossairePrivileges::GLOSSAIRE_HISTORISER,
                ],
                [
                    'controller' => DefinitionController::class,
+27 −0
Original line number Diff line number Diff line

-- GLOSSAIRE ------------------------------------------------------------------

create table unicaen_aide_glossaire_definition
(
    id serial constraint unicaen_glossaire_definition_pk primary key,
    terme                 varchar(1024)                             not null,
    definition            text                                      not null,
    alternatives          text,
    historisee            bool                                      default false
);

create unique index unicaen_glossaire_definition_id_uindex on unicaen_aide_glossaire_definition (id);
create unique index unicaen_glossaire_definition_terme_uindex on unicaen_aide_glossaire_definition (terme);

-- FAQ ------------------------------------------------------------------------

create table unicaen_aide_faq_question
(
    id serial constraint unicaen_faq_question_pk primary key,
    question              varchar(4096)                             not null,
    reponse               text                                      not null,
    historisee            bool                                      default false
);

create unique index unicaen_faq_question_id_uindex on unicaen_aide_faq_question (id);
+0 −14
Original line number Diff line number Diff line
<?php

namespace UnicaenAide\Controller\FAQ;

use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;

class FaqController extends AbstractActionController {

    public function afficherAction() : ViewModel
    {
        return new ViewModel();
    }
}
 No newline at end of file
+22 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenAide\Controller\Faq;

use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
use UnicaenAide\Service\Faq\Question\QuestionServiceAwareTrait;

class FaqController extends AbstractActionController {
    use QuestionServiceAwareTrait;

    public function indexAction() : ViewModel
    {
        $questions = $this->getQuestionService()->getQuestions(false);

        $vm = new ViewModel([
            'questions' => $questions,
        ]);
        $vm->setTemplate('unicaen-aide/faq/afficher');
        return $vm;
    }
}
 No newline at end of file
Loading