This has been working fine, not sure why it’s stopped all of a sudden.. Basically I am getting the error:
Notice: Duplicate dijit ID detected for id "email; temporarily generating uniqid" in ..\Zend\Dojo\Form\Decorator\DijitElement.php on line 171
If I look at the page source, my JS for dojo has been added twice:
var zendDijits = [{"id":"email","params":{"required":"true","dojoType":"dijit.form.ValidationTextBox"}},{"id":"password","params":{"required":"true","dojoType":"dijit.form.ValidationTextBox"}},{"id":"submit","params":{"required":"false","dojoType":"dijit.form.Button"}},{"id":"email-4c3b7d9205842","params":{"required":"true","dojoType":"dijit.form.ValidationTextBox"}},{"id":"password-4c3b7d9206311","params":{"required":"true","dojoType":"dijit.form.ValidationTextBox"}},{"id":"submit-4c3b7d9206be5","params":{"required":"false","dojoType":"dijit.form.Button"}},{"id":null,"params":{"dojoType":"dijit.form.Form"}}];
Form items are only shown once on the page, what could be causing Zend to think there are more than one of them?
Backtrace:
Notice: Duplicate dijit ID detected for id "email; temporarily generating uniqid" in ...\Zend\Dojo\Form\Decorator\DijitElement.php on line 171
Call Stack
# Time Memory Function Location
1 0.0009 370424 {main}( ) ..\index.php:0
2 0.2124 8373704 Zend_Application->run( ) ..\index.php:10
3 0.2124 8373704 Zend_Application_Bootstrap_Bootstrap->run( ) ..\Application.php:366
4 0.2125 8373760 Zend_Controller_Front->dispatch( ) ..\Bootstrap.php:97
5 0.2233 8739920 Zend_Controller_Dispatcher_Standard->dispatch( ) ..\Front.php:954
6 0.2467 9807848 Zend_Controller_Action->dispatch( ) ..\Standard.php:295
7 0.3161 12648736 Zend_Controller_Action_HelperBroker->notifyPostDispatch( ) ..\Action.php:523
8 0.3162 12649640 Zend_Controller_Action_Helper_ViewRenderer->postDispatch( ) ..\HelperBroker.php:277
9 0.3163 12649640 Zend_Controller_Action_Helper_ViewRenderer->render( ) ..\ViewRenderer.php:957
10 0.3169 12649808 Zend_Controller_Action_Helper_ViewRenderer->renderScript( ) ..\ViewRenderer.php:918
11 0.3170 12649808 Zend_View_Abstract->render( ) ..\ViewRenderer.php:897
12 0.3173 12690872 Zend_View->_run( ) ..\Abstract.php:880
13 0.3176 12692448 include( 'C:\wamp\www\cms\application\modules\default\views\auth\login.phtml' ) ..\View.php:108
14 0.3177 12692448 Zend_Form->__toString( ) ..\Form.php:0
15 0.3177 12692448 Zend_Form->render( ) ..\Form.php:2898
16 0.3178 12692528 Zend_Form_Decorator_FormElements->render( ) ..\Form.php:2882
17 0.3181 12692824 Zend_Form_Element->render( ) ..\FormElements.php:101
18 0.3181 12692904 Zend_Dojo_Form_Decorator_DijitElement->render( ) ..\Element.php:2016
19 0.3182 12693488 trigger_error ( ) ..\DijitElement.php:171
Turns out, that although the content wasn’t getting rendered twice, the render() function in view was. Apparently this overwrites any previous render() calls to the layout content but not the content in the registry to be used by other elements of the framework.