diff --git a/Module.php b/Module.php index 57d23f5eafb2db536fead5bc071dd272c23e663c..a6f5d607eb114c84f0f6e428b1e40f2afc2f9737 100644 --- a/Module.php +++ b/Module.php @@ -17,16 +17,6 @@ class Module $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); - /* Active un layout spécial si la requête est de type AJAX. Valable pour TOUS les modules de l'application. */ - $eventManager->getSharedManager()->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', - function (MvcEvent $e) { - $request = $e->getRequest(); - if ($request instanceof HttpRequest && $request->isXmlHttpRequest()) { - $e->getTarget()->layout('layout/ajax.phtml'); - } - } - ); - } public function getConfig() diff --git a/src/UnicaenAutoform/Entity/Db/Categorie.php b/src/UnicaenAutoform/Entity/Db/Categorie.php index c38c5119fb64953a20fc3039ce57b5181262662e..a872ed005a936fa4b04594ed29b7cc5e997e1311 100644 --- a/src/UnicaenAutoform/Entity/Db/Categorie.php +++ b/src/UnicaenAutoform/Entity/Db/Categorie.php @@ -5,9 +5,11 @@ namespace UnicaenAutoform\Entity\Db; use Doctrine\Common\Collections\ArrayCollection; use UnicaenApp\Entity\HistoriqueAwareInterface; use UnicaenApp\Entity\HistoriqueAwareTrait; +use UnicaenAutoform\Entity\HasMotsClefsAwareTrait; class Categorie implements HistoriqueAwareInterface { use HistoriqueAwareTrait; + use HasMotsClefsAwareTrait; /** @var integer */ private $id; diff --git a/src/UnicaenAutoform/Entity/Db/FormulaireInstance.php b/src/UnicaenAutoform/Entity/Db/FormulaireInstance.php index e77d90df75948b65aee31cfb12ba1d39bf67c365..8ad53cd8d272446f04a03ce4403f06805ef84526 100644 --- a/src/UnicaenAutoform/Entity/Db/FormulaireInstance.php +++ b/src/UnicaenAutoform/Entity/Db/FormulaireInstance.php @@ -190,7 +190,12 @@ class FormulaireInstance implements HistoriqueAwareInterface { public function fetchChampReponseByMotsClefs(array $mots) : string { foreach ($this->getReponses() as $reponse) { - if ($reponse->getChamp()->hasMotsClefs($mots) AND $reponse->estNonHistorise()) return $reponse->getReponse(); + if ($reponse->getChamp()->hasMotsClefs($mots) AND $reponse->estNonHistorise()) { + if ($reponse->getChamp()->getElement() !== 'Multiple') return $reponse->getReponse(); + else { + return str_replace('on_','',$reponse->getReponse()); + } + } } return ""; } diff --git a/src/UnicaenAutoform/Entity/Db/Mapping/UnicaenAutoform.Entity.Db.Categorie.dcm.xml b/src/UnicaenAutoform/Entity/Db/Mapping/UnicaenAutoform.Entity.Db.Categorie.dcm.xml index a967a26fa3217245af009beca864bcbacdee2042..53ab2f25da54ca72c6e97a6385c05b606c428c53 100644 --- a/src/UnicaenAutoform/Entity/Db/Mapping/UnicaenAutoform.Entity.Db.Categorie.dcm.xml +++ b/src/UnicaenAutoform/Entity/Db/Mapping/UnicaenAutoform.Entity.Db.Categorie.dcm.xml @@ -9,6 +9,7 @@ <field name="code" column="code" type="string" length="64" nullable="false" /> <field name="libelle" column="libelle" type="string" length="256" nullable="false" /> <field name="ordre" column="ordre" type="integer" nullable="false" /> + <field name="motsClefs" column="mots_clefs" type="string" length="1024" nullable="true" /> <many-to-one target-entity="UnicaenAutoform\Entity\Db\Formulaire" field="formulaire"> <join-column name="formulaire" referenced-column-name="id"/> diff --git a/src/UnicaenAutoform/View/Helper/partial/input/custom.phtml b/src/UnicaenAutoform/View/Helper/partial/input/custom.phtml index 13b0938fdc01086194abc65c9c6c5cec0446a9bb..8f4902ca98f8f617f24a5b441652c790962d4bcd 100644 --- a/src/UnicaenAutoform/View/Helper/partial/input/custom.phtml +++ b/src/UnicaenAutoform/View/Helper/partial/input/custom.phtml @@ -32,7 +32,7 @@ $reponses = explode(';', $reponse); <?php $found = true; ?> <input class="form-control" type="text" id="<?php echo $champ->getId()?>_<?php echo $position; ?>" name="<?php echo $champ->getId()?>_<?php echo $position; ?>" - value="<?php echo trim($reponses[$position]); ?>" + value="<?php echo isset($reponses[$position])?trim($reponses[$position]):null; ?>" /> <?php endif; ?> <?php if ($params[0] === 'texte long') : ?> @@ -47,7 +47,8 @@ $reponses = explode(';', $reponse); id="<?php echo $champ->getId(); ?>_<?php echo $position; ?>" name="<?php echo $champ->getId(); ?>_<?php echo $position; ?>" > <?php for ($param_position = 2; $param_position < count($params) ; $param_position++) : ?> - <option value="<?php echo $params[$param_position]; ?>" <?php if ($params[$param_position]===$reponses[$position]) echo " selected "; ?>> + <?php $creponse = isset($reponses[$position])?trim($reponses[$position]):null; ?> + <option value="<?php echo $params[$param_position]; ?>" <?php if ($params[$param_position]===$creponse) echo " selected "; ?>> <?php echo $params[$param_position]; ?> </option> <?php endfor; ?> diff --git a/view/unicaen-autoform/formulaire/afficher-formulaire.phtml b/view/unicaen-autoform/formulaire/afficher-formulaire.phtml index 9df51891e895dbfda9e9d0b900b54ee02365a057..5964fc6d81ad5fdf28d3fe4aeea1d1ffabc04280 100644 --- a/view/unicaen-autoform/formulaire/afficher-formulaire.phtml +++ b/view/unicaen-autoform/formulaire/afficher-formulaire.phtml @@ -48,7 +48,9 @@ $a=1; </div> <div class="panel-body body-reductible"> <?php foreach ($champs as $champ) : ?> - <div> <?php echo $this->champAsInput()->render($champ, $reponses); ?> </div> + <div> + <?php echo $this->champAsInput()->render($champ, $reponses); ?> + </div> <?php endforeach; ?> </div> </div> diff --git a/view/unicaen-autoform/formulaire/modifier.phtml b/view/unicaen-autoform/formulaire/modifier.phtml index ab3c3f5cba87cc133c164c86dee9b78aeaa9ddb1..9e3afde2358ccd49965e02c31c3da5ef6e36ce1f 100644 --- a/view/unicaen-autoform/formulaire/modifier.phtml +++ b/view/unicaen-autoform/formulaire/modifier.phtml @@ -83,6 +83,15 @@ $canDetruireChamp = $this->isAllowed(ChampPrivileges::getResourceId(Ch <?php if ($categorie->estHistorise()) : ?> <small>(<?php echo count($categorie->getChamps()); ?> champs)</small> <?php endif; ?> + <br/> + <?php + $mots = explode(";",$categorie->getMotsClefs()); + $mots = array_filter($mots, function ($a) { return trim($a) !== '';}); + ?> + + <?php foreach ($mots as $motclef) : ?> + <span class="motclef"> <?php echo $motclef; ?> </span> + <?php endforeach; ?> </div> <div class="col-md-2"> @@ -157,8 +166,16 @@ $canDetruireChamp = $this->isAllowed(ChampPrivileges::getResourceId(Ch <div class="row survol"> <div class="col-md-10"> <?php - echo $this->champAsInput()->render($champ); + echo $this->champAsInput()->render($champ); + ?> + <?php + $mots = explode(";",$champ->getMotsClefs()); + $mots = array_filter($mots, function ($a) { return trim($a) !== '';}); ?> + + <?php foreach ($mots as $motclef) : ?> + <span class="motclef"> <?php echo $motclef; ?> </span> + <?php endforeach; ?> </div> <div class="col-md-2"> <?php if ($canModifierChamp) : ?> @@ -232,4 +249,18 @@ $canDetruireChamp = $this->isAllowed(ChampPrivileges::getResourceId(Ch window.location.reload(); }); }); -</script> \ No newline at end of file +</script> + +<style> + .motclef { + background: lightgrey; + color: black; + font-family: monospace; + border: 1px grey solid; + border-radius: 0.5rem; + margin-left: 0.5rem; + margin-bottom: 0.5rem; + padding-left: 1rem; + padding-right: 1rem; + } +</style> \ No newline at end of file