Beispiel #1
0
 protected function render_element()
 {
     //récuperation des attributs utiles
     $oElement = $this->getElement();
     $aValues = $oElement->getValue();
     $sName = $oElement->getName();
     $sTitre = $oElement->getLabel();
     //récuperation des id des adresses invalides
     $this->_aInvalidAdresses = $oElement->getInvalidChamps();
     //création de la div entourante
     $oDiv = new Symbol_Div('MultiInput');
     $oDiv->setAttribute('id', $sName . '-element');
     //création du label
     $oLabel = new Symbol_Label($sTitre);
     $oLabel->setAttribute('for', $sName);
     //attachement du label dans la div
     $oDiv->linkSymbol($oLabel);
     //s'il y à plusieurs champs
     if ($aValues) {
         //on extrait la première adresse au du traitement générique
         $sFirstAdresse = array_shift($aValues);
         //on construit l'input et on l'ajout
         $oInput = new Symbol_Input($sName . '[]', 'text', $sFirstAdresse);
         $oInput->setAttribute('id', $sName);
         //on ajoute les erreurs s'il y en a
         $oInput = $this->addErrorDeco($oInput, 0);
         $oDiv->linkSymbol($oInput);
         $i = 0;
         //on parcours les autres champs et on les construit comme précedement
         foreach ($aValues as $sAdresse) {
             $i++;
             $oInput2 = new Symbol_Input($sName . '[]', 'text', $sAdresse);
             $oInput2->setAttribute('id', $sName . '-' . $i);
             $oInput2 = $this->addErrorDeco($oInput2, $i);
             $oDiv->linkSymbol($oInput2);
         }
     } else {
         //s'il n'y avait aucun champ, on construit un champ vide
         $oInput = new Symbol_Input($sName . '[]', 'text');
         $oInput->setAttribute('id', $sName);
         $oInput = $this->addErrorDeco($oInput, 0);
         $oDiv->linkSymbol($oInput);
     }
     return $oDiv->render();
 }