Commit 134406cd5712fabbf2f42b6aa7c3f15769999f27
1 parent
f8e1aa25
Exists in
master
and in
1 other branch
Une seule vue unique pour la liste des groupes métier/thématique
(refactorisation) => nouvelle action générique index_generic() dans Controller/AppController.php (à côté de view_generic()) => nouvelle vue générique index.ctp dans Template/Common/ (à côté de view.ctp) => début de vue unique pour TOUTES les "autres listes" (faut juste généraliser un peu plus...) => TODO: ne restera plus qu'à faire la dernière vue/action générique add_edit (mais aussi delete), pour avoir un CRUD générique complet pour TOUTES les "autres listes" Mais aussi : - Ajout d'un lien vers la page web des projets du lobo (sur page projets) - On n'affiche que la 1ère ligne de la description des groupes thématique/métier v4.105.10-3.7.9
Showing
11 changed files
with
210 additions
and
165 deletions
Show diff stats
CHANGES.txt
... | ... | @@ -120,6 +120,17 @@ Outre ces changements, voici d'autres changements importants : |
120 | 120 | ======= CHANGES ======= |
121 | 121 | |
122 | 122 | ------- |
123 | +09/10/2020 v4.105.10-3.7.9 (EP) | |
124 | + - (i) Une seule vue unique pour la liste des groupes métier/thématique (refactorisation) | |
125 | + => nouvelle action générique index_generic() dans Controller/AppController.php (à côté de view_generic()) | |
126 | + => nouvelle vue générique index.ctp dans Template/Common/ (à côté de view.ctp) | |
127 | + => début de vue unique pour TOUTES les "autres listes" (faut juste généraliser un peu plus...) | |
128 | + => TODO: ne restera plus qu'à faire la dernière vue/action générique add_edit (mais aussi delete), | |
129 | + pour avoir un CRUD générique complet pour TOUTES les "autres listes" | |
130 | + - (e) Ajout d'un lien vers la page web des projets du lobo (sur page projets) | |
131 | + - (e) On n'affiche que la 1ère ligne de la description des groupes thématique/métier | |
132 | + | |
133 | +------- | |
123 | 134 | 08/10/2020 v4.105.9-3.7.9 (EP) |
124 | 135 | - (i) Ajout d'un lien vers la page web des groupes métier/thématique du lobo |
125 | 136 | - (i) Ajout de la mention de l'utilisateur (proprio) du matériel dans les notifications | ... | ... |
README.md
... | ... | @@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes : |
43 | 43 | -------------------------------------------------------------------------------------------- |
44 | 44 | |
45 | 45 | Date: 08/10/2020 |
46 | -Version: 4.105.9-3.7.9 | |
46 | +Version: 4.105.10-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
... | ... | @@ -2176,6 +2176,29 @@ class AppController extends Controller |
2176 | 2176 | |
2177 | 2177 | } // beforeFilter() |
2178 | 2178 | |
2179 | + | |
2180 | + public function index_generic($group_type1, $group_type2, $lab_website_url=null) { | |
2181 | + | |
2182 | + // https://book.cakephp.org/3/fr/controllers/components/pagination.html | |
2183 | + $groups = $this->paginate(); | |
2184 | + // ce qui revient au même que : | |
2185 | + //$groupesThematiques = $this->paginate($this->GroupesThematiques); | |
2186 | + | |
2187 | + //$group_type1 = 'thematique'; | |
2188 | + //$group_type2 = 'thématique'; | |
2189 | + | |
2190 | + // Si on est sur l'instance de l'IRAP (InventIrap) | |
2191 | + // on affiche l'url vers la page des Groupes métiers sur le site web de l'IRAP | |
2192 | + $lab_website_url = ($this->confLabinvent->labNameShort != 'IRAP') ? null : $lab_website_url; | |
2193 | + | |
2194 | + $this->set(compact('group_type1', 'group_type2', 'lab_website_url', 'groups')); | |
2195 | + | |
2196 | + /* Utile seulement pour JSON | |
2197 | + $this->set('_serialize', [ | |
2198 | + 'groupesThematiques' | |
2199 | + ]); | |
2200 | + */ | |
2201 | + } | |
2179 | 2202 | |
2180 | 2203 | //public function view_generic($id, $associated_entity_types, $parent_entity_controller_name=[]) { |
2181 | 2204 | //public function view_generic($id, $associated_entity_types, $containavirer=[]) { | ... | ... |
src/Controller/GroupesMetiersController.php
... | ... | @@ -76,20 +76,31 @@ class GroupesMetiersController extends AppController |
76 | 76 | * |
77 | 77 | * @return \Cake\Network\Response|null |
78 | 78 | */ |
79 | - public function index() | |
80 | - { | |
81 | - $groupesMetiers = $this->paginate($this->GroupesMetiers); | |
79 | + public function index() { | |
80 | + | |
81 | + $this->index_generic( | |
82 | + 'metier', 'métier', | |
83 | + "https://www.irap.omp.eu/homepage/organisation/groupes-metiers" | |
84 | + ); | |
85 | + | |
86 | + /* | |
87 | + //$groupesMetiers = $this->paginate($this->GroupesMetiers); | |
88 | + $groups = $this->paginate($this->GroupesMetiers); | |
89 | + | |
90 | + $group_type1 = 'metier'; | |
91 | + $group_type2 = 'métier'; | |
82 | 92 | |
83 | 93 | // Si on est sur l'instance de l'IRAP (InventIrap) |
84 | 94 | // on affiche l'url vers la page des Groupes métiers sur le site web de l'IRAP |
85 | 95 | $lab_website_url = ($this->confLabinvent->labNameShort != 'IRAP') ? null : "https://www.irap.omp.eu/homepage/organisation/groupes-metiers"; |
86 | 96 | |
87 | - $this->set(compact('groupesMetiers', 'lab_website_url')); | |
88 | - | |
89 | - /* Utile seulement pour JSON | |
97 | + //$this->set(compact('groupesMetiers', 'lab_website_url')); | |
98 | + $this->set(compact('group_type1', 'group_type2', 'lab_website_url', 'groups')); | |
99 | + /S Utile seulement pour JSON | |
90 | 100 | $this->set('_serialize', [ |
91 | 101 | 'groupesMetiers' |
92 | 102 | ]); |
103 | + S/ | |
93 | 104 | */ |
94 | 105 | } |
95 | 106 | ... | ... |
src/Controller/GroupesThematiquesController.php
... | ... | @@ -69,23 +69,36 @@ class GroupesThematiquesController extends AppController |
69 | 69 | * |
70 | 70 | * @return \Cake\Network\Response|null |
71 | 71 | */ |
72 | - public function index() | |
73 | - { | |
74 | - $groupesThematiques = $this->paginate($this->GroupesThematiques); | |
72 | + public function index() { | |
73 | + | |
74 | + $this->index_generic( | |
75 | + 'thematique', 'thématique', | |
76 | + "https://www.irap.omp.eu/homepage/organisation/groupes-thematiques" | |
77 | + ); | |
78 | + | |
79 | + /* | |
80 | + // https://book.cakephp.org/3/fr/controllers/components/pagination.html | |
81 | + $groups = $this->paginate(); | |
82 | + // ce qui revient au même que : | |
83 | + //$groupesThematiques = $this->paginate($this->GroupesThematiques); | |
84 | + | |
85 | + $group_type1 = 'thematique'; | |
86 | + $group_type2 = 'thématique'; | |
75 | 87 | |
76 | 88 | // Si on est sur l'instance de l'IRAP (InventIrap) |
77 | 89 | // on affiche l'url vers la page des Groupes métiers sur le site web de l'IRAP |
78 | 90 | $lab_website_url = ($this->confLabinvent->labNameShort != 'IRAP') ? null : "https://www.irap.omp.eu/homepage/organisation/groupes-thematiques"; |
79 | 91 | |
80 | - $this->set(compact('groupesThematiques', 'lab_website_url')); | |
92 | + $this->set(compact('group_type1', 'group_type2', 'lab_website_url', 'groups')); | |
81 | 93 | |
82 | - /* Utile seulement pour JSON | |
94 | + /S Utile seulement pour JSON | |
83 | 95 | $this->set('_serialize', [ |
84 | 96 | 'groupesThematiques' |
85 | 97 | ]); |
98 | + S/ | |
86 | 99 | */ |
87 | - | |
88 | 100 | } |
101 | + | |
89 | 102 | |
90 | 103 | /** |
91 | 104 | * View method | ... | ... |
src/Controller/ProjetsController.php
... | ... | @@ -43,14 +43,29 @@ class ProjetsController extends AppController { |
43 | 43 | */ |
44 | 44 | public function index() |
45 | 45 | { |
46 | + // https://book.cakephp.org/3/fr/controllers/components/pagination.html | |
46 | 47 | $this->paginate = [ |
47 | 48 | //'contain' => ['GroupesThematiques', 'Users'] |
48 | 49 | //'contain' => ['GroupesThematiques', 'Pis', 'Pms'] |
49 | 50 | 'contain' => ['GroupesThematiques', 'ChefSciences', 'ChefProjets'] |
50 | 51 | ]; |
51 | - $projets = $this->paginate($this->Projets); | |
52 | - | |
53 | - $this->set(compact('projets')); | |
52 | + $projets = $this->paginate(); | |
53 | + // ce qui équivaut à : | |
54 | + //s$projets = $this->paginate($this->Projets); | |
55 | + | |
56 | + // Si on est sur l'instance de l'IRAP (InventIrap) | |
57 | + // on affiche l'url vers la page des Groupes métiers sur le site web de l'IRAP | |
58 | + $lab_website_urls = ($this->confLabinvent->labNameShort != 'IRAP') ? | |
59 | + [] | |
60 | + : | |
61 | + [ | |
62 | + 'Projets Instrumentaux' => 'https://www.irap.omp.eu/sedoo-project-tag/projets_instrumentaux', | |
63 | + 'Projets Scientifiques' => 'https://www.irap.omp.eu/sedoo-project-tag/projets-scientifiques', | |
64 | + 'Projets R&T' => 'https://www.irap.omp.eu/sedoo-project-tag/rt', | |
65 | + 'Projets financés (ANR, Europe...)' => 'https://www.irap.omp.eu/observation-instrumentation/projets/projets-finances', | |
66 | + ]; | |
67 | + | |
68 | + $this->set(compact('projets', 'lab_website_urls')); | |
54 | 69 | } |
55 | 70 | |
56 | 71 | /** | ... | ... |
... | ... | @@ -0,0 +1,105 @@ |
1 | +<?php | |
2 | +// Variables passées par le controleur | |
3 | +/* | |
4 | +$group_type1 = 'thematique'; | |
5 | +$group_type2 = 'thématique'; | |
6 | +$group_type1 = 'metier'; | |
7 | +$group_type2 = 'métier'; | |
8 | +*/ | |
9 | +$group_type1 = $group_type1; | |
10 | +$group_type2 = $group_type2; | |
11 | +$lab_website_url = $lab_website_url; | |
12 | +$groups = $groups; | |
13 | +?> | |
14 | + | |
15 | +<!-- | |
16 | +<div class="groupesThematiques index"> | |
17 | + --> | |
18 | +<div class="groups index"> | |
19 | + | |
20 | + <?php | |
21 | + // Nom du groupe au pluriel (chaque mot) | |
22 | + //echo '<h2><i class="icon-list"></i> Liste des '.$configuration->nom_groupe_thematique.'s</h2>'; | |
23 | + $group_type_name = $configuration->{'nom_groupe_'.$group_type1}; | |
24 | + $words = explode(' ',$group_type_name); | |
25 | + $group_type_name_plural = ''; | |
26 | + foreach($words as $word) $group_type_name_plural .= $word.'s '; | |
27 | + echo "<h2><i class='icon-list'></i> Liste des $group_type_name_plural</h2>"; | |
28 | + | |
29 | + // Si une url est donnée vers la page des Groupes thématiques sur le site web du labo, on l'affiche | |
30 | + if ($lab_website_url) | |
31 | + echo "=> <a href=$lab_website_url>Groupes {$group_type2}s sur le site web du laboratoire</a><br/><br/>"; | |
32 | + | |
33 | + echo $this->element('button_add'); | |
34 | + ?> | |
35 | + | |
36 | + <table style="border-collapse: separate; border-spacing: 0; width: 270px;"> | |
37 | + | |
38 | + <thead> | |
39 | + <tr> | |
40 | + <th class="actions"><?= __('') ?></th> | |
41 | + <!-- Pas de tri sur les colonnes, inutile | |
42 | + <th><= $this->Paginator->sort('nom', 'Nom') ?></th> | |
43 | + <th><= $this->Paginator->sort('description', 'Description') ?></th> | |
44 | + --> | |
45 | + <th>Nom</th> | |
46 | + <th>Description</th> | |
47 | + </tr> | |
48 | + </thead> | |
49 | + | |
50 | + <tbody> | |
51 | + <?php | |
52 | + foreach ($groups as $group) : | |
53 | + //if ($group->nom != 'N/A') { | |
54 | + if ($group->id) { | |
55 | + ?> | |
56 | + <tr> | |
57 | + | |
58 | + <td class="actions" style="padding: 6px 0; text-align: left;"> | |
59 | + <?php | |
60 | + if (in_array($role, ['Administration Plus', 'Super Administrateur'])) | |
61 | + echo $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $group->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]); | |
62 | + if (in_array($role, ['Super Administrateur'])) | |
63 | + echo $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $group->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer ce groupe ?', $group->id)]); | |
64 | + //echo $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $group->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $group->id)]); | |
65 | + ?> | |
66 | + </td> | |
67 | + | |
68 | + <td class="smallText"><?= $this->Html->link($group->nom, ['action' => 'view', $group->id]) ?></td> | |
69 | + | |
70 | + <?php | |
71 | + // On n'affiche que la 1ère ligne de la description | |
72 | + //$group->description = null; | |
73 | + $description_first_line = explode("\n", $group->description)[0]; | |
74 | + //debug($description_short); | |
75 | + //$description_short = $description_short[0]; | |
76 | + ?> | |
77 | + <td class="smallText"><?=h($description_first_line)?></td> | |
78 | + | |
79 | + </tr> | |
80 | + <?php | |
81 | + } // if | |
82 | + endforeach; | |
83 | + ?> | |
84 | + </tbody> | |
85 | + | |
86 | + </table> | |
87 | + | |
88 | + <?php | |
89 | + // Inutile | |
90 | + //echo $this->element('pagination'); | |
91 | + ?> | |
92 | + | |
93 | +</div> | |
94 | + | |
95 | +<!-- | |
96 | +<div class="actions"> | |
97 | + <php echo $this->element('menu') ?> | |
98 | + <php | |
99 | + | |
100 | +echo $this->element('menu_index', [ | |
101 | + 'pluralHumanName' => $configuration->nom_groupe_thematique . 's', | |
102 | + 'singularHumanName' => $configuration->nom_groupe_thematique | |
103 | +])?> | |
104 | + </div> | |
105 | +--> | |
0 | 106 | \ No newline at end of file | ... | ... |
src/Template/Common/view.ctp
... | ... | @@ -190,6 +190,7 @@ $child_entities_list = $child_entities_list; |
190 | 190 | <?php |
191 | 191 | if ($entity->has('description') && $entity->description) { |
192 | 192 | echo "<b><u>Description :</b></u>"; |
193 | + echo "<br/><br/>"; | |
193 | 194 | echo $this->Text->autoParagraph(h($entity->description)); |
194 | 195 | echo "<br/><br/>"; |
195 | 196 | } | ... | ... |
src/Template/GroupesMetiers/index.ctp
1 | -<?php | |
2 | -// Variables passées par le controleur | |
3 | -$groupesMetiers = $groupesMetiers; | |
4 | -$lab_website_url = $lab_website_url; | |
5 | -?> | |
6 | - | |
7 | -<div class="groupesMetiers index"> | |
8 | - | |
9 | - <?php echo '<h2><i class="icon-list"></i> Liste des '.$configuration->nom_groupe_metier.'</h2>'; | |
10 | - | |
11 | - // Si une url est donnée vers la page des Groupes métiers sur le site web du labo, on l'affiche | |
12 | - if ($lab_website_url) { | |
13 | - ?> | |
14 | - => <a href=<?=$lab_website_url?>> | |
15 | - Groupes métiers sur le site web du laboratoire | |
16 | - </a> | |
17 | - <br/><br/> | |
18 | - <?php | |
19 | - } | |
20 | - | |
21 | - echo $this->element('button_add'); | |
22 | - ?> | |
23 | - | |
24 | - <table style="border-collapse: separate; border-spacing: 0; width: 270px;"> | |
25 | - <thead> | |
26 | - <tr> | |
27 | - <th class="actions"><?= __('') ?></th> | |
28 | - <th><?= $this->Paginator->sort('nom', 'Nom') ?></th> | |
29 | - <th><?= $this->Paginator->sort('description', 'Description') ?></th> | |
30 | - | |
31 | - </tr> | |
32 | - </thead> | |
33 | - <tbody> | |
34 | - <?php | |
35 | - | |
36 | -foreach ($groupesMetiers as $groupesMetier) : | |
37 | - if ($groupesMetier->nom != 'N/A') { | |
38 | - ?> | |
39 | - <tr> | |
40 | - | |
41 | - <td class="actions" style="padding: 6px 0; text-align: left;"> | |
42 | - <?php if (in_array($role, ['Administration Plus', 'Super Administrateur'])) { ?> | |
43 | - <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $groupesMetier->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> | |
44 | - <?php } ?> | |
45 | - | |
46 | - <?php if (in_array($role, ['Super Administrateur'])) { ?> | |
47 | - <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $groupesMetier->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $groupesMetier->id)]) ?> | |
48 | - <?php } ?> | |
49 | - </td> | |
50 | - <td class="smallText"><?= $this->Html->link($groupesMetier->nom, ['action' => 'view', $groupesMetier->id]) ?></td> | |
51 | - <td class="smallText"><?= h($groupesMetier->description) ?></td> | |
52 | - | |
53 | - | |
54 | - | |
55 | - </tr> | |
56 | - <?php | |
57 | - } | |
58 | - endforeach | |
59 | - ; | |
60 | - ?> | |
61 | - </tbody> | |
62 | - </table> | |
63 | - | |
64 | - <?php echo $this->element('pagination'); ?> | |
65 | - | |
66 | -</div> | |
67 | - | |
68 | -<!-- | |
69 | -<div class="actions"> | |
70 | - <php echo $this->element('menu') ?> | |
71 | - <php | |
72 | - | |
73 | -echo $this->element('menu_index', [ | |
74 | - 'pluralHumanName' => $configuration->nom_groupe_metier . 's', | |
75 | - 'singularHumanName' => $configuration->nom_groupe_metier | |
76 | -])?> | |
77 | - </div> | |
78 | ---> | |
79 | 1 | \ No newline at end of file |
2 | +<?php | |
3 | +$this->extend('/Common/index'); | |
80 | 4 | \ No newline at end of file | ... | ... |
src/Template/GroupesThematiques/index.ctp
1 | - | |
2 | -<div class="groupesThematiques index"> | |
3 | - | |
4 | - <?php | |
5 | - echo '<h2><i class="icon-list"></i> Liste des '.$configuration->nom_groupe_thematique.'s</h2>'; | |
6 | - | |
7 | - // Si une url est donnée vers la page des Groupes thématiques sur le site web du labo, on l'affiche | |
8 | - if ($lab_website_url) { | |
9 | - ?> | |
10 | - => <a href=<?=$lab_website_url?>> | |
11 | - Groupes thématiques sur le site web du laboratoire | |
12 | - </a> | |
13 | - <br/><br/> | |
14 | - <?php | |
15 | - } | |
16 | - | |
17 | - echo $this->element('button_add'); | |
18 | - ?> | |
19 | - | |
20 | - <table style="border-collapse: separate; border-spacing: 0; width: 270px;"> | |
21 | - <thead> | |
22 | - <tr> | |
23 | - <th class="actions"><?= __('') ?></th> | |
24 | - <th><?= $this->Paginator->sort('nom', 'Nom') ?></th> | |
25 | - <th><?= $this->Paginator->sort('description', 'Description') ?></th> | |
26 | - | |
27 | - </tr> | |
28 | - </thead> | |
29 | - <tbody> | |
30 | - <?php | |
31 | - | |
32 | -foreach ($groupesThematiques as $groupesThematique) : | |
33 | - if ($groupesThematique->nom != 'N/A') { | |
34 | - ?> | |
35 | - <tr> | |
36 | - <td class="actions" style="padding: 6px 0; text-align: left;"> | |
37 | - <?php if (in_array($role, ['Administration Plus', 'Super Administrateur'])) { ?> | |
38 | - <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $groupesThematique->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> | |
39 | - <?php } ?> | |
40 | - | |
41 | - <?php if (in_array($role, ['Super Administrateur'])) { ?> | |
42 | - <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $groupesThematique->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $groupesThematique->id)]) ?> | |
43 | - <?php } ?> | |
44 | - </td> | |
45 | - | |
46 | - <td class="smallText"><?= $this->Html->link($groupesThematique->nom, ['action' => 'view', $groupesThematique->id]) ?></td> | |
47 | - <td class="smallText"><?= h($groupesThematique->description) ?></td> | |
48 | - </tr> | |
49 | - <?php | |
50 | - } | |
51 | - endforeach | |
52 | - ; | |
53 | - ?> | |
54 | - </tbody> | |
55 | - </table> | |
56 | - | |
57 | - <?php echo $this->element('pagination'); ?> | |
58 | - | |
59 | -</div> | |
60 | - | |
61 | -<!-- | |
62 | -<div class="actions"> | |
63 | - <php echo $this->element('menu') ?> | |
64 | - <php | |
65 | - | |
66 | -echo $this->element('menu_index', [ | |
67 | - 'pluralHumanName' => $configuration->nom_groupe_thematique . 's', | |
68 | - 'singularHumanName' => $configuration->nom_groupe_thematique | |
69 | -])?> | |
70 | - </div> | |
71 | ---> | |
72 | 1 | \ No newline at end of file |
2 | +<?php | |
3 | +$this->extend('/Common/index'); | |
73 | 4 | \ No newline at end of file | ... | ... |
src/Template/Projets/index.ctp
... | ... | @@ -7,6 +7,7 @@ |
7 | 7 | // Variables définies par le controleur |
8 | 8 | $projets = $projets; |
9 | 9 | //debug($projets); |
10 | +$lab_website_urls = $lab_website_urls; | |
10 | 11 | ?> |
11 | 12 | |
12 | 13 | <b><u><?= $this->Html->link(__('Nouveau Projet'), ['action' => 'add']) ?></li></u></b> |
... | ... | @@ -30,6 +31,16 @@ $projets = $projets; |
30 | 31 | <div class="projets index large-9 medium-8 columns content"> |
31 | 32 | <h3><?= __('Projets') ?></h3> |
32 | 33 | |
34 | + <?php | |
35 | + //$lab_website_urls = []; | |
36 | + // Si une url (ou liste d'urls) est donnée vers la/les page(s) des Projets sur le site web du labo, on l'affiche | |
37 | + if ($lab_website_urls) { | |
38 | + foreach ($lab_website_urls as $type_projet=>$lab_website_url) | |
39 | + echo "=> <a href=$lab_website_url>$type_projet sur le site web du laboratoire</a><br/>"; | |
40 | + echo "<br/>"; | |
41 | + } | |
42 | + ?> | |
43 | + | |
33 | 44 | <!-- |
34 | 45 | <table cellpadding="0" cellspacing="0"> |
35 | 46 | --> | ... | ... |