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" />

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

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

Code:

$form->addStatic('<div id='tabs-1'>');

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

J'obtiens ça :

Code:

<div id="tabs-1">
    <label for="name" class="optional">Name :</label>
    <input type="text" name="name" id="name" value="">

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>

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

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

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>

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)),
            )
        );

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

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

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

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