Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-07-2009 16:50:28

asnodj
Membre
Lieu: Salon de Provence
Date d'inscription: 07-06-2009
Messages: 13

[Résolu] Zend_Form et HTML statique

Bonjour,

J'aurais besoin d'aide avec un formulaire...
Je vous explique : j'ai besoin de ce résultat pour que jQuery affiche des onglets :

Code:

<form ...>
<div id="tabs-1">
    <label>test</label>
    <input type... />
    <br />
     <label>test</label>
    <input type... />
</div>
<div id="tabs-2">
    <label>test</label>
    <input type... />
    <br />
     <label>test</label>
    <input type... />
</div>
<input type="submit" />
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Moi pour faire les formulaires j'utilise cette syntaxe :

Code:

class FormTest extends Zend_Form{
    
    public function init(){
        
         $element = new Zend_Form_Element_Text('name');
         $element->setLabel('Name :');

         $this->addElement($element);
                 
         $element = new Zend_Form_Element_Text('name2');
         $element->setLabel('Name2 :');
         $this->addElement($element);
         
         
         $submit = new Zend_Form_Element_Submit('submit');
         $this->addElement($submit);
       
         $this->submit->setValue("Save");
         
    }
}
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

J'aimerais savoir s'il existe un truc du genre :

Code:

$form->addStatic('<div id='tabs-1'>');
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Merci d'avance

Dernière modification par Vincent (08-07-2009 12:53:47)


OS : Ubuntu 9.10
IDE:  Eclipse PDT avec RSE et DTP

Hors ligne

 

#2 08-07-2009 08:43:13

asnodj
Membre
Lieu: Salon de Provence
Date d'inscription: 07-06-2009
Messages: 13

Re: [Résolu] Zend_Form et HTML statique

Up


OS : Ubuntu 9.10
IDE:  Eclipse PDT avec RSE et DTP

Hors ligne

 

#3 08-07-2009 09:01:55

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu] Zend_Form et HTML statique

utilise le décorateur htmlTag
(et lit la doc)


----
Gruiiik !

Hors ligne

 

#4 08-07-2009 09:41:46

asnodj
Membre
Lieu: Salon de Provence
Date d'inscription: 07-06-2009
Messages: 13

Re: [Résolu] Zend_Form et HTML statique

J'ai beaucoup cherché mais je n'arrive pas à obtenir ce que je veux avec HtmlTag

Quand je fais cela :

Code:

$element->setDecorators(
             array(
                 'ViewHelper',
                 'Label',
                 array('HtmlTag', array('tag' => 'div', 'class' => 'formElementContent')),
                 array('HtmlTag', array('tag' => 'div', 'id' => 'tabs-1', 'openOnly' => true))
                 )
         );
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

J'obtiens ça :

Code:

<div id="tabs-1">
    <label for="name" class="optional">Name :</label>
    <input type="text" name="name" id="name" value="">
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Je ne comprends pas pourquoi je n'ai pas un autre div qui contient les elements du formulaire... cela devrait donner :

Code:

<div id="tabs-1">
    <div class="formElementContent">
        <label for="name" class="optional">Name :</label>
        <input type="text" name="name" id="name" value="">
    </div>
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Est ce qu'on ne peux pas imbriquer des divs ?


OS : Ubuntu 9.10
IDE:  Eclipse PDT avec RSE et DTP

Hors ligne

 

#5 08-07-2009 09:43:12

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] Zend_Form et HTML statique

Hello,

Si je me rappelles bien, c'est parce que tu ne les nommes pas donc le 2ème écrase le 1er

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#6 08-07-2009 09:56:00

asnodj
Membre
Lieu: Salon de Provence
Date d'inscription: 07-06-2009
Messages: 13

Re: [Résolu] Zend_Form et HTML statique

Ca ne marche pas !
J'ai ajouté un id à la div mais cela ne change rien sad

Code:

$element->setDecorators(
             array(
                 'ViewHelper',
                 'Label',
                 array('HtmlTag', array('tag' => 'div', 'id' => 'test', 'class' => 'formElementContent')),
                 array('HtmlTag', array('tag' => 'div', 'id' => 'tabs-1', 'openOnly' => true))
                 )
         );
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Tant qu'on y est... vous pouvez me dire aussi à quoi ça sert l'option "placement" ?

Dernière modification par asnodj (08-07-2009 09:57:49)


OS : Ubuntu 9.10
IDE:  Eclipse PDT avec RSE et DTP

Hors ligne

 

#7 08-07-2009 10:09:10

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Résolu] Zend_Form et HTML statique

Hello,

Pour moi nommé ne voulait pas dire "id".

Code:

$element->setDecorators(
             array(
                 'ViewHelper',
                 'Label',
                 array(array('mon_tag_1' => 'HtmlTag'), array('tag' => 'div', 'id' => 'test', 'class' => 'formElementContent')),
                 array(array('mon_tag_2' => 'HtmlTag'), array('tag' => 'div', 'id' => 'tabs-1', 'openOnly' => true))
                 )
         );
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

C'est dans la doc : http://framework.zend.com/manual/fr/zen … decorators (note : "Using Multiple Decorators of the Same Type", un peu plus bas)

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#8 08-07-2009 11:01:07

asnodj
Membre
Lieu: Salon de Provence
Date d'inscription: 07-06-2009
Messages: 13

Re: [Résolu] Zend_Form et HTML statique

Merci mikaelkael smile

Finalement j'ai opté pour créer un fichier .phtml pour l'affichage des elements. Cà marche comme tu as dis les HtmlTag mais j'ai encore rencontrai un problème quand j'ai voulu que le label et l'élément soient chacun contenu par un div et que ces deux divs soient au même niveau...

Voici le code du fichier form_decorator.phtml (script à placer dans views/scripts/)

Code:

<div class="formElementContent">
    
    <div class="FEC_label">
    <?php 
        $attribs = $this->element->getAttribs();
        
        if($attribs['helper'] != 'formSubmit'){
        
            $label = $this->element->getLabel();
            
            
            if ($this->element->isRequired()) {
                
                $attribs['escape'] = false;
                $label = $this->escape($label). ' <span class="required">*</span>';
            }
            
            echo $this->formLabel($this->element->getName(), $label, $attribs);
        }
    ?>
    </div>
    
    <div class="FEC_element">
    <?=$this->content;?> 
    </div>
    
    <?php
    // Erreurs
    if ($this->element->getMessages()) { ?>
    
    <div class="FEC_errors">
        <?=implode('<br />', $this->element->getMessages())?>
    </div>
    <?php } 
    
    // Description
    ?>
    <div class="hint"><?= $this->element->getDescription() ?></div>
</div>
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Maintenant je fais cela pour les décorateurs des elements du formulaire :

Code:

$element->setDecorators(
            array(
                'ViewHelper',
                array('ViewScript', array('viewScript' => 'form_decorator.phtml', 'placement' => false)),
            )
        );
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

J'ai fini par créer moi même la methode addStatic du formulaire :

Code:

class FormTest extends Zend_Form{

    var $statics_count = 0;
    
    private function addStatic($S_static){
        
        $element = new Zend_Form_Element_Static('static'.$this->statics_count);
        
        $this->statics_count++;
        
        $element->setValue($S_static);
        $this->addElement($element);
        
    }
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Comme tu pourras voir j'ai créé l'élément Static pour le formulaire :

Code:

class Zend_Form_Element_Static extends Zend_Form_Element{
    
    public function render(){
        
        return $this->_value;
        
    }
}
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Voilà ! Maintenant dans le formulaire je n'ai qu'appeler la fonction addStatic('test !');  et le tour est joué.
Je trouve cela plus aise à utiliser.

Merci beaucoup de votre aide à vous deux.


OS : Ubuntu 9.10
IDE:  Eclipse PDT avec RSE et DTP

Hors ligne

 

#9 26-11-2009 12:14:16

asnodj
Membre
Lieu: Salon de Provence
Date d'inscription: 07-06-2009
Messages: 13

Re: [Résolu] Zend_Form et HTML statique

Je up car j'ai un problème avec ma méthode addStatic. Quand il y a des problèmes et que le formulaire n'est pas validé on ne voit plus les éléments statiques :s

J'arrive pas à trouver pourquoi il a ce comportement.. est ce que quelqu'un peut m'aider à optimiser mon élément "Zend_Form_Element_Static" ?


OS : Ubuntu 9.10
IDE:  Eclipse PDT avec RSE et DTP

Hors ligne

 

#10 26-11-2009 13:08:45

asnodj
Membre
Lieu: Salon de Provence
Date d'inscription: 07-06-2009
Messages: 13

Re: [Résolu] Zend_Form et HTML statique

Je viens de trouver! Apparemment il y a un problème lors de la validation du formulaire et du coup les champs n'étaient pas affichés.
problème de decorateurs ????

En tout cas j'ai modifié mon "Zend_Form_Element_Static" comme suit :

Code:

class Zend_Form_Element_Static extends Zend_Form_Element{
    
    public function render(){
        
        return $this->_value;
        
    }

    public function isValid($value, $context = null){
        return true;
    }
    
}
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

et cela marche nikel !

Si quelqu'un peut mieux expliquer ce serait cool big_smile
Aller bye, j'espère que cela serve à quelqu'un wink


OS : Ubuntu 9.10
IDE:  Eclipse PDT avec RSE et DTP

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages