Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je rencontre des difficultés dans le paramétrage de Zend_Dojo : erreur "Plugin by name Dojo was not found in the registry"
Elles doivent venir de la déclaration du addHelperPath, que je fais au niveau bootstrap. Je le fais sur le layout, mais je ne sais pas où et comment le faire pour la vue.
Merci d'avance pour votre aide éclairée....
La structure du projet :
---------------------------------
- bootstap : index.php
-----------------------------------
$layout = Zend_Layout::startMvc(array('layoutPath' => 'mon_path_layout',
'layout'=> 'nom_du_layout',
'contentkey' => 'nom_du_contentkey')) ;
// Indique aux views où trouver le ViewHelper de Zend_Dojo
// l'erreur doit venir de $layout->getView()->addHelperPath ci dessous
$layout->getView()->addHelperPath('Zend/Dojo/View/Helper/','Zend_Dojo_View_Helper');
------------------
- dans le layout :
------------------
<?php echo $this->partial('header.phtml') // configuration de tout ce dont Dojo a besoin ?>
<body class="<?php echo Globals::getConfig()->css->theme; // passage du theme CSS dijit ?>">
<?php
// affichage de flashmessenger s'il existe (placé dans le main layout)
if (!empty($this->message)){
echo "<div id=\"error-message\">".$this->message."</div>";
}
// ajout du contenu
echo $this->layout()->contenu ?>
</body>
</html>
----------------------
- dans le controlleur
-----------------------
public function testdojoAction()
{
$form = new forms_TestdojoForm1() ;
// affichage ou validation du formulaire
if ($this->_request->isPost()){
$formData = $this->_request->getPost();
if ($form->isValid($formData)) {
// Deuxième étape, vérification du user/pwd
echo "Succès!!!! Validé !!!" ;
$this->view->form = $form; // remplacer par une redirection vers un autre controller....
// exit;
} else {
// affiche la form avec les données saisies
$form->populate($formData);
}
}
$this->view->form = $form;
}
--------------------------------------
- dans la classe forms_TestdojoForm1 (test extrait de la doc Zend_Dojo)
--------------------------------------
<?php
class forms_TestdojoForm1 extends Zend_Dojo_Form
{
/**
* Options to use with select elements
*/
protected $_selectOptions = array(
'red' => 'Rouge',
'blue' => 'Bleu',
'white' => 'Blanc',
'orange' => 'Orange',
'black' => 'Noir',
'green' => 'Vert',
);
/**
* Form initialization
*
* @return void
*/
public function init()
{
$this->setMethod('post');
$this->setAttribs(array(
'name' => 'masterForm',
));
$this->setDecorators(array(
'FormElements',
array('TabContainer', array(
'id' => 'tabContainer',
'style' => 'width: 200px; height: 500px;',
'dijitParams' => array(
'tabPosition' => 'top'
),
)),
'DijitForm',
));
$textForm = new Zend_Dojo_Form_SubForm();
$textForm->setAttribs(array(
'name' => 'textboxtab',
'legend' => 'Text Elements',
'dijitParams' => array(
'title' => 'Text Elements',
),
));
$textForm->addElement(
'TextBox',
'textbox',
array(
'value' => 'some text',
'label' => 'TextBox',
'trim' => true,
'propercase' => true,
)
)
->addElement(
'DateTextBox',
'datebox',
array(
'value' => '2008-07-05',
'label' => 'DateTextBox',
'required' => true,
)
)
;
$this->addSubForm($textForm, 'textboxtab');
}
}
?>
-------------------------
- vue appelée par le controlleur devant s'afficher dans le "contenu" du layout
-------------------------
<?php
echo "Affichage du formulaire DOJO de test <br>";
// déclaration de Dojo
$this->dojo()->enable();
echo $this->form ;
?>
Merci par avance,
Jean
Dernière modification par jean (29-09-2008 13:39:02)
Hors ligne
Pour le fichier de bootstrap, j'active Dojo pour la vue d'une autre façon:
$layoutView = Zend_Layout::getMvcInstance()->getView();
Zend_Dojo::enableView($layoutView);
$layoutView->dojo()->setDjConfigOption('locale', 'fr');
$layoutView->dojo()->addStylesheetModule('dijit.themes.tundra');
Et dans le fichier du layout, il suffit d'ajouter ceci dans le header pour que Dojo soit fonctionnel:
echo $this->dojo();
Et ne pas oublier de mettre le thème dans la balise body:
<body class="tundra">
Dernière modification par neni (30-09-2008 02:26:09)
Hors ligne
Pages: 1