Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 21-01-2009 14:27:40

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

[1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Bonjour,

j'ai dans une Zend_Form :

Code:

$sportifscarriere = new Zend_Dojo_Form_Element_Editor('sportids_carriere');
      $sportifscarriere->setLabel('CV sportif')

ça marche parfaitement sous FireFox, mais sous IE, il est impossible de faire de la saisie dans la zone de texte.
J'avais vu une anomalie signalée : ICI, quelqu'un peut il me dire comment contourner le problème ?
J'avais espéré que passer en 1.7.3 me règlerait ce problème, mais non...
J'ai déjà balancé pas mal de Dojo dans mon appli, alors merci de ne pas me conseiller de prendre Jquery...

Bref, au secours !!!

PS: le composant lui même (hors framework) fonctionne bien sous IE, mais pas via Zend_Dojo_Form_Element_Editor, j'imagine donc que le code généré n'est pas correct. S'il y a des classes du framework à modifier, merci de me mettre sur la piste...

Dernière modification par Jean-Marc Rigade (21-01-2009 20:58:18)

Hors ligne

 

#2 22-01-2009 11:00:36

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

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Je sais que ma question ne date que d'hier, mais je ne parviens pas à modifier la façon dont le ZF génère son code de formulaire pour que ça passe sous IE... pfff
Est-ce bien une anomalie reconnue ?

Hors ligne

 

#3 22-01-2009 11:14:13

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Salut,

Tu n'as aucun moyen par un module complémentaire IE7 (console javascript) de cibler plus précisément l'erreur qui est générée ?

C'est difficile de t'aider comme ça smile


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#4 22-01-2009 13:09:39

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

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

En fait, c'est bien ça le drame (bon j'exagère un peu, mais quand même)
Il n'y a aucune erreur générée...
La zone de texte ne permet simplement pas de saisir quoi que ce soit dedans....
Alors que dans FireFox, pas de problème...

Donc dans IE, pas d'erreur, la saisie est impossible, c'est tout..
Le code dans la form :

Code:

$sportifscarriere = new Zend_Dojo_Form_Element_Editor('sportids_carriere');
      $sportifscarriere->setLabel('CV sportif')

Et le code généré, je le trouve assez étrange, non ?  :

Code:

<p>
<label for="textarea" class="optional">CV sportif</label>
<input id="textarea" name="sportids_carriere" value="Année" type="hidden" />
<textarea height="150" id="textarea-Editor" cols="40" rows="3" name="sportids_carriere[Editor]" type="text">
Année 
</textarea>
</p>

Alors que si je fais une page simple, sans utiliser Zend_Dojo_Form, comme ceci :

Code:

<script type="text/javascript">
    dojo.require("dijit.Editor");
    dojo.require("dojo.parser");
</script>
<div style="border: 1px solid #ccc">
  <textarea dojoType="dijit.Editor"
    styleSheets="/dojotoolkit/dojo/resources/dojo.css">
    <p>
     Quelque chose
    </p>
  </textarea>
</div>

ça fonctionne parfaitement sous IE et FF...
J'en déduis que c'est le code généré qui pose problème à IE (sans pour autant avoir un message d'erreur...)

Voilà, j'en suis là.

Hors ligne

 

#5 22-01-2009 13:21:40

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

C'est très difficile de t'aider.

Concernant le HTML, c'est difficile de dire s'il est étrange ou non, tout dépend comment tout ça est géré derrière.

Tu ne peux pas mettre à dispo le bout de code concerné sur un serveur de test ou autre ?

Ou alors que quelqu'un possédant une base pour l'utilisation des composants Dojo teste le code et regarde.


A+ benjamin.

Dernière modification par Delprog (22-01-2009 13:23:55)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#6 22-01-2009 22:35:08

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

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Merci beaucoup pour ton aide.
Je l'accepte volontiers.
J'ai avancé depuis, et je pense avoir trouvé l'origine du problème, mais je ne vois pas comment le résoudre.

J'ai mis une coquille vide du projet sur un serveur avec simplement ce qui pose problème.
Donc le dialogue dans une version qui fonctionne correctement avec IE et FF :
http://ns351791.ovh.net/dum/public/gene … ndex/index
Et la version qui ne fonction pas sous IE mais uniquement avec FF :
http://ns351791.ovh.net/dum/public/gene … ndex/style
La seule différence entre ces deux version est que dans le deuxième cas le formulaire est encadré par <div> :

Code:

<div id="unformulaire">
<?php echo $this->maforme; ?>
</div>

avec le style suivant qui permet d'aligner les zones à droite :

Code:

#unformulaire
{
    display: block;
    width: auto;
    float: left;
    padding-right: 10%;
    text-align: right;
}

J'imagine qu'il y a de ma part une connaissance insuffisante de CSS.
Ceci étant dit, le problème n'apparait que sur IE et uniquement avec Zend_Dojo_Form_Element_Editor.

Donc, un coup de pouce à la recherche d'un CSS qui ne ruine pas les zones Dojo avec IE, je ne suis pas contre !

Hors ligne

 

#7 22-01-2009 23:41:49

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Bonsoir,

Tu pourrais faire un zip de tes liens et le mettre à dispo ?


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#8 23-01-2009 09:57:14

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

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Bonjour,

j'ai zippé l'ensemble du projet en vidant le répertoire dojo de son contenu (dijit,dojo,dojox,util) pour limiter la taille.
Tu peux le récupérer à cette adresse : http://ns351791.ovh.net/down/

Le CSS casse uniquement la zoe Zend_Dojo_Element_Editor, c'est curieux.
En tout cas merci de ton aide.

Hors ligne

 

#9 23-01-2009 11:14:17

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Salut,

Je suppose que tu avais déjà vu que c'est le float qui pose problème, et que tu cherches plutôt la raison smile

Il faut évidemment que tu puisses positionner en flottant si tu en as envie, je regarde les CSS et je te dis si je vois quelquechose.

Par contre si tu cherches à aligner la barre d'outil de l'Editeur Dojo à droite, le float n'est pas nécessaire.

A+ benjamin.

Dernière modification par Delprog (23-01-2009 11:16:03)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#10 23-01-2009 11:29:35

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

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Oui, si on retire la balise <div id="unformulaire">, alors la zone d'édition fonctionne correctement.

En fait le but était d'avoir mes zones alignées à droite, vu que dans le formulaire complet il y a une dizaine de champs à saisir...
Bon, pour ne rien te cacher, pour moi, l'idéal serait d'avoir mes labels alignés à gauche et mes champs de saisie aligné à droite et en face de leurs labels.
Comme dans un tableau quoi, mais sans le tableau.

De plus je tiens à utiliser les possibilités de Zend_Form qui évitent pas mal de code pour la validation de la saisie.
Bon en contrepartie, quand on est comme moi assez limite sur le CSS, ça complique pas mal le challenge...

Hors ligne

 

#11 23-01-2009 12:04:44

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

En fait, à ce que je vois Dojo crée une iframe pour le textarea du RichEdit, je me demande si ce n'est pas le comportement du float sur cette iframe qui est bizarre sous IE.

Après pour ce qui est des labels et de tes champs, tu n'as pas besoin de spécifier de float sur le calque contenant l'ensemble du formulaire.

Tu devrais créer un calque conteneur, avec une largeur définie ou non selon ce que tu veux faire.

Ensuite, je suppose que tu fais ça avec des décorateurs, mais il faut englober chaque "ligne de formulaire" (=un label + son champ) dans un calque sur lequel tu fou la propriété overflow:hidden;
Ensuite sur le label un float:left; et sur le champ un float:right; (si j'ai bien compris ce que tu veux faire).

Attention par contre avec les positionnements flottants et IE.
Si tu décides de tout positionner en flottant, tu risques de te confronter à certains cas de figures, comme par ex. :

Code:

<div class="toto">
    <div class="truc">
        <div class="truc-gauche"></div>
        <div class="truc-droite">
            <div class="truc-droite-gauche"></div>
            <div class="truc-droite-droite"></div>
        </div>
    </div>
</div>

et que tu as en css :

Code:

.toto {width:500px;}

.truc {width:100%; overflow:hidden;}
.truc-gauche {float:left;}

.truc-droite {float:right; overflow:hidden;}
.truc-droite-gauche {float:left;}
.truc-droite-droite {float:right}

IE risque de très mal le gérer pris comme ça, par défaut il ne gère pas bien les imbrications de positionnements flottants (c'est à dire des flottants dans des flottants). Il faudra donc user de la propriété CSS clear:both; dans les calque flottants qui doivent en contenir d'autres.

Code:

.truc-droite {float:right; overflow:hidden; clear:both;}

Ca n'a pas vraiment de rapport avec le sujet, ni le forum, mais comme je te vois bien partir dans des positionnements flottants et que tu as l'air assez frileux avec le CSS, je me permet de t'informer avant que tu ne perdes des heures.

Après concernant ton problème d'origine, c'est très difficile à cibler, je me dis que c'est peut-être le float sur l'iframe. Peut-être que tu peux faire un report je ne sais pas.

En tout cas le float sur le calque global n'est pas nécessaire, même si ça ne devrait pas poser de problème smile


A+ benjamin.

Dernière modification par Delprog (23-01-2009 12:05:08)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#12 23-01-2009 12:29:10

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

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Je vais regarder ça de plus près pour les CSS, de toute façon je n'ai pas le choix vu le problème actuel.
Je reste tout de même étonné par le HTML généré par l'utilisation de l'éditeur Dojo :

Code:

<input id="textarea" name="sportids_carriere" value="Année" type="hidden" /><textarea height="150" id="textarea-Editor" cols="40" rows="3" name="sportids_carriere[Editor]" type="text">Année</textarea>

Ce qui règlerait mon problème, et tant pis si ce n'est pas conforme, c'est d'avoir mon formulaire dans un tableau.
Mais j'ai beau récupérer des exemples de Decorator pour Zend_Form censés me mettre tout le formulaire dans un tableau, ça ne fonctionne pas bien (si tu as un exemple complet qui fonctionne vraiment, je suis preneur).

Il y a toujours la possibilité d'utiliser une méthode présentée ici (getFormModeWrite) qui permet de gérer les zones du formulaire de façon individuelle, mais on perd une partie des fonctionnalités de Zend_Form.

Ceci dit je préfèrerais en rester à CSS avec des trucs propres, mais faut avouer que perdre autant de temps pour aligner un malheureux formulaire, je trouve ça fou. Merci IE...

En tout cas merci pour ton aide et peut être que ça va éclairer d'autres personnes dans la même situation.

Dernière modification par Jean-Marc Rigade (23-01-2009 12:52:17)

Hors ligne

 

#13 23-01-2009 12:37:25

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Désolé mais je n'utilise pas Zend_Form, je ne serai pas d'une grande aide à ce niveau.

Je ne suis pas très friand de ce composant. A la limite s'il permettait de configurer des validateurs et des filtres par "id" de champs de formulaire sans générer le html je serai preneur, mais pas pour l'instant smile

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#14 23-01-2009 12:52:34

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

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Je viens de virer le 'float' et plus de problème. Tout est aligné à droite, comme avant. Bon, visuellement ce n'est pas exactement l'idéal, mais au moins ça passe sous IE : ICI, et ça me laisse le temps de réfléchir à la mise en page "fine" plus tard. Le problème est que je n'ai jamais le temps de me pencher la mise en forme et que Zend_Form oblige à jongler avec les CSS. Et comme dit Norky, si tu veux utiliser le ZF, tu dois être champion partout. Dans une autre vie, peut-être...

Hors ligne

 

#15 23-01-2009 13:51:31

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Petite note personnel:

Je te conseille l'addon CSSViewer de Firefox 3 couplé avec Firebug pour mettre au point tes css.

Comme ça tu fais tes modifs à la volée dans Firebug (avec résultat en temps réel), et quand tu es content tu écris ce qu'il faut dans le "vrai fichier" smile

A+


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#16 26-01-2009 19:33:00

lenny.dadu
Nouveau membre
Date d'inscription: 17-12-2008
Messages: 5

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

bonjour,
j'ai un souci avec l'editor de dojo généré par zend:

Sur certain IE7 on ne peut pas cliquer sur l'editeur comme s'il etait protégé.. sad
Déjà j'ai un message dans la console de firebug ("RichText should not be used with the TEXTAREA tag. See dijit._editor.RichText docs.")


je pense faire la déclaration de l'élément de dijit.editor en htm ou javascript (dans la vue du controleur .phtml). avez vous une meilleure solution?

Dernière modification par lenny.dadu (26-01-2009 19:34:08)

Hors ligne

 

#17 26-01-2009 19:37:45

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

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Essaye-tu de l'utiliser dans une form ?
Dans ce cas le problème doit venir d'une feuille de style, enfin peut-être.
J'ai eu le même désagrément.

Peux tu nous fournir les parties de codes concernés ?

Hors ligne

 

#18 27-01-2009 11:07:53

lenny.dadu
Nouveau membre
Date d'inscription: 17-12-2008
Messages: 5

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Mon problemme n'est plus celui http://framework.zend.com/issues/browse/ZF-4399 (Zend_Dojo_Form_Element_Editor always post invalid data on IE).
j'ai corrigé grace a ma fonction javascript changeeditor() (copie le contenu de l'editeur vers un input Hidden)

Mon probleme est que j'ai certain IE ou l'on ne peut meme pas cliquer sur l'editeur! yikes , genre l'editeur est une image fixe.. ou ya un calque devant qui empeche d'y acceder..

Sinon j'utilise bien la class Zend_Dojo_Form, et je pense quelle génére mal l'element digit de dojo. (TEXTAREA pas valide).

enfin voila mon form :

Code:

<script type='text/javascript'>
//<!--
function changeEditor(){

    if (FIREFOX3 | FIREFOX2 | AUTRE) {dojo.byId('EDITOHIDDEN').value = dojo.byId('EDITO-Editor_iframe').contentDocument.body.innerHTML;}
    if (IE7 | IE6) {dojo.byId('EDITOHIDDEN').value = dojo.byId('EDITO-Editor_iframe').Document.documentElement.childNodes[1].childNodes[0].innerHTML;}
    
}
//-->
</script>
<?php
class Formulaires_UtilEdito extends Zend_Dojo_Form 
{
    public function __construct($options = null)
    {
        
        $conf = Zend_Registry::get('config');
        
        parent::__construct($options);
        $this->setName('utilEdito');
        $this->setMethod('post');

        $edito = new Zend_Dojo_Form_Element_Editor('EDITO');
        $edito->setLabel('Edito')
        ->setAttrib('onchange', "changeEditor();")
        ->setAttrib('style','width:250px;')
        ;
                
         $editoH = new Zend_Form_Element_Hidden('EDITOHIDDEN'); 
          
        $submit = new Zend_Dojo_Form_Element_Button('submitedito');
        $submit->dijitParams=array('label' => "Mettre à jour");
        $submit->setAttrib('onclick', "submitForm('utilEdito','utilEditoresponse','".$conf->pathweb."skillblog/compte/utilchangeedito-ajax');return true");

        
        $this->addElements(array($edito,$editoH));
     
        $this->addElement($submit);

    }
}
?>

Hors ligne

 

#19 27-01-2009 12:26:57

lenny.dadu
Nouveau membre
Date d'inscription: 17-12-2008
Messages: 5

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

j'ai resolu mon problemme d'editeur non accessible :p...

c'etait la declaration de mon dojo dans le layout général de zend.

Code:

if ($this->dojo()->isEnabled()) 
         { 
             $this->dojo() 
             //->setLocalPath("/js/dojo/dojo.js") 
             ->addStyleSheetModule('dijit.themes.nihilo')
             ->setCdnVersion("1.2.3") 
             ->setLocalPath($conf->pathweb.'scripts/dojo-release-1.2.3/dojo/dojo.js')
             ->setDjConfigOption('parseOnLoad', false)
             ->requireModule('dojo.io.iframe')
             ->requireModule('dojo.fx')
             ->requireModule('dojox.fx')
             ->requireModule('dojox.grid.Grid')
             ->requireModule('dojox.grid.DataGrid')
             ->requireModule("dojo.data.ItemFileReadStore")
             ->requireModule("dojox.data.QueryReadStore")
             ->requireModule("dijit.Dialog")
             ->requireModule("dijit.layout.BorderContainer")
             ->requireModule("dijit.TitlePane")
             ->requireModule("dijit.layout.ContentPane")
             ->requireModule("dojox.layout.DragPane")
             ->requireModule("dojox.layout.GridContainer")
             ->requireModule("dijit.layout.LayoutContainer")
             ->requireModule("dojox.html.styles")
             ->requireModule("dojo.dnd.Container")
             ->requireModule("dojo.dnd.Manager")
             ->requireModule("dojo.dnd.Source")

j'avai mis true : ->setDjConfigOption('parseOnLoad', false)

Hors ligne

 

#20 26-03-2010 16:40:22

EdMo
Nouveau membre
Date d'inscription: 26-03-2010
Messages: 4

Re: [1.7.3]Zend_Dojo_Form_Element_Editor et IE (important !)

Bonjour,

J'ai aussi un problème avec l'Editor Dojo comme indiqué dans un autre message (http://www.z-f.fr/forum/viewtopic.php?pid=26384#p26384).

La barre d'outil n'apparait pas.

J'imagine que j'ai dû mal configurer quelque chose, surtout quand je vois la déclaration dojo de lenny.dadu.

Moi j'ai simplement écrit :

if ($this->dojo()->isEnabled()) {
                $this->dojo()
                   ->setLocalPath($this->baseUrl . '/public/js/dojo/dojo.js')
                   ->addStyleSheetModule('dijit.themes.tundra');
            echo $this->dojo();
}

Faut-il impérativement ajouter toutes les déclarations que tu mets lenny.dadu ? Mon problème vient peut-être de là...
Pourtant dans les tutos que j'ai vu, on propose de faire comme moi...
Merci d'avance à ceux qui pourront me dépanner.

Dernière modification par EdMo (26-03-2010 16:40:59)

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