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(); }