Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-04-2010 14:08:52

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

[Zend_Form] Ajouter du code HTML au milieu du formulaire

Bonjour,

Je souhaiterai savoir comment ajouter une balise HTML à coté d'un élément du formulaire ?

Code:

$user = new Zend_Form_Element_Text('user');
        $user->setLabel('User')
        ->setValue("Toto")
        ->setRequired(true)
        ->setOptions(array("readOnly"=>true))
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->addValidator('NotEmpty');


        $max_carac = 140;
        $content = new Zend_Form_Element_TextArea('description');
        $content->setLabel('Content')
        ->setRequired(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->addValidator('NotEmpty')
        ->addValidator('stringLength', false, array(1, $max_carac));

         // ajouter une balise HTML simple (<dd> ou <div>)
         
       $submit = new Zend_Form_Element_Submit('submit');
       $submit->setLabel('OK');

     $this->addElements(array($user, $content, $submit));

Je voudrais soit rajouter une balise HTML <dd> ou un <div> à coté de ma textarea, comment faire ceci ?

Dernière modification par Aure77 (06-04-2010 14:11:16)

Hors ligne

 

#2 06-04-2010 14:56:23

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Bonjour, on en parle dans le poste à côté (Retour d'expérience).

Hors ligne

 

#3 06-04-2010 15:20:44

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

J'ai essayé avec :

Code:

<?php 
class Ma_Form_Element_Code extends Zend_Form_Element_Xhtml
{
    /**
     * Default form view helper to use for rendering
     * @var string
     */
    public $helper = 'formCode';
}

et

Code:

$code = new Ma_Form_Element_Code("code") ;
$code->setValue('<p>Ceci est du code HTML</p>');
$code->addDecorators(array(
    'ViewHelper',
    array('HtmlTag', array('tag' => 'dd')) 
));

Mais lorsque j'affiche j'ai vraiment plus rien du tout...(plus de formulaire)

Hors ligne

 

#4 06-04-2010 20:14:01

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Ca peut venir d'un mauvais chemin, le fichier doit être dans Code.php, dans le répertoire library/Ma/Form/Element

En outre il faut avoir library dans le fichier include et dans certaines configurations il faut déclarer Ma_ dans application.ini.

Code:

autoloadernamespaces[] = "Ma_"

includePaths.library = APPLICATION_PATH "/../library"

Et bien entendu ne pas oublier d'ajouter l'élément dans la form.

Code:

     $this->addElements(array($user, $content, $code, $submit));

Dernière modification par Zartan (06-04-2010 20:14:16)

Hors ligne

 

#5 07-04-2010 09:53:29

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

library/Ma/Form/Element ??? J'ai rien qui s'appelle comme ça dans mon répertoire de Zend !

Hors ligne

 

#6 07-04-2010 10:03:31

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

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Aure77 a écrit:

library/Ma/Form/Element ??? J'ai rien qui s'appelle comme ça dans mon répertoire de Zend !

On parle de TON library, pas celui de Zend


----
Gruiiik !

Hors ligne

 

#7 07-04-2010 10:13:27

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Oui mais je met quoi moi, dans ma library (Ma/Form/...) ?
Il y a pas un moyen plus simple pour ajouter 2 pauvres balises HTML ?

Dernière modification par Aure77 (07-04-2010 10:13:52)

Hors ligne

 

#8 07-04-2010 10:31:33

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Il faut aller dans le répertoire library, créer le répertoire Ma, dans le répertoire Ma créer le répertoire Form, dans le répertoire Form créer le répertoire Element et dans le répertoire Element ajouter Code.php qui contient :

Code:

<?php 
class Ma_Form_Element_Code extends Zend_Form_Element_Xhtml
{
    /**
     * Default form view helper to use for rendering
     * @var string
     */
    public $helper = 'formCode';
}

Ca ira ou il faut vous expliquer comment créer un répertoire ?

Hors ligne

 

#9 07-04-2010 11:32:56

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Ok je n'avais pas compris que Ma_Form_Element_Code représentait l'arborescence des fichiers...

Mais ça ne change rien, toujours le même problème...
J'ai essayé : Zend_Loader::loadClass("Ma_Form_Element_Code"); mais ça ne marche pas !
(la configuration n'est pas faite dans le ini mais dans index.php (set_include_path & Zend_Loader::registerAutoload()), il n'utilise pas les Zend_Application/bootstrap...)

Hors ligne

 

#10 07-04-2010 11:48:21

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

registerAutoload c'est abandonné depuis la version 1.8!

Il faut faire comme cela désormais :

Code:

require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);

Il faudrait essayer :

require_once 'Ma/Form/Element/Code.php' ;

avant de charger la classe.

Hors ligne

 

#11 07-04-2010 11:58:36

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

J'ai une version antérieur à la 1.8 et Zend/Loader/Autoloader.php n'existe pas...

Hors ligne

 

#12 07-04-2010 12:54:58

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Je pense qu'une mise à jour serait utile. Ca nous permettrait de discuter sur les mêmes bases.

Hors ligne

 

#13 07-04-2010 13:05:22

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Je viens de faire un test et ma classe est bien loadé !
Quand je fait : echo $code->getValue(); -> il m'affiche bien mon code HTML
et
get_class_methods(Ma_Form_Element_Code) m'affiche bien les méthodes des Zend_Form...

mais j'ai l'impression que c'est le render qui pause problème !
car si je fait $code->render(); -> Zend soulève une exception...
(Uncaught exception 'Zend_Form_Exception' with message 'Invalid type "ELEMENT" provided to getPluginLoader()' in C:\xampp\htdocs\library\Zend\Form\Element.php:1013  ....    Zend_Form_Element->addPrefixPath('Ma_Form_Element', 'Ma/Form/Element...', 'element'))
element n'existe pas (seul VALIDATE/DECORATOR/FILTER sont possible)

Non je ne peux pas mettre à jour ma version de Zend car mon programme est déjà bien avancé et en production.

Dernière modification par Aure77 (07-04-2010 13:08:39)

Hors ligne

 

#14 07-04-2010 14:16:40

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Remplacez

    public $helper = 'formCode';

par
    public $helper = 'formNote';

Hors ligne

 

#15 07-04-2010 14:20:36

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

OK c'était bien ça le problème ! merci

Hors ligne

 

#16 07-04-2010 14:27:24

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Comment est t'il possible de faire ça :
...
<tr>
<td><textarea></textarea></td>
<td><ul><li>TOTO</li></ul></td>
</tr>
...
Afin de mettre cote à cote ma textarea et mon élément <ul>

Car la j'ai :
...
<dd>
<textarea ...></teaxtarea>
</dd>
<dt>&nbsp;</dt>
<dd><ul><li>TOTO</li></ul></dd>
...

Dernière modification par Aure77 (07-04-2010 14:27:51)

Hors ligne

 

#17 07-04-2010 14:36:40

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Là c'est un problème de decorators.

        $ele1->setDecorators(array(
                   'ViewHelper',
                   array(array('data'=>'HtmlTag'), array('tag' => 'td')),
                   array(array('row'=>'HtmlTag'),array('tag'=>'tr','openOnly'=>true))
           ));

et

        $ele2->setDecorators(array(
                   'ViewHelper',
                   array(array('data'=>'HtmlTag'), array('tag' => 'td')),
                   array(array('row'=>'HtmlTag'),array('tag'=>'tr','closeOnly'=>true))
           ));


Quelque chose dans ce genre là...

Hors ligne

 

#18 07-04-2010 15:20:33

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Merci bien, je ne connaissais pas openOnly/closeOnly.
Tant que j'ai quelqu'un qui s'y connais sous la main :
La textarea possède un label et je voudrai qu'il soit au dessus de la textarea et de ma liste ul
J'ai ajouté
array('Label' , array('tag' => 'td') ),
Mais je vois pas comment faire pour qu'il fasse :
<tr><td><label class="required">Content</label></td></tr>
<tr>
<td><textarea></textarea></td>
<td><ul><li>TOTO</li></ul></td>
</tr>

car il me fait :
<tr>
<td><label class="required">Content</label></td>
<td><textarea></textarea></td>
<td><ul><li>TOTO</li></ul></td>
</tr>

ou que le label et la form soit dans le même TD

Dernière modification par Aure77 (07-04-2010 15:23:16)

Hors ligne

 

#19 07-04-2010 15:54:25

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Ca j'ai jamais fait, je suppose qu'il faut commencer par essayer :

array('Label' , array('tag' => 'td', 'openOnly'=>true) ),
array(array('data'=>'HtmlTag'), array('tag' => 'td', 'closeOnly' =>true)),
array(array('row'=>'HtmlTag'),array('tag'=>'tr'))

Hors ligne

 

#20 07-04-2010 16:56:33

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Ne marche pas, la textarea se retrouve hors de la <table> ...

Hors ligne

 

#21 07-04-2010 17:13:25

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Je n'ai pas le temps de chercher ça désolé.

Hors ligne

 

#22 08-04-2010 09:42:35

Aure77
Membre
Date d'inscription: 08-02-2010
Messages: 21

Re: [Zend_Form] Ajouter du code HTML au milieu du formulaire

Personne d'autre ne peux m'aider alors ?

EDIT: Finalement je m'en suis sortie grace à ce tuto : http://www.dator.fr/tutorial-creer-une- … tchmydesk/

Dernière modification par Aure77 (08-04-2010 16:05:42)

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