Commit 81e4cfd9f5a5fdd1ea592a12c2d795ae5f65c591

Authored by Etienne Pallier
1 parent c6900c63
Exists in master and in 1 other branch dev

Refactorisation de la vue 'view' pour toutes les 'autres' entités

(étape 2, étape 3 en cours...)

=> dans AppController:view_generic()
=> utilisation de mon helper
src/View/Helper/MyHelperHelper/displayAssociatedEntitiesAsSectionShowHide()
=> un seul template unique utilisé /src/Template/Common/view.ctp, évite
toutes ces trop nombreuses redondances,
=> plus efficace, on modifie tout en un seul endroit ! (au lieu d'une
dizaine de pages web différentes avant !)

v4.105.0-3.7.9
CHANGES.txt
... ... @@ -119,9 +119,14 @@ Outre ces changements, voici d'autres changements importants :
119 119  
120 120 ======= CHANGES =======
121 121  
122   -refactorisation de la vue 'view' pour toutes les 'autres' entités
  122 +-------
  123 +06/10/2020 v4.105.0-3.7.9 (EP)
  124 + - (i) refactorisation de la vue 'view' pour toutes les 'autres' entités (étape 2, étape 3 en cours...)
  125 + => dans AppController:view_generic()
  126 + => utilisation de mon helper src/View/Helper/MyHelperHelper/displayAssociatedEntitiesAsSectionShowHide()
  127 + => un seul template unique utilisé /src/Template/Common/view.ctp, évite toutes ces trop nombreuses redondances,
  128 + => plus efficace, on modifie tout en un seul endroit ! (au lieu d'une dizaine de pages web différentes avant !)
123 129  
124   -=> dans AppController:view_generic()
125 130  
126 131 -------
127 132 05/10/2020 v4.104.5-3.7.9 (EP)
... ...
README.md
... ... @@ -42,8 +42,8 @@ Logiciel testé et validé sur les configurations suivantes :
42 42  
43 43 --------------------------------------------------------------------------------------------
44 44  
45   -Date: 05/10/2020
46   -Version: 4.104.5-3.7.9
  45 +Date: 06/10/2020
  46 +Version: 4.105.0-3.7.9
47 47  
48 48  
49 49 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes)
... ...
src/Controller/AppController.php
... ... @@ -481,7 +481,13 @@ class AppController extends Controller
481 481 //return strtolower($this->name);
482 482 //return __CLASS__;
483 483 //return strtolower( substr($this->getName(),0,-1) );
484   - return substr($this->getTypeNamePlural(),0,-1);
  484 + $words = explode(' ',$this->getTypeNamePlural());
  485 + //debug($words);
  486 + $type_name_singular = '';
  487 + foreach($words as $word) $type_name_singular .= substr($word,0,-1).' ';
  488 + //debug($type_name_singular);
  489 + return rtrim($type_name_singular);
  490 + //return substr($this->getTypeNamePlural(),0,-1);
485 491 }
486 492 //@deprecated
487 493 public function getNiceName() { return $this->getTypeNameSingular(); }
... ... @@ -2120,18 +2126,47 @@ class AppController extends Controller
2120 2126 } // beforeFilter()
2121 2127  
2122 2128  
2123   - public function view_generic($id, $associated_entity_types) {
  2129 + public function view_generic($id, $associated_entity_types, $parent_entity_controller_name=[]) {
2124 2130  
2125 2131 // ex: SurCategories
2126 2132 $controller_name = $this->getName();
  2133 + //debug($controller_name); exit;
2127 2134 /*
2128 2135 $entity = $this->SurCategories->get($id, [
2129 2136 'contain' => []
2130 2137 ]);
2131 2138 */
2132 2139 $entity = $this->$controller_name->get($id, [
2133   - 'contain' => []
  2140 + //'contain' => ['SurCategories']
  2141 + 'contain' => $parent_entity_controller_name
2134 2142 ]);
  2143 +
  2144 + // S'il y a une entité parente, on récupère ses infos
  2145 + $parent_entity_infos = [];
  2146 + if ($parent_entity_controller_name) {
  2147 + //$parent_entity_name=$entity->sur_category->nom;
  2148 + //$c_parent = 'App\\Controller\\'.'SurCategories'.'Controller';
  2149 + $c_parent = 'App\\Controller\\'.$parent_entity_controller_name.'Controller';
  2150 + $c_parent = new $c_parent();
  2151 + // 'Domaine'
  2152 + $parent_entity_type_name=$c_parent->getTypeNameSingular();
  2153 + //debug($parent_entity_type_name);
  2154 + // nom de l'instance de l'entité parente
  2155 + // 'sur_category'
  2156 + $parent_entity_contained_name = Inflector::classify($parent_entity_controller_name);
  2157 + $parent_entity_contained_name = Inflector::underscore($parent_entity_contained_name);
  2158 + //debug($parent_entity_contained_name);exit;
  2159 + //$parent_entity_name=$entity->sur_category->nom;
  2160 + $parent_entity_name_field_label = $c_parent->getNameFieldLabel();
  2161 + $parent_entity_name=$entity->$parent_entity_contained_name->$parent_entity_name_field_label;
  2162 + //debug($parent_entity_name);exit;
  2163 + $parent_entity_id=$entity->$parent_entity_contained_name->id;
  2164 + $parent_entity_infos['controller_name'] = $parent_entity_controller_name;
  2165 + $parent_entity_infos['type_name'] = $parent_entity_type_name;
  2166 + $parent_entity_infos['name'] = $parent_entity_name;
  2167 + $parent_entity_infos['id'] = $parent_entity_id;
  2168 + }
  2169 +
2135 2170 $entities_list = [];
2136 2171 // ex: 'sur_categorie_id'
2137 2172 $fk_name = $this->getFkName();
... ... @@ -2220,6 +2255,9 @@ class AppController extends Controller
2220 2255 'entity_type_name_singular',
2221 2256 'entity_name',
2222 2257 'entity',
  2258 + 'parent_entity_infos',
  2259 + //'parent_entity_controller_name','parent_entity_type_name',
  2260 + //'parent_entity_name','parent_entity_id',
2223 2261  
2224 2262 // Infos sur les entités associées
2225 2263 'entities_list'
... ... @@ -2699,7 +2737,7 @@ class AppController extends Controller
2699 2737 $printTableRow = $displayElement;
2700 2738 $this->set(compact('printTableRow'));
2701 2739 //@deprecated
2702   - $this->set('displayElement', $displayElement);
  2740 + $this->set(compact('displayElement'));
2703 2741  
2704 2742 // Pass this function to all views
2705 2743 // @todo : Si cette fonction ne concerne que SuivisController, il faut la déplacer dans ce controleur
... ...
src/Controller/CategoriesController.php
... ... @@ -19,6 +19,7 @@ class CategoriesController extends AppController
19 19 //@Override
20 20 public function getTypeNamePlural() { return 'catégories'; }
21 21  
  22 + //@deprecated
22 23 public function getArticle()
23 24 {
24 25 return "La";
... ... @@ -115,14 +116,13 @@ class CategoriesController extends AppController
115 116 * @return \Cake\Network\Response|null
116 117 * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.
117 118 */
118   - public function view($id = null)
119   - {
  119 + public function view($id = null) {
120 120 $associated_entity_types = [
121 121 'SousCategories',
122 122 'Materiels'
123 123 ];
124 124 //return parent::view($id, $associated_entity_types);
125   - return $this->view_generic($id, $associated_entity_types);
  125 + return $this->view_generic($id, $associated_entity_types, 'SurCategories');
126 126  
127 127 /*
128 128 $category = $this->Categories->get($id, [
... ...
src/Controller/GroupesThematiquesController.php
... ... @@ -12,6 +12,15 @@ use Cake\ORM\TableRegistry;
12 12 class GroupesThematiquesController extends AppController
13 13 {
14 14  
  15 + // Nom pluriel affichable pour cette entité
  16 + //@Override
  17 + public function getTypeNamePlural() {
  18 + //return strtolower($this->name);
  19 + //return strtolower($this->getName());
  20 + //return 'sur-catégories';
  21 + return 'groupes thématiques';
  22 + }
  23 +
15 24 /**
16 25 * Give authorization for groupes thematiques
17 26 *
... ... @@ -80,6 +89,15 @@ class GroupesThematiquesController extends AppController
80 89 */
81 90 public function view($id = null)
82 91 {
  92 + $associated_entity_types = [
  93 + 'Users',
  94 + 'Materiels',
  95 + 'Suivis',
  96 + ];
  97 + //return parent::view($id, $associated_entity_types);
  98 + return $this->view_generic($id, $associated_entity_types);
  99 +
  100 + /*
83 101 $groupesThematique = $this->GroupesThematiques->get($id, [
84 102 'contain' => [
85 103 'Materiels'
... ... @@ -105,6 +123,7 @@ class GroupesThematiquesController extends AppController
105 123 $this->set('_serialize', [
106 124 'groupesThematique'
107 125 ]);
  126 + */
108 127 }
109 128  
110 129 /**
... ...
src/Controller/SousCategoriesController.php
... ... @@ -11,12 +11,28 @@ use Cake\ORM\TableRegistry;
11 11 */
12 12 class SousCategoriesController extends AppController
13 13 {
14   -
  14 + // Genre
  15 + public $is_masculin = false;
  16 +
  17 + //@deprecated
15 18 public function getArticle()
16 19 {
17 20 return "La";
18 21 }
19 22  
  23 + // Surcharge pour corriger bug cakephp qui renvoie 'Souscategories' au lieu de 'SousCategories' !!
  24 + //@Override
  25 + public function getName() {
  26 + //return strtolower($this->name);
  27 + //return strtolower($this->getName());
  28 + //return 'SousCategories';
  29 + $controller_name = substr(__CLASS__,strlen('App\\Controller\\'));
  30 + return substr($controller_name,0,strpos($controller_name,'Controller'));
  31 + }
  32 +
  33 + // Nom pluriel affichable pour cette entité
  34 + //@Override
  35 + public function getTypeNamePlural() { return 'sous-catégories'; }
20 36  
21 37 /*
22 38 * @Override
... ... @@ -99,8 +115,13 @@ class SousCategoriesController extends AppController
99 115 * @return \Cake\Network\Response|null
100 116 * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.
101 117 */
102   - public function view($id = null)
103   - {
  118 + public function view($id = null) {
  119 + $associated_entity_types = [
  120 + 'Materiels'
  121 + ];
  122 + //return parent::view($id, $associated_entity_types);
  123 + return $this->view_generic($id, $associated_entity_types, 'Categories');
  124 + /*
104 125 $sousCategory = $this->SousCategories->get($id, [
105 126 'contain' => [
106 127 'Categories'
... ... @@ -116,6 +137,7 @@ class SousCategoriesController extends AppController
116 137 $this->set('_serialize', [
117 138 'sousCategory'
118 139 ]);
  140 + */
119 141 }
120 142  
121 143 /**
... ...
src/Controller/SurCategoriesController.php
... ... @@ -21,18 +21,34 @@ class SurCategoriesController extends AppController
21 21 return 'domaine';
22 22 }
23 23 */
24   - // Surcharge pour corriger bug cakephp qui renvoie 'Surcategories' au lieu de 'SurCategories' !!
  24 + /*
  25 + * Surcharge pour corriger bug cakephp qui renvoie 'Surcategories' au lieu de 'SurCategories' !!
  26 + * (alors qu'il renvoie bien 'GroupesThematiques' pour le controleur GroupesThematiquesController !!)
  27 + *
  28 + * En fait, ce bug n'arrive que si on tape une URL comme ceci :
  29 + * /surcategories/view/2
  30 + * au lieu de :
  31 + * /sur-categories/view/2
  32 + *
  33 + * Avec /sur-categories/view/2 => pas de problème, on a bien SurCategories
  34 + * Avec /surcategories/view/2 => problème, on a Surcategories !!!
  35 + *
  36 + */
25 37 //@Override
26 38 public function getName() {
27 39 //return strtolower($this->name);
28 40 //return strtolower($this->getName());
29   - return 'SurCategories';
  41 + //return 'SurCategories';
  42 + //return __CLASS__;
  43 + $controller_name = substr(__CLASS__,strlen('App\\Controller\\'));
  44 + return substr($controller_name,0,strpos($controller_name,'Controller'));
30 45 }
31 46 // Nom pluriel affichable pour cette entité
32 47 //@Override
33 48 public function getTypeNamePlural() {
34 49 //return strtolower($this->name);
35 50 //return strtolower($this->getName());
  51 + //return 'sur-catégories';
36 52 return 'domaines';
37 53 }
38 54  
... ...
src/Template/Common/view.ctp
1 1 <?php
  2 +use App\Controller\SurCategoriesController;
  3 +use App\Model\Entity\SurCategory;
  4 +
2 5 $DEBUG=false;
3 6 //$DEBUG=true;
4 7  
... ... @@ -7,6 +10,14 @@ $DEBUG=false;
7 10 $role = $role;
8 11  
9 12 $entity = $entity;
  13 +$parent_entity_infos=$parent_entity_infos;
  14 +/*
  15 +$parent_entity_controller_name = $parent_entity_controller_name;
  16 +$parent_entity_type_name = $parent_entity_type_name;
  17 +$parent_entity_name = $parent_entity_name;
  18 +$parent_entity_id = $parent_entity_id;
  19 +*/
  20 +
10 21 //$categories = $categories;
11 22 //$materiels = $materiels;
12 23 $entity_article = $entity_article;
... ... @@ -117,7 +128,35 @@ if ($DEBUG) {
117 128 //$displayElement(__('Nom'), h($entity_name));
118 129 $this->MyHelper->displayElement(__('Nom'), h($entity_name));
119 130 $this->MyHelper->displayElement(__('Description'), h($entity->description));
120   -
  131 + // Affichage du nom de l'entité parente si elle existe
  132 + // (ex: Domaine pour une catégorie, ou catégorie pour une sous-catégorie)
  133 + //debug($entity->sur_category->getSource()); // 'SurCategories'
  134 + /*
  135 + $e = new SurCategory();
  136 + debug($e->getSource());
  137 + */
  138 + if($parent_entity_infos)
  139 + //$this->MyHelper->displayElement(__('Domaine'), h($entity->sur_category->nom));
  140 + //$this->MyHelper->displayElement(__(ucfirst($parent_entity_type_name)), h($parent_entity_name));
  141 + $this->MyHelper->displayElement(
  142 + __(ucfirst($parent_entity_infos['type_name'])),
  143 + //$category->has('sur_category') ? $this->Html->link($category->sur_category->nom, [
  144 + $this->Html->link($parent_entity_infos['name'], [
  145 + 'controller' => $parent_entity_infos['controller_name'],
  146 + //'controller' => 'SurCategories',
  147 + 'action' => 'view',
  148 + $parent_entity_infos['id']
  149 + //$category->sur_category->id
  150 + ])
  151 + );
  152 + /*
  153 + $this->MyHelper->displayElement(__('Domaine'), $this->Html->link($entity->sur_category->nom, [
  154 + 'controller' => 'SurCategories',
  155 + 'action' => 'view',
  156 + $entity->sur_category->id
  157 + ])
  158 + );
  159 + */
121 160 ?>
122 161  
123 162 </table>
... ...
src/Template/GroupesThematiques/view.ctp
1   -
2   -
3   -<div class="groupesThematiques view">
4   - <h2>Détail <?= $configuration->nom_groupe_thematique ?></h2>
5   -
6   - <table style="margin-bottom: 30px;">
7   -
8   - <tr>
9   - <th style="width: 250px;"></th>
10   - <th></th>
11   - </tr>
12   -
13   - <?php
14   - if (in_array($role, [
15   - 'Administration Plus',
16   - 'Super Administrateur'
17   - ])) {
18   - echo $this->Html->link(__('<i class="icon-pencil"></i> Editer ce ' . $configuration->nom_groupe_thematique), [
19   - 'action' => 'edit',
20   - $groupesThematique->id
21   - ], [
22   - 'style' => 'margin-right: 40px; display: inline-block',
23   - 'escape' => false,
24   - 'onclick' => 'return true;'
25   - ]);
26   - }
27   -
28   - if (in_array($role, [
29   - 'Super Administrateur'
30   - ])) {
31   - echo $this->Form->postLink(__('<i class="icon-trash"></i> Supprimer ce ' . $configuration->nom_groupe_thematique), [
32   - 'action' => 'delete',
33   - $groupesThematique->id
34   - ], [
35   - 'style' => 'display: inline-block',
36   - 'escape' => false,
37   - 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $groupesThematique->id)
38   - ]);
39   - }
40   -
41   - $displayElement(__('Nom'), h($groupesThematique->nom));
42   - $displayElement(__('Description'), h($groupesThematique->description));
43   - ?>
44   -
45   -
46   - </table>
47   -
48   - <h3 id="t_users" class='toggle' style="cursor: pointer;">
49   - <i class="icon-chevron-down" style="font-size: 14px;" id="i_users"></i>
50   - <span style="text-decoration: underline;">Utilisateurs associés (<?= $utilisateurs->count()?>)</span>
51   - </h3>
52   - <div id="users" style="margin-bottom: 20px;">
53   -
54   - <?php if (!empty($utilisateurs)) { ?>
55   - <table>
56   - <tr>
57   - <th><?= __('Nom') ?></th>
58   - <th style="width: 50px;"><?= __('Détail') ?></th>
59   - </tr>
60   - <?php foreach ($utilisateurs as $utilisateur): ?>
61   - <tr>
62   -
63   - <td><?= $this->Html->link(h($utilisateur->nom), ['controller' => 'Users', 'action' => 'view', h($utilisateur->id)]); ?></td>
64   -
65   - <td class="actions">
66   - <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Users', 'action' => 'view', $utilisateur->id], ['escape' => false, 'style' => 'margin:0']) ?>
67   - </td>
68   - </tr>
69   - <?php endforeach; ?>
70   - </table>
71   - <?php }else { echo 'Aucun utilisateur lié à ce '.$configuration->nom_groupe_thematique; } ?>
72   - </div>
73   -
74   -
75   - <h3 id="t_suivis" class='toggle' style="cursor: pointer;">
76   - <i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>
77   - <span style="text-decoration: underline;">Suivis associés (<?= $suivis->count()?>)</span>
78   - </h3>
79   - <div id="suivis" style="margin-bottom: 20px;">
80   -
81   - <?php if (!empty($suivis)) { ?>
82   - <table>
83   - <tr>
84   - <th><?= __('N° suivi') ?></th>
85   - <th style="width: 50px;"><?= __('Détail') ?></th>
86   - </tr>
87   - <?php foreach ($suivis as $suivi): ?>
88   - <tr>
89   -
90   - <td><?= $this->Html->link('Suivi '.h($suivi->id), ['controller' => 'Suivis', 'action' => 'view', h($suivi->id)]); ?></td>
91   -
92   - <td class="actions">
93   - <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Suivis', 'action' => 'view', $suivi->id], ['escape' => false, 'style' => 'margin:0']) ?>
94   - </td>
95   - </tr>
96   - <?php endforeach; ?>
97   - </table>
98   - <?php }else { echo 'Aucun suivi lié à ce '.$configuration->nom_groupe_thematique; } ?>
99   - </div>
100   -
101   -
102   - <h3 id="t_matos" class='toggle' style="cursor: pointer;">
103   - <i class="icon-chevron-down" style="font-size: 14px;" id="i_matos"></i>
104   - <span style="text-decoration: underline;">Materiels associés (<?= $materiels->count()?>)</span>
105   - </h3>
106   - <div id="matos" style="margin-bottom: 20px;">
107   -
108   - <?php if (!empty($materiels)) { ?>
109   - <table>
110   - <tr>
111   - <th><?= __('Désignation') ?></th>
112   - <th style="width: 50px;"><?= __('Détail') ?></th>
113   - </tr>
114   - <?php foreach ($materiels as $materiel): ?>
115   - <tr>
116   -
117   - <td><?= $this->Html->link(h($materiel->designation), ['controller' => 'Materiels', 'action' => 'view', h($materiel->id)]); ?></td>
118   -
119   - <td class="actions">
120   - <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Materiels', 'action' => 'view', $materiel->id], ['escape' => false, 'style' => 'margin:0']) ?>
121   - </td>
122   - </tr>
123   - <?php endforeach; ?>
124   - </table>
125   - <?php }else { echo 'Aucun matériel lié à ce '.$configuration->nom_groupe_thematique.'.'; } ?>
126   - </div>
127   -
128   -
129   -
130   -</div>
131   -
132   -<!--
133   -<div class="actions">
134   - <php echo $this->element('menu') ?>
135   - <php
136   -
137   -echo $this->element('menu_view', [
138   - 'pluralHumanName' => $configuration->nom_groupe_thematique . 's',
139   - 'singularHumanName' => $configuration->nom_groupe_thematique,
140   - 'lien' => $groupesThematique->id
141   -])?>
142   - </div>
143   --->
144 1 \ No newline at end of file
  2 +<!-- src/Template/GroupesThematiques/view.ctp -->
  3 +<?php
  4 +$this->extend('/Common/view');
145 5 \ No newline at end of file
... ...
src/Template/SousCategories/view.ctp
1   -
2   -
3   -<div class="sousCategories view">
4   - <h2>Détail sous-catégorie</h2>
5   - <table style="margin-bottom: 30px;">
6   -
7   - <tr>
8   - <th style="width: 250px;"></th>
9   - <th></th>
10   - </tr>
11   -
12   - <?php
13   - if (in_array($role, [
14   - 'Administration Plus',
15   - 'Super Administrateur'
16   - ])) {
17   - echo $this->Html->link(__('<i class="icon-pencil"></i> Editer cette sous-catégorie'), [
18   - 'action' => 'edit',
19   - $sousCategory->id
20   - ], [
21   - 'style' => 'margin-right: 40px; display: inline-block',
22   - 'escape' => false,
23   - 'onclick' => 'return true;'
24   - ]);
25   - }
26   -
27   - if (in_array($role, [
28   - 'Super Administrateur'
29   - ])) {
30   - echo $this->Form->postLink(__('<i class="icon-trash"></i> Supprimer cette sous-catégorie'), [
31   - 'action' => 'delete',
32   - $sousCategory->id
33   - ], [
34   - 'style' => 'display: inline-block',
35   - 'escape' => false,
36   - 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $sousCategory->id)
37   - ]);
38   - }
39   -
40   - $displayElement(__('Nom'), h($sousCategory->nom));
41   - $displayElement(__('Catégorie'), $sousCategory->has('category') ? $this->Html->link($sousCategory->category->nom, [
42   - 'controller' => 'Categories',
43   - 'action' => 'view',
44   - $sousCategory->category->id
45   - ]) : '');
46   -
47   - ?>
48   -
49   - </table>
50   -
51   - <h3 id="t_matos" class='toggle' style="cursor: pointer;">
52   - <i class="icon-chevron-down" style="font-size: 14px;" id="i_matos"></i>
53   - <span style="text-decoration: underline;">Materiels associés (<?= $materiels->count()?>)</span>
54   - </h3>
55   - <div id="matos" style="margin-bottom: 20px;">
56   -
57   - <?php if (!empty($materiels)) { ?>
58   - <table>
59   - <tr>
60   - <th><?= __('Désignation') ?></th>
61   - <th style="width: 50px;"><?= __('Détail') ?></th>
62   - </tr>
63   - <?php foreach ($materiels as $materiel): ?>
64   - <tr>
65   -
66   - <td><?= $this->Html->link(h($materiel->designation), ['controller' => 'Materiels', 'action' => 'view', h($materiel->id)]); ?></td>
67   -
68   - <td class="actions">
69   - <?= $this->Html->link(__('<i class="icon-search"></i>'), ['controller' => 'Materiels', 'action' => 'view', $materiel->id], ['escape' => false, 'style' => 'margin:0']) ?>
70   - </td>
71   - </tr>
72   - <?php endforeach; ?>
73   - </table>
74   - <?php }else { echo 'Aucun matériel lié à cette sous-catégorie.'; } ?>
75   - </div>
76   -
77   -
78   -</div>
79   -
80   -<!--
81   -<div class="actions">
82   - <php echo $this->element('menu') ?>
83   - <php
84   -
85   -echo $this->element('menu_view', [
86   - 'pluralHumanName' => 'Sous-Catégories',
87   - 'singularHumanName' => 'Sous-Catégorie',
88   - 'lien' => $sousCategory->id
89   -])?>
90   - </div>
91   --->
92 1 \ No newline at end of file
  2 +<!-- src/Template/SousCategories/view.ctp -->
  3 +<?php
  4 +/*
  5 +Le fichier de vue étendu ici est utilisé comme une vue parente.
  6 +Il s’attend à ce que la vue l’étendant (celle-ci par exemple)
  7 +définisse des blocks sidebar et title.
  8 +Le block content est un block spécial que CakePHP crée.
  9 +Il contiendra tous les contenus non capturés de la vue étendue.
  10 +*/
  11 +$this->extend('/Common/view');
93 12 \ No newline at end of file
... ...
src/View/Helper/MyHelperHelper.php
... ... @@ -52,17 +52,21 @@ class MyHelperHelper extends Helper {
52 52 // Ca c'est parce que sinon y'a au moins deux tests qui passent pas, a cause de l'espace dans la balise ...
53 53 //if ($valeur != "") echo '<tr> <td><strong>'.$nom.' </strong></td>' . $TD.$valeur.'</td></tr>';
54 54 //if ($valeur != "") echo '<tr><td><strong>' . $nom . ' </strong></td>' . $balise . $valeur . '</td></tr>';
55   - if ($valeur!="") echo "<TR> <TD><strong>".__($nom)."</strong></TD> <$TD>".h($valeur)."</TD> </TR>";
  55 + //if ($valeur!="") echo "<TR> <TD><strong>".__($nom)."</strong></TD> <$TD>".h($valeur)."</TD> </TR>";
  56 + if ($valeur!="") echo "<TR> <TD><strong>".__($nom)."</strong></TD> <$TD>".$valeur."</TD> </TR>";
  57 + //if ($valeur!="") echo "<TR> <TD><strong>$nom</strong></TD> <$TD>$valeur</TD> </TR>";
56 58 }
57 59  
58 60  
  61 +
  62 +
59 63 //function displaySectionShowHide($controller_name, $entity_type_name, $title, $id_name, $is_masculine, $name_field_name, $entities) {
60 64 //function displaySectionShowHide($controller_name, $entity_type_name, $title, $is_masculine, $name_field_name, $entities) {
61   - function displayAssociatedEntitiesAsSectionShowHide($controller_name, $entity_type_name, $title, $is_masculine, $name_field_name, $entities) {
  65 + function displayAssociatedEntitiesAsSectionShowHide($controller_name, $entity_type_name, $title, $is_masculin, $name_field_name, $entities) {
62 66 $id_name = $controller_name;
63 67 $id_h3 = 't_'.$id_name;
64 68 $id_i = 'i_'.$id_name;
65   - $title = ucfirst($title).' associé'. ($is_masculine ? 's' : 'es');
  69 + $title = ucfirst($title).' associé'. ($is_masculin ? 's' : 'es');
66 70  
67 71 echo "<h3 id='$id_h3' class='toggle' style='cursor: pointer;'>";
68 72 echo "<i class='icon-chevron-down' style='font-size: 14px;' id='$id_i'></i>";
... ... @@ -71,9 +75,12 @@ class MyHelperHelper extends Helper {
71 75  
72 76 echo "<div id='$id_name' style='margin-bottom: 20px;'>";
73 77 //if (true) {
74   - if (empty($entities)) {
  78 + //if (empty($entities)) {
  79 + $shift3 = '&nbsp;&nbsp;&nbsp;';
  80 + $shift5 = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
  81 + if ($entities->isEmpty()) {
75 82 //echo "Aucune $entity_name liée à ce domaine.";
76   - echo ($is_masculine ? "Aucun $entity_type_name associé" : "Aucune $entity_type_name associée");
  83 + echo $shift5.($is_masculin ? "Aucun $entity_type_name associé" : "Aucune $entity_type_name associée");
77 84 }
78 85 else {
79 86 echo "<table>";
... ... @@ -86,7 +93,7 @@ class MyHelperHelper extends Helper {
86 93 foreach ($entities as $entity) {
87 94 echo "<tr>";
88 95 echo "<td>";
89   - echo '&nbsp;&nbsp;&nbsp;'.$this->Html->link(h($entity->$name_field_name), ['controller' => $controller_name, 'action' => 'view', h($entity->id)]);
  96 + echo $shift3.$this->Html->link(h($entity->$name_field_name), ['controller' => $controller_name, 'action' => 'view', h($entity->id)]);
90 97 echo "</td>";
91 98 /*
92 99 <td class="actions">
... ...