Goedenavond!
Ik zit vast met het implementeren van het ZF met Dojo. Ik wil een registratieformulier maken en hier
gebruik maken van Dojo elementen, zoals bijvoorbeeld de datetimepicker e.d.. Als ik deze declareer
in de indexAction geeft de php geen fout, worden de elementen wel weergegeven; maar niet omgezet
naar javascript o.i.d.. Eerlijk gezegd heb ik geen idee waarom het niet werkt
..
Wat ik begreep uit meerdere tutorials/forum posts was dat in de bootstrap Dojo moet worden gekoppeld
aan de view, daarna de form dojo form moet extenden en de .js en de .css aangezet moeten worden in
de header.phtml. Dit heb ik ook allemaal gedaan en dan krijg ik de volgende pagina:

Misschien dat het dan beter overkomt wat ik bedoel met dat de elementen niet worden omgezet.. Hij geeft ze wel weer.
De HTML code van deze div is:
** bootstrap.php
[code=php]
<?php
// in here we define the root directory of our site
// is the directory above htdocs
define("SITE_ROOT", dirname($_SERVER['DOCUMENT_ROOT'].PATH_SEPARATOR));
/* Report all errors directly to the screen for simple diagnostics in the dev environment */
error_reporting(E_ALL|E_STRICT);
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
// Set our include path
$include_path = get_include_path().PATH_SEPARATOR;
$include_path .= SITE_ROOT.'/library/'.PATH_SEPARATOR;
$include_path .= SITE_ROOT.'/application/'.PATH_SEPARATOR;
define('CONFIG_PATH', SITE_ROOT . '/application/config.ini');
set_include_path($include_path);
/* Set up autoload so we don't have to explicitely require each Zend Framework class */
require_once "Zend/Loader.php";
Zend_Loader::registerAutoload();
$view = new Zend_View();
$view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');
//$view->addHelperPath('Zend/Dojo/View/Helper', 'Zend_Dojo_View_Helper');
Zend_Dojo::enableView($view);
$view->dojo()->setDjConfigOption('usePlainJson', true)
->addStylesheetModule('dijit.themes.tundra')
->setLocalPath('/includes/dojo/dojo/dojo.js');
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
$viewRenderer->setView($view);
Zend_Loader::loadClass('Zend_Controller_Front');
$front = Zend_Controller_Front::getInstance();
$front->throwExceptions(true);
$front->setControllerDirectory(SITE_ROOT.'/application/controllers/');
$front->dispatch();
[/code=php]
** StudentController.php
[code=php]
class StudentController extends Zend_Controller_Action
{
public function init()
{
// Let the ViewHelper see our 'views' directory
// $this->view->setScriptPath(VIEWS_DIR);
}
public function indexAction()
{
$form1 = new Zend_Dojo_Form();
$form1->setMethod('post')->setAction("/");
$form1->addElement('DateTextBox', 'date1', array(
'label' => 'Choose a date:',
'datePattern' => 'yyyy-MM-dd',
'validators' => array('Date'),
'required' => true
))
->addElement('TimeTextBox', 'time1', array(
'label' => 'Choose a time:',
'timePattern' => 'HH:mm:ss',
))
->addElement('NumberSpinner', 'number1', array(
'label' => 'Choose a number:',
'value' => 0,
'smallDelta' => 1,
'min' => 0,
'max' => 30,
'defaultTimeout' => 100,
'timeoutChangeRate' => 100,
))
->addElement('HorizontalSlider', 'slide1', array(
'label' => 'Let\'s slide:',
'minimum' => 0,
'maximum' => 25,
'discreteValues' => 10,
'style' => 'width: 450px;',
'topDecorationDijit' => 'HorizontalRuleLabels',
'topDecorationLabels' => array('0%', '50%', '100%'),
'topDecorationParams' => array('style' => 'padding-bottom: 20px;'),
))
->addElement('SubmitButton', 'submit', array(
'label' => 'Submit!'
));
$this->view->form1 = $form1;
}
}
[/code=php]
** index.phtml
[code=php]
<?php echo $this->render('header.phtml'); ?>
<?php echo $this->render('student/navigatie_student.phtml'); ?>
<div id="main">
<?php
$this->dojo()->enable();
echo $this->form1;
?>
</div>
<?php /* echo $this->render('nieuws.phtml'); */ ?>
<?php echo $this->render('footer.phtml'); ?>
[/code=php]
**header.phtml
[code=php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Test </title>
<?php
$this->dojo()->setLocalPath('/includes/dojo/dojo/dojo.js')
->addStyleSheetModule('dijit.themes.tundra');
echo $this->dojo();
?>
...........................Afgekort
<body class="tundra">
[/code=php]
Sorry voor misschien de overload aan code..
Ik hoop dat iemand weet waar het probleem ligt, zit met mijn handen in mijn haar!
Alvast
Ik zit vast met het implementeren van het ZF met Dojo. Ik wil een registratieformulier maken en hier
gebruik maken van Dojo elementen, zoals bijvoorbeeld de datetimepicker e.d.. Als ik deze declareer
in de indexAction geeft de php geen fout, worden de elementen wel weergegeven; maar niet omgezet
naar javascript o.i.d.. Eerlijk gezegd heb ik geen idee waarom het niet werkt
Wat ik begreep uit meerdere tutorials/forum posts was dat in de bootstrap Dojo moet worden gekoppeld
aan de view, daarna de form dojo form moet extenden en de .js en de .css aangezet moeten worden in
de header.phtml. Dit heb ik ook allemaal gedaan en dan krijg ik de volgende pagina:

Misschien dat het dan beter overkomt wat ik bedoel met dat de elementen niet worden omgezet.. Hij geeft ze wel weer.
De HTML code van deze div is:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> </title> <style type="text/css"> <!-- @import "/includes/dojo/dijit/themes/tundra/tundra.css"; --> </style> <script type="text/javascript"> //<!-- var djConfig = {"usePlainJson":true}; //--> </script> <script type="text/javascript" src="/includes/dojo/dojo/dojo.js"></script> </head> <body class="tundra"> <div id="container"> </div> <div id="oranjeveld"> </div> <div id="content"> <div id="menu"> </div> <div id="main"> <form method="post" action="/"><dl class="zend_form_dojo"> <dt><label for="date1" class="required">Choose a date:</label></dt> <dd> <input id="date1" name="date1" value="" type="text"></dd> <dt><label for="time1" class="optional">Choose a time:</label></dt> <dd> <input id="time1" name="time1" value="" type="text"></dd> <dt><label for="number1" class="optional">Choose a number:</label></dt> <dd> <input id="number1" name="number1" value="0" type="text"></dd> <dt><label for="slide1" class="optional">Let's slide:</label></dt> <dd> <input id="slide1" name="slide1" value="" type="hidden"><div style="width: 450px;" id="slide1-slider" onChange="dojo.byId('slide1').value = arguments[0];"><ol id="slide1-slider-topDecoration-labels"> <li>0%</li> <li>50%</li> <li>100%</li> </ol> <div id="slide1-slider-topDecoration"></div> </div> </dd> <dt> </dt><dd> <input id="submit" name="submit" value="Submit!" type="submit"></dd></dl></form> </div> <div id="extra"></div> </div> <div id="footer"> <p> © 2009 | </p> </div> </div> </body> </html> |
** bootstrap.php
[code=php]
<?php
// in here we define the root directory of our site
// is the directory above htdocs
define("SITE_ROOT", dirname($_SERVER['DOCUMENT_ROOT'].PATH_SEPARATOR));
/* Report all errors directly to the screen for simple diagnostics in the dev environment */
error_reporting(E_ALL|E_STRICT);
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
// Set our include path
$include_path = get_include_path().PATH_SEPARATOR;
$include_path .= SITE_ROOT.'/library/'.PATH_SEPARATOR;
$include_path .= SITE_ROOT.'/application/'.PATH_SEPARATOR;
define('CONFIG_PATH', SITE_ROOT . '/application/config.ini');
set_include_path($include_path);
/* Set up autoload so we don't have to explicitely require each Zend Framework class */
require_once "Zend/Loader.php";
Zend_Loader::registerAutoload();
$view = new Zend_View();
$view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');
//$view->addHelperPath('Zend/Dojo/View/Helper', 'Zend_Dojo_View_Helper');
Zend_Dojo::enableView($view);
$view->dojo()->setDjConfigOption('usePlainJson', true)
->addStylesheetModule('dijit.themes.tundra')
->setLocalPath('/includes/dojo/dojo/dojo.js');
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
$viewRenderer->setView($view);
Zend_Loader::loadClass('Zend_Controller_Front');
$front = Zend_Controller_Front::getInstance();
$front->throwExceptions(true);
$front->setControllerDirectory(SITE_ROOT.'/application/controllers/');
$front->dispatch();
[/code=php]
** StudentController.php
[code=php]
class StudentController extends Zend_Controller_Action
{
public function init()
{
// Let the ViewHelper see our 'views' directory
// $this->view->setScriptPath(VIEWS_DIR);
}
public function indexAction()
{
$form1 = new Zend_Dojo_Form();
$form1->setMethod('post')->setAction("/");
$form1->addElement('DateTextBox', 'date1', array(
'label' => 'Choose a date:',
'datePattern' => 'yyyy-MM-dd',
'validators' => array('Date'),
'required' => true
))
->addElement('TimeTextBox', 'time1', array(
'label' => 'Choose a time:',
'timePattern' => 'HH:mm:ss',
))
->addElement('NumberSpinner', 'number1', array(
'label' => 'Choose a number:',
'value' => 0,
'smallDelta' => 1,
'min' => 0,
'max' => 30,
'defaultTimeout' => 100,
'timeoutChangeRate' => 100,
))
->addElement('HorizontalSlider', 'slide1', array(
'label' => 'Let\'s slide:',
'minimum' => 0,
'maximum' => 25,
'discreteValues' => 10,
'style' => 'width: 450px;',
'topDecorationDijit' => 'HorizontalRuleLabels',
'topDecorationLabels' => array('0%', '50%', '100%'),
'topDecorationParams' => array('style' => 'padding-bottom: 20px;'),
))
->addElement('SubmitButton', 'submit', array(
'label' => 'Submit!'
));
$this->view->form1 = $form1;
}
}
[/code=php]
** index.phtml
[code=php]
<?php echo $this->render('header.phtml'); ?>
<?php echo $this->render('student/navigatie_student.phtml'); ?>
<div id="main">
<?php
$this->dojo()->enable();
echo $this->form1;
?>
</div>
<?php /* echo $this->render('nieuws.phtml'); */ ?>
<?php echo $this->render('footer.phtml'); ?>
[/code=php]
**header.phtml
[code=php]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Test </title>
<?php
$this->dojo()->setLocalPath('/includes/dojo/dojo/dojo.js')
->addStyleSheetModule('dijit.themes.tundra');
echo $this->dojo();
?>
...........................Afgekort
<body class="tundra">
[/code=php]
Sorry voor misschien de overload aan code..
Ik hoop dat iemand weet waar het probleem ligt, zit met mijn handen in mijn haar!
Alvast
Sowieso sneu