Ejemplo n.º 1
0
 public function render($sContent)
 {
     $oElement = $this->getElement();
     //on recupere le nom de l'élement défini dans le formulaire
     $sName = $oElement->getName();
     //création d'une liste
     $oUl = new Symbol_List();
     //ajout des attribut template
     $oUl->setAttribute('class', CSS_INPUT_RADIO);
     $oUl->setAttribute('id', 'liste-' . $oElement->getName());
     //récupération de la valeur à cocher (définie dans le setValue)
     $nValueActive = $oElement->getValue();
     // on parcours chaque élement de multioptions
     foreach ($oElement->getMultiOptions() as $iValue => $sOption) {
         //on créé un item de liste
         $oLi = new Symbol_ListItem();
         //on construit l'input
         $oInput = new Symbol_Input($sName, 'radio', $iValue);
         //on l'active si besoin
         if ((string) $iValue == $nValueActive && $nValueActive !== NULL) {
             $oInput->addAttribute('checked', 'checked');
         }
         $oInput->addAttribute('id', $sName . "-" . $iValue);
         //on construit le label
         $oLabel = new Symbol_Label($sOption, $oInput);
         //on ajout le tout au symbole liste
         $oLi->linkSymbols(array($oInput, $oLabel));
         //on ajoute l'élément à la liste
         $oUl->linkSymbol($oLi);
         /*
          * On ajoute un élement div au niveau de l'endroit ou est indique Disponibilité restreinte
          * si c'est spécifié dans l'option dispo_restreinte
          */
         if ($iValue == ETAT_DISPO_RESTREINTE && $this->getOption('dispo_restreinte')) {
             $oLiBis = new Symbol_ListItem();
             //création du symbole div
             $oDiv = new Symbol_Div();
             $oDiv->addAttribute('id', 'result-' . $sName);
             $oDiv->addAttribute('class', 'result');
             $oLiBis->linkSymbol($oDiv);
             $oUl->linkSymbol($oLiBis);
         }
     }
     // on rends tout
     $sElementContent = $oUl->render();
     //on permet le chainage avec les options placement
     $separator = $this->getSeparator();
     switch ($this->getPlacement()) {
         case self::PREPEND:
             return $sElementContent . $separator . $sContent;
         case self::APPEND:
             return $sContent . $separator . $sElementContent;
         default:
             return $sContent . $separator . $sElementContent;
     }
 }
Ejemplo n.º 2
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();
 }