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