コード例 #1
0
ファイル: Erreurs.php プロジェクト: netixx/Stock
 public function render($sContent)
 {
     //permet de savoir s'il y a une erreur sur le formulaire en globalité
     $bFormHasErreur = $this->getElement()->getView()->errors;
     //permet de savoir si le champ traité à une erreur ou pas
     $bChampHasErreur = $this->getElement()->hasErrors();
     /*
      * Si le formulaire comporte une erreur, il faut alors décorer tous les champs avec :
      * - soit une coche ok si le champ traité n'a pas d'erreur
      * - soit une coche croix si le champ a bien une erreur
      */
     if ($bFormHasErreur) {
         $oChampVoid = new Symbol_Void();
         //Span englobante pour la position de la croix
         $oSpanErrorOk = new Symbol_Span('', CSS_POS_RELATIVE);
         //on ajoute le contenu du champ
         $oSpanErrorOk->linkSymbol(new Symbol_Void($sContent));
         /*
          * Deux comportements sont possibles :
          * 	-> il y un erreur su ce champ, auquel cas on décore avec un croix rouge et un input rouge
          * 	-> il n'y à pas d'erreur sur ce champ mais sur un autre champ, on décore alors avec une check bleue
          */
         if ($bChampHasErreur) {
             //Classe pour la croix
             $sClass = CSS_INPUT_CHECK_ERROR;
             //on ajoute les erreurs (le texte des erreurs)
         } else {
             //Classe pour le coche
             $sClass = CSS_INPUT_CHECK_OK;
         }
         //ajout de la croix ou de la coche, c'est selon
         $oSpanErrorOk->linkSymbol(new Symbol_Span('', trim($sClass)));
         $oChampVoid->linkSymbol($oSpanErrorOk);
         //on retourne le champ
         return $oChampVoid->render();
     } else {
         //si pas d'erreur, on touche à rien
         return $sContent;
     }
 }
コード例 #2
0
ファイル: MultiInput.php プロジェクト: netixx/Stock
 /**
  * @brief	Ajout des erreurs sur les champs incriminés
  *
  * @author		francoisespinet
  * @version		13 avr. 2012 - 12:04:19
  *
  * @param 	Symbol_Input $oSymbol le symbol input comme construit
  * @param 	int $nId l'id du champ incriminé
  * @return	return_type
  */
 protected function addErrorDeco(Symbol_Input $oSymbol, $nId = null)
 {
     //si il y a des erreurs sur cet ensemble de champs
     if ($this->_aInvalidAdresses) {
         //on sauvegarde l'ancien input
         $oInput = $oSymbol;
         //on réécrit le nouveau avec une décoration classique des erreurs
         $oSymbol = new Symbol_Span('', CSS_POS_RELATIVE);
         //s'il y a une erreur sur ce champ en particulier
         if ($nId !== null && in_array($nId, $this->_aInvalidAdresses)) {
             $oSpan = new Symbol_Span('', CSS_INPUT_CHECK_ERROR);
             $oInput->addAttribute('class', CSS_INPUT_ERROR);
         } else {
             //sinon on met ok
             $oSpan = new Symbol_Span('', CSS_INPUT_CHECK_OK);
         }
         //on retourne le symbol décoré
         return $oSymbol->linkSymbols(array($oInput, $oSpan));
     } else {
         //on renvoie le symbole identique s'il n'y avait pas d'erreur
         return $oSymbol;
     }
 }
コード例 #3
0
ファイル: JoinedInput.php プロジェクト: netixx/Stock
 /**
  * Décorateur spécifique au formulaire ne comportant que des input devant etre aligné.
  * Par exemple dans:
  * @see Form_TypeAppareil
  * @author francois.espinet
  * @see Projet_Form_Decorator_Abstract::render_element()
  */
 protected function render_element()
 {
     $oForm = new Symbol_Void();
     //objet formulaire
     $this->aoForm = $this->getElement();
     //on récupere les éléments
     //parcours des éléments du formulaire (les champs)
     foreach ($this->aoForm as $oItem) {
         /*
          * Symbole pour gérer l'ensemble du champ
          * Eventuellement certains éléments peuvent être simplement juxtaposés sans être contenus dans un autre symbole
          * D'où le symbole void par défault
          */
         $oChamp = new Symbol_Void();
         $bChampHasError = $oItem->hasErrors();
         //on ecarte submit pour les erreurs
         if ($oItem instanceof Zend_Form_Element_Text) {
             if ($bChampHasError) {
                 // on ajoute une classe pour la décoration contour rouge
                 $oItem->setAttrib('class', CSS_INPUT_ERROR . $oItem->getAttrib('class'));
             }
             $oChamp = new Symbol_Span('', 'JoinedInput');
             //on genere les données
             $sChamp = $this->buildLabelAndInput($oItem);
             $oChamp->setData($sChamp);
         } elseif ($oItem instanceof Zend_Form_Element_Submit) {
             $oChamp = new Symbol_Void($this->buildSubmit($oItem));
         } elseif ($oItem instanceof Zend_Form_Element_Hidden) {
             $oChamp = new Symbol_Void($this->buildInput($oItem));
         }
         //on attache l'élement au formulaire
         $oForm->linkSymbol($oChamp);
     }
     return $oForm->render();
     //on renvoie la chaine
 }
コード例 #4
0
ファイル: RemAjBoutons.php プロジェクト: netixx/Stock
 protected function render_element()
 {
     //recuperation de l'élément et de ses attributs
     $oElement = $this->getElement();
     $sName = $oElement->getName();
     $this->oView = $oElement->getView();
     //on place les deux boutons dans un span
     $oSpan = new Symbol_Span('', 'RemAjBouton');
     $oSpan->setAttribute('id', $sName . '-Boutons');
     $oSpan->setAttribute('style', 'display:inline-block;');
     //on ajoute les boutons ajouter et supprimer
     $oSpan->addData($this->createBouton(self::AJ, $sName));
     $oSpan->addData($this->createBouton(self::RM, $sName));
     //on retourne l'ensemble
     return $oSpan->render() . '<br/>';
 }
コード例 #5
0
ファイル: Abstract.php プロジェクト: netixx/Stock
 /**
  * @brief	Ajout la decoration du champ s'il à une erreur ou si un de ses camarades en à une
  *
  * @see Projet_Form_Decorator_Generic
  *
  * @author		francoisespinet
  * @version		9 mars 2012 - 11:14:41
  * @param unknown_type $sChamp
  * @param Html_Symbol $oChamp
  * @param Zend_Form_Element $oItem
  * @param bool $bChampHasError
  */
 protected function formAddErreurChamp($sChamp, $bChampHasError)
 {
     $oChampVoid = new Symbol_Void();
     //Span englobante pour la position de la croix
     $oSpanErrorOk = new Symbol_Span('', CSS_POS_RELATIVE);
     //on ajoute le contenu du champ
     $oSpanErrorOk->linkSymbol(new Symbol_Void($sChamp));
     $sClass = '';
     /*
      * Deux comportements sont possibles :
      * 	-> il y un erreur su ce champ, auquel cas on décore avec un croix rouge et un input rouge
      * 	-> il n'y à pas d'erreur sur ce champ mais sur un autre champ, on décore alors avec une check bleue
      */
     if ($bChampHasError) {
         //Classe pour la croix
         $sClass = CSS_INPUT_CHECK_ERROR;
         //on ajoute les erreurs (le texte des erreurs)
     } else {
         //Classe pour le coche
         $sClass = CSS_INPUT_CHECK_OK;
     }
     //ajout de la croix ou de la coche, c'est selon
     $oSpanErrorOk->linkSymbol(new Symbol_Span('', trim($sClass)));
     $oChampVoid->linkSymbol($oSpanErrorOk);
     return $oChampVoid->render();
 }