Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je débute avec Zend_Dojo et je n'arrive pas à comprendre comment initialiser Dojo correctement.
1 - pourquoi le module parseOnLoad":true" est obligatoire ? sinon dojo ne se charge pas
2- pourquoi lorsque j'appelle un element de dojo la ligne dojoType="dijit.form.DateTextBox" ne figure pas une fois mon code rendu ?
3 - il me semblait avoir lu que les module ( exemple element dateTextbox 'foo') était inclut automatiquement des l'utilisation de addElement('DateTextBox',..
Car si j'enleve le view->dojo()->requireModule('dijit.form.DateTextBox'); rien ne fonctionne.
Voici mon exemple complet :
<?php /* * TEST DOJO * */ // *************************** ERREURS ********************************* // Affiche Les Erreurs en Prod, En attendant le changement de config dans Apache ini_set('display_errors', 1); ini_set('display_startup_errors', 1); // *************************** DATES ********************************* date_default_timezone_set('Europe/Paris'); // *************************** AUTOLOAD LIBRARY ********************************* $include_path = get_include_path(); set_include_path($include_path . PATH_SEPARATOR . '../Library/'); require 'Zend/Loader/Autoloader.php'; // Déclaration du chargement automatique $autoloader = Zend_Loader_Autoloader::getInstance(); // setup of locale $locale = new Zend_Locale('fr_CH'); Zend_Registry::set('Zend_Locale', $locale); // VIEW $view = new Zend_View(); $view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper'); // initialise dojo Zend_Dojo::enableView($view); $view->dojo()->enable(); $view->dojo()->setDjConfigOption('parseOnLoad', true); $view->dojo()->addStyleSheet('Css/tundra.css'); $view->dojo()->setDjConfigOption('locale', 'fr'); $view->dojo()->setLocalPath('dojo/dojo.js'); $view->dojo()->requireModule('dojo.parser'); $view->dojo()->requireModule('dijit.form.DateTextBox'); // ->dojo()->addStylesheetModule('dijit.themes.tundra'); echo $view->dojo(); // FORMULAIRE $form = new Zend_Dojo_Form(); Zend_Dojo::enableForm($form); // Activer Dojo pour tous les formulaires : foreach ($form->getSubForms() as $subForm) { Zend_Dojo::enableForm($subForm); } $form->setAction('') ->setMethod('POST') ->setName('formAction') ->setAttrib('id','formAction') ->setView($view); $form->addElement( 'DateTextBox', 'foo', array( 'label' => 'Date:', 'required' => true, 'invalidMessage' => 'Invalid date specified.', 'formatLength' => 'long', ) ); // Activer Dojo pour le formulaire : Zend_Dojo::enableForm($form); //// Pour tout le formulaire (à appeler dans la méthode init par exemple) //$form->addElementPrefixPath('Wiip_Filter', 'Wiip/Filter', Zend_Form_Element::FILTER); $action = new Zend_Form_Element_Hidden('actionId'); $action ->setValue('1'); $birthday = new Zend_Dojo_Form_Element_DateTextBox('birthday'); $birthday->setLabel('Birthday'); $birthday->setAttrib('dojoType','dijit.form.DateTextBox'); $form->addElements(array($action,$birthday)); $form->addElement('submit', 'submit',array('label' => 'Valider')); // Pour un élément en particulier //$form->date->addPrefixPath('Wiip_Filter', 'Wiip/Filter/', Zend_Form_Element::FILTER); $tab = array("date"=>"2008-12-09"); $form->populate($tab); echo "<body class='tundra'>"; echo "<div>"; echo $form; echo $form->birthday->getValue(); echo "</div>";
Merci pour votre aide.
Dernière modification par alphonix (20-01-2010 12:14:30)
Hors ligne
Pages: 1