Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
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->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\wamp\www\CoursThales\V1\membres\index.php(113): Zend_Controller_Front->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
Pages: 1