Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-04-2009 17:09:36

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

[Zend_Form_Decorator][1.7] Comprendre son utilisation

Bon, j'ai lu plusieurs sujets pour des problèmes avec le form decorator dans le forum, mais certain disent simplement d'aller voir la doc et de la comprendre, etc...Mais la doc n'est pas toujours clair, avant de poser une question je vais voir la doc avant bien sûr !

Mais là, j'ai plusieurs questions pour l'affichage de mes formulaires.
Je veux creer une classe qui va gérer l'affichage de plusieurs formulaires et une autre classe qui va gérer l'affichage pour un autre type de formulaire.

Mes formulaires sont construit dans mes function action, exemple:

Code:

$form = new formulaireProduits();
$form->submit->setLabel('Ajouter');
$this->view->form = $form;
        
        if ($this->_request->isPost()) {
            $formData = $this->_request->getPost();
            if ($form->isValid($formData)) {
                $produits = new Produits();
                $row = $produits->createRow();
                $row->titreProduits = $form->getValue('titreProduits');
                $row->descProduits = $form->getValue('descProduits');
                $row->save();
                $this->_redirect('/admin/produits');
            } else {
                $form->populate($formData);
                
            }
        }

Ils sont affichés dans mes vues comme ceci:

Code:

<?php echo $this->form ;?>

Bon, ce que je veux c'est de savoir comment:

-Pouvoir personnaliser mes messages d'erreur (changer le texte et ne pas le mettre dans une liste)
-Pouvoir formatter mon formulaire avec une table (dans des balise <tr><td> )
-Changer le size de mes champs
-Bref, avoir controle sur chaque element d'un formulaire

J'esseye de créer la classe suivante

Code:

class decorateur extends Zend_Form_Decorator_Abstract

Mais je ne sais pas comment la relier avec mon formulaire ni comment jouer sur chacun des éléments à partir d'un décorateur personnalisé?

Cela fait beaucoup de question mais les réponses vont probablement aider la vague de nouvelles personnes sur le Zend

Hors ligne

 

#2 30-04-2009 17:55:47

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: [Zend_Form_Decorator][1.7] Comprendre son utilisation

J'ai détaillé le fonctionnement des décorateurs dans mon tuto "présentation et premiers pas avec le ZF".
En espérant que ça t'aide ...

http://julien-pauli.developpez.com/tuto … orm#LXII-C

Hors ligne

 

#3 01-05-2009 03:27:34

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [Zend_Form_Decorator][1.7] Comprendre son utilisation

Merci pour l'information, je vais regarder le tout en détails ce week-end et me replonger dedans à fond dès lundi !

Hors ligne

 

#4 03-08-2009 14:58:03

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [Zend_Form_Decorator][1.7] Comprendre son utilisation

Tu n'explique pas dans ton tuto comment loader une class decorateur par contre.

Je ne veux pas répéter trop de code et je veux une classe pour tout mes formulaires mais je vais réexpliquer mon problème qui n'a jamais été résolu dans un autre post:

Code:

Exception caught by form: Plugin by name 'General' was not found in the registry; used paths: Default_Form_Decorator_: forms/decorators/ Zend_Form_Decorator_: Zend/Form/Decorator/

Pourtant, je fais l'autoloader dans le bootstrap:

Code:

 $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'Default_',
            'basePath'  => dirname(__FILE__),
        ));
        
        $autoloader->addResourceType('Default_Form_Decorator', 'forms/decorators', 'decorator');
        
        return $autoloader;

Je relis évidement dans mon formulaire:

Code:

$this->addPrefixPath('Default_Form_Decorator', 'forms/decorators', 'decorator');
$this->setDecorators(array('General'));

Mon decorateur se nomme comme ceci:

Code:

class Default_Form_Decorator_General extends Zend_Form_Decorator_Abstract

Et un rappel de mon arbo:
Mon arbo:

application/
--forms/
----Form.php
----decorators/
------General.php

Hors ligne

 

#5 03-08-2009 20:56:31

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [Zend_Form_Decorator][1.7] Comprendre son utilisation

http://framework.zend.com/manual/en/zen … ors.custom

Il doit manquer des informations dans la documentation officiel car en parcourant quelques forums, je me rends compte que les gens laisse tomber les décorateurs personnalisés contre les décorateurs directement dans le formulaire que l'on doit répéter partout.

Une autre solution serait de mettre les décorateurs personnalisés directement dans le dossier de la librairie de Zend mais là, on ne suit plus la convention et c'est donc un patchage qui ne fonctionnera pas dans tous les cas, aussi bien de bien faire maintenant.

Mais quand même, je suis surpris que personne n'est réussis à intégrer un décorateur personnalisé, si on suit l'exemple lettre par lettre de la doc officiel, cela ne fonctionnera pas. Et puis, ce qui n'est pas expliqué, c'est si on doit ajouté cette ressource dans le boostrap ou s'il n'y a pas d'importance.

Franchement, j'aime le framework mais sa documentation créé beaucoup de confusion et est extrêmement difficile à comprendre vu la complexité de tout le système. Je vais continuer à utiliser Zend mais...ce genre de truc me dérange énormément !

Hors ligne

 

#6 04-08-2009 17:20:34

itecman
Membre
Lieu: Orléans
Date d'inscription: 03-07-2009
Messages: 57

Re: [Zend_Form_Decorator][1.7] Comprendre son utilisation

probitaille a écrit:

http://framework.zend.com/manual/en/zend.form.decorators.html#zend.form.decorators.custom

Il doit manquer des informations dans la documentation officiel car en parcourant quelques forums, je me rends compte que les gens laisse tomber les décorateurs personnalisés contre les décorateurs directement dans le formulaire que l'on doit répéter partout.

Une autre solution serait de mettre les décorateurs personnalisés directement dans le dossier de la librairie de Zend mais là, on ne suit plus la convention et c'est donc un patchage qui ne fonctionnera pas dans tous les cas, aussi bien de bien faire maintenant.

Mais quand même, je suis surpris que personne n'est réussis à intégrer un décorateur personnalisé, si on suit l'exemple lettre par lettre de la doc officiel, cela ne fonctionnera pas. Et puis, ce qui n'est pas expliqué, c'est si on doit ajouté cette ressource dans le boostrap ou s'il n'y a pas d'importance.

Franchement, j'aime le framework mais sa documentation créé beaucoup de confusion et est extrêmement difficile à comprendre vu la complexité de tout le système. Je vais continuer à utiliser Zend mais...ce genre de truc me dérange énormément !

+1, le concept est bien, de toute façon le "pattern" MVC date d'avant ZF :p, par contre la doc dès fois laisse à désirer. Les "exemples" sont souvent "incomplets" je trouve, l'API reste très sommaire.

Mais bon on fera avec smile, il faut aussi souffrir un peu pour avoir un truc propre :p


-- itecman smile

ZF 1.8.4 - Zend Server CE

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