Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-03-2010 07:30:36

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

Zend Dojo Editor - barre d'outils invisible

Bonjour,
J'essaie de configurer Dojo pour utiliser Dojo Editor via Zend_Form et la barre d'outils n'apparaît pas.
J'ai suivi plusieurs tutos à la lettre, je ne comprends pas.

Dans le controller concerné j'ai mis :

$this->initView();
$this->view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');  Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setView($this->view);

Dans le layout :

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

Dans le formulaire :

class Form5 extends Zend_Form
{
    public function __construct($options = null)
    {
        parent::__construct($options);
        Zend_Dojo::enableForm($this);
        ...
     }
     $this->addElement('editor', 'content', array(
          'plugins'            => array('undo', '|', 'bold', 'italic'),
         'editActionInterval' => 2,
          'focusOnLoad'        => true,
          'height'             => '100px',
          'inheritWidth'       => true
      ));

Quand j'inspecte la page chargée avec firebug je vois que le
echo this->dojo donne :

//<!--
3dojo.require("dijit.form.DateTextBox");
4 dojo.require("dijit.Editor");
5 dojo.require("dijit.form.Form");
6 dojo.require("dojo.parser");
7dojo.addOnLoad(function() {
8 var form = zend.findParentForm(dojo.byId('content'));
9 dojo.connect(form, 'onsubmit', function () {
10 dojo.byId('content').value = dijit.byId('content-Editor').getValue(false);
11 });
12});
13 dojo.addOnLoad(function() {
14 dojo.forEach(zendDijits, function(info) {
15 var n = dojo.byId(info.id);
16 if (null != n) {
17 dojo.attr(n, dojo.mixin({ id: info.id }, info.params));
18 }
19 });
20 dojo.parser.parse();
21});
22if (zend == undefined) {
23 var zend = {};
24}
25zend.findParentForm = function(elementNode) {
26 while (elementNode.nodeName.toLowerCase() != 'form') {
27 elementNode = elementNode.parentNode;
28 }
29 return elementNode;
30};
31 var zendDijits = [{"id":"birthday","params":{"dojoType":"dijit.form.DateTextBox"}},{"id":"content-Editor","params":{"plugins":"[\"undo\",\"|\",\"bold\",\"italic\"]","editActionInterval":2,"focusOnLoad":"true","height":"100px","inheritWidth":"true","dojoType":"dijit.Editor"}},{"id":"foo","params":{"invalidMessage":"Invalid date specified.","constraints":"{\"formatLength\":\"long\"}","required":"true","dojoType":"dijit.form.DateTextBox"}},{"id":"Form5","params":{"dojoType":"dijit.form.Form"}}];
32//-->


Et mon textarea généré par Zend_Form :

<textarea type="text" name="content[Editor]" id="content-Editor" plugins="[undo,|,bold,italic]" editactioninterval="2" focusonload="true" height="100px" inheritwidth="true" dojotype="dijit.Editor"></textarea>

Mais pas de barre d'outils au-dessus du textarea... Bizarre non ?

Si quelqu'un a une idée pour aider le débutant que je suis. Merci d'avance.

Edouard

Dernière modification par EdMo (26-03-2010 07:32:03)

Hors ligne

 

#2 27-03-2010 09:55:42

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

Re: Zend Dojo Editor - barre d'outils invisible

Pour ceux qui rencontreraient le même problème, il s'agit visiblement de fichiers javascripts manquant ou mal placé.
J'ai trouvé quelqu'un ayant le même problème que moi mais qui a mieux compris que moi : http://forums.zend.com/viewtopic.php?f=69&t=2302

Firebug m'affiche en effet :
Invalid template: <br /> <b>Fatal error</b>: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (js)' in C:\wamp\www\CoursThales\V1\membres\library\Zend\Controller\Dispatcher\Standard.php:241 Stack trace: #0 C:\wamp\www\CoursThales\V1\membres\library\Zend\Controller\Front.php(934): Zend_Controller_Dispatcher_Standard-&gt;dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\wamp\www\CoursThales\V1\membres\index.php(113): Zend_Controller_Front-&gt;dispatch() #2 {main} thrown in <b>C:\wamp\www\CoursThales\V1\membres\library\Zend\Controller\Dispatcher\Standard.php</b>  on line <b>241</b><br />


le ZF semble donc chercher les fichiers manquants en utilisant ses propres conventions de nommage.

En chargeant les fichiers dojo depuis CDN cela marche mieux.

Mais je ne comprends pas bien pourquoi le ZF prend la main sur le js...

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