Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-07-2009 11:07:13

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

ZF[1.8.4]Dojo Filteringselect

Avec cette dernière version une modification a été faite sur Zend_Dojo et du coup les zones filteringselect sont vides au chargement du formulaire alors que jusque là il y avait un appel initial pour charger les valeurs.

D'autres personnes ont ce problème : ICI

Inutile de vous dire que je suis dans la semoule et je ne crains pas de dire : au secours.

Bref, quelqu'un a t-il une piste ?

Hors ligne

 

#2 09-07-2009 19:06:38

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: ZF[1.8.4]Dojo Filteringselect

Salut,

Peux tu me montrer un peu de code car je l'utilise tous les jours et sans aucun problème. (J'en ai d'autres mais pas celui la)

Hors ligne

 

#3 09-07-2009 19:56:19

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: ZF[1.8.4]Dojo Filteringselect

En fait voici un morceau de formulaire :

Code:

$frechevenementcommunaute = new Zend_Dojo_Form_Element_FilteringSelect('ann_communaute');
$frechevenementcommunaute->setDecorators(array('DijitElement',array('Label', array('escape'=>false)),  array('HtmlTag', array('tag'=>'p'))))
                            ->setAutoComplete(true)
                            ->setStoreId('communautesStore')
                           ->setStoreType('dojo.data.ItemFileReadStore')
                           ->setValue(10)
                           ->setStoreParams(array('url'=>'/1001sportifsv2/public/general/default/index/listecommunautesrechvideo'))
                           ->setAttribs(array("searchAttr" => "techcommunautes_lib","onchange" => "modifliste(this.value)"))
                           ->setLabel('<br/>Communauté');

Normalement la procédure appelée par setStoreParams est déclenchée au chargement du formulaire et la valeur correspondant à la value (10 dans le cas présent) est présélectionnée dans la listebox.
C'est le comportement constaté avec la 1.8.2 du ZF mais plus avec la 1.8.4.
La référence que je donne dans mon précédent message montre que ce problème est rencontré par d'autres développeurs.

J'ai remplacé juste la classe Dojo du ZF 1.8.4 par l'ancienne version et tout fonctionne correctement. La modification faite sur cette classe sr la 1.8.4 rend prévisible que ça ne marche plus. Mais je n'ai pas trouvé comment rétablir le fonctionnement de ces formulaires avec cette dernière version.

Je suis donc ouvert à toutes les propositions.

Hors ligne

 

#4 09-07-2009 20:12:54

ubini
Membre
Lieu: gillarens/Suisse
Date d'inscription: 23-01-2008
Messages: 110
Site web

Re: ZF[1.8.4]Dojo Filteringselect

je sais que ça va pas faire avancer le schmilblik mais j'ai dû repasser en 1.8.3 à cause à cause d'un autre bug sous Dojo... Le problème c'est que les formulaires ont changé la façon de créer les id mais pas les javascripts qui vont avec.

cf : http://framework.zend.com/issues/browse/ZF-7134

Donc 1.8.3 oui, mais pas plus si tu fais du dojo wink


http://www.easyswap.org - site d'échange de biens et de services conçu avec jQuery et Zend Framework
http://www.lambelet.net - mon blog perso et inutile

Hors ligne

 

#5 09-07-2009 21:58:20

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: ZF[1.8.4]Dojo Filteringselect

C'est la deuxième fois qu'une nouvelle release rend Dojo inexploitable.
J'avoue être assez agacé.

Par ailleurs l'intégration de Dojo est plutôt réussie et j'arrive de plus en plus à obtenir un résultat satisfaisant en intégrant des comportement Ajax quand c'est vraiment utile et pas juste comme un argument de vente ou pour faire "up to date".

Je comprends d'autant moins ce manque d'attention sur Zend_Dojo.

Hors ligne

 

#6 10-07-2009 10:26:42

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: ZF[1.8.4]Dojo Filteringselect

J'ai regardé mes modifications faites dans la classe Zend_Dojo et je n'ai pas la connaissance suffisante pour en comprendre la raison.
Il y a quelques explications : http://framework.zend.com/issues/browse … tion_32410
Peut-être existe t-il un moyen de contourner le problème ?

Hors ligne

 

#7 10-07-2009 11:31:09

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: ZF[1.8.4]Dojo Filteringselect

La seule solution que je peux te donner pour contourner ton problème est d'ajouter un script qui reload ton store et que tu ajoutes dans la création de ton filtering select avec un onClick=>"reloadStore('IDSTORE','url')", et dans ta page un

Code:

function reloadStore(id,url){
        dijit.byId(id).store = new dojo.data.ItemFileReadStore({url:url});
}

J'utilise cette méthode pour charger des filteringselect combinés.

David

Hors ligne

 

#8 10-07-2009 11:48:58

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: ZF[1.8.4]Dojo Filteringselect

J'ai déjà des listes chainés dans mes formulaires qui sont mises à jour avec onchange" => "modifliste(this.value).

la fonction

Code:

function reloadStore(id,url){
        dijit.byId(id).store = new dojo.data.ItemFileReadStore({url:url});
}

Tu la met où exactement ? Dans ta view ?

Hors ligne

 

#9 10-07-2009 12:06:20

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: ZF[1.8.4]Dojo Filteringselect

oui dans ta view.

Hors ligne

 

#10 10-07-2009 12:58:53

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: ZF[1.8.4]Dojo Filteringselect

Soit je ne sais pas faire, soit ça ne règle vraiment pas le problème.
Parviens-tu à faire un populate sur des Form Dojo depuis la 1.8.4 ?
Pour moi rien à faire... Et tous mes filterselect sont casses alors que tout marchait impec jusque là.

Mon inquiétude est de savoir si c'est un bug du ZF qui va être corrigé, ou si mes traitements sont foireux depuis le début et que ça se révèle avec cette nouvelle version.

Dernière modification par Jean-Marc Rigade (10-07-2009 12:59:08)

Hors ligne

 

#11 10-07-2009 15:46:41

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: ZF[1.8.4]Dojo Filteringselect

Oui je te confirme que chez moi ca fonctionne parfaitement.
Je viens de tester en plus dans des subform avec des onglets et j'en passe...

Hors ligne

 

#12 10-07-2009 16:40:11

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: ZF[1.8.4]Dojo Filteringselect

Moi je crée mon form comme ca :

Code:

class Form_SaisieRes extends Zend_Dojo_Form
{
    public $hiddenDecorators = array(
        'ViewHelper',
        array(),
    );
    public function init()
    {
        /* Définition du formulaire */
        $this->setMethod('post');
        $this->setAttribs(array('name'=>'saisieRes','id'=>'saisieRes','action'=>'/saisiesl/save'));

    $this->addElement('hidden', 'SITE',array('decorators' =>     $this->hiddenDecorators,'value'=>$_POST["SITE"]))
        ->addElement('hidden', 'SAISON',array('decorators' => $this->hiddenDecorators,'value'=>$_POST["SAISON"]))
        ->addElement('hidden', 'LANGUE',array('decorators' => $this->hiddenDecorators,'value'=>$_POST["LANGUE"]))
/*
 * Page Présentation Résidence
 */
        $presentationForm = new Zend_Dojo_Form_SubForm();
        $presentationForm
        ->setAttribs(array(
            'name'   => 'presentation',
            'legend' => utf8_encode('Présentation'),
            'dijitParams' => array(
                'title' => utf8_encode('Présentation'),
            ),
        ))
        ->addElement('ComboBox', 'ZONE_100_1', array(
            'label' => utf8_encode('Logo Résidence :'),
            'trim' => true,
            'style' => 'width:200px;',
            'autocomplete'=>false,
            'multiOptions'=>$this->LogosRes(),
        ))
        ->addElement('FilteringSelect','CODTYP',array(
            'label'=> utf8_encode('Type de résidence :'),
            'storeId' => 'CODTYPStore',
            'storeType' => 'dojo.data.ItemFileReadStore',
            'storeParams' => array('url' => '/saisiesl/listetype'),
            'dijitParams' => array('searchAttr'=>'LIBELLE'),
            'style'=>'width:250px;'
        ))
        ->addElement('FilteringSelect','TYPERESA',array(
            'label'=> utf8_encode('Type de réservation :'),
            'storeId' => 'TYPERESAStore',
            'storeType' => 'dojo.data.ItemFileReadStore',
            'storeParams' => array('url' => '/saisiesl/typeresa'),
            'dijitParams' => array('searchAttr'=>'LIBELLE'),
            'style'=>'width:250px;',
            'onChange'=>'changeMini(this.value);'
        ));
...
...
        $this->addSubForm($presentationForm, 'presentation')
        ->addSubForm($hebergementForm, 'hebergement')
        ->addSubForm($promosForm, 'promos')
        ->addSubForm($tarifsForm, 'tarifs')
        ->addSubForm($photosForm, 'photos')
        ->addSubForm($stationForm, 'station')
        ->addSubForm($photosSForm, 'photosS')
        ->addSubForm($validationForm, 'validation');

puis dans mon controller j'ai ca :

Code:

                $form = new Form_SaisieRes();
                $this->view->form = $form->populate($mesDatas);

Je fais juste un echo $form dans ma view et ca fonctionne.

Hors ligne

 

#13 10-07-2009 21:03:34

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: ZF[1.8.4]Dojo Filteringselect

Mes filterselect fonctionnent, mais pas comme avant.
Quand tu reviens sur un formulaire pour une mise à jour tes filterselect prennent les valeurs de la base ?

Par exemple avec ça le populate ne passe plus :

Code:

$profilscommunaute = new Zend_Dojo_Form_Element_FilteringSelect('profils_communaute');
        $profilscommunaute->setDecorators(array('DijitElement',array('Label', array('escape'=>false)),  array('HtmlTag', array('tag'=>'p'))))
                            ->setAutoComplete(true)
                            ->setStoreId('communautesStore')
                           ->setStoreType('dojo.data.ItemFileReadStore')
                           ->setStoreParams(array('url'=>'/1001sportifsv2/public/general/default/index/listecommunautes'))
                           ->setAttribs(array("searchAttr" => "techcommunautes_lib"))
                           ->setLabel('Communauté');

Je confirme que le populate passe avec des Zend_Dojo_Form_Element_ComboBox mais plus avec les filterselect,
ce qui fonctionnait ne fonctionne plus.
La zone décrite plus haut ne répond plus au populate avec la nouvelle version de la classe Dojo.

Le projet touche à sa fin et va bientôt passer en prod, j'avoue avoir un gros coup de blues sur ce coup là.

Dernière modification par Jean-Marc Rigade (10-07-2009 21:30:16)

Hors ligne

 

#14 11-07-2009 11:21:33

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: ZF[1.8.4]Dojo Filteringselect

oui je te confirme que lorsque je rapelle mon form avec les valeurs de la base, j'ai bien la bonne zone sélectionnée dans mon filtering select.

Dernière question bête mais as tu changé la version de dojo ?
Es tu passé en 1.3.x ?
J'avais quelques problèmes d'affichage avec la dojo 1.2.3 quand je suis passé au zend 1.8.x.
Depuis que je suis passé à la 1.3.x tout est rentré dans l'ordre.

Hors ligne

 

#15 11-07-2009 12:50:55

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: ZF[1.8.4]Dojo Filteringselect

Je viens de mettre à niveau les librairies Dojo, hélas, ça ne change rien.
De toute façon j'utilisais le Dojo fourni avec le ZF.

La seule chose dont je sois certain c'est que ça fonctionnait avec la 1.8.2 et plus avec la 1.8.4
Et que ça remarche si je garde la 1.8.4 mais que je prends pour Dojo les classes de la 1.8.2
Et que le problème ne concerne que les filterselect.

Dés que j'aurais un moment je vais créer un projet minimaliste avec seulement deux filterselect chainées et le ZF1.8.4 pour essayer de comprendre d'où vient le problème et aussi pour fournir le source et un accès à cette ressource pour voir si quelqu'un voit d'où vient l'erreur...

Je ne vois plus que ça.

Dernière modification par Jean-Marc Rigade (14-07-2009 02:52:10)

Hors ligne

 

#16 14-07-2009 03:22:38

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: ZF[1.8.4]Dojo Filteringselect

Pour le moment et pour ne pas perturber les autres sites qui tournent sur le serveur (un dédié) j'ai collé les classes Dojo V1.8.2 dans le répertoire library de l'application pour qu'elle soient prisent en priorité à la place de celles de la V1.8.4.

Ceci dit, je paierais cher (sérieusement) pour savoir pourquoi des traitements fonctionnent parfaitement, sans me vanter tout est nickel (dés que le site sera en prod je vous communiquerais l'adresse du machin) avec la 1.8.2 et plus avec la V1.8.4, tout ça sans message d'erreur...

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