Bonjour,
Pour les besoins de mon projet, j'ai ajouté la fonction suivante au plugin_form :
Le but de ce select était de proposer dans le premier groupe les objets associés à un lieu et dans le second groupe l'ensemble des objets tout lieu confondu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 /** * retourne un champ menu deroulant sectionne en groupe * @access public * @param string $sName nom du champ * @param array @tValue1 1er tableau de valeurs du menu deroulant * @param array @tValue2 2nd tableau de valeurs du menu deroulant * @param string $sLabel1 nom du 1er groupe * @param string $sLabel2 nom du 2nd groupe * @param array $tOption options du champ */ public function getSelectGroup($sName,$tValue1,$tValue2,$sLabel1,$sLabel2,$tOption=null){ $sCurrentValue=$this->getValue($sName); $bSelected=false; $sHtml=null; $sHtml.='<select name="'.$sName.'" '.$this->getOption($tOption).'><optgroup label='.$sLabel1.'>'; foreach($tValue1 as $sValue => $sLabel){ $sHtml.='<option '; if($sValue==$sCurrentValue){ $sHtml.=' selected="selected"'; $bSelected=true; } $sHtml.=' value="'.$sValue.'">'.$sLabel.'</option>'; } $sHtml .='<optgroup label='.$sLabel2.'>'; foreach($tValue2 as $sValue => $sLabel){ $sHtml.='<option '; if(($sValue==$sCurrentValue)and !$bSelected){ $sHtml.=' selected="selected"'; } $sHtml.=' value="'.$sValue.'">'.$sLabel.'</option>'; } $sHtml.='</optgroup></select>'; $sHtml.=$this->getMessage($sName); return $sHtml; }
En tout cas Bravo à Michael, car ce n'est pas évident de trouver les bon mécanisme à mettre en oeuvre car beaucoup de choix s'offre à lui quand il doit choisir comment va se présenter une focntion.
Partager