Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-09-2008 13:27:41

jean
Membre
Date d'inscription: 25-08-2008
Messages: 107

[Zend_Dojo][ZF 1.6.1] Probleme de paramétrage de Zend_Dojo

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

 

#2 30-09-2008 02:19:51

neni
Membre
Lieu: Nantes
Date d'inscription: 12-11-2007
Messages: 27

Re: [Zend_Dojo][ZF 1.6.1] Probleme de paramétrage de Zend_Dojo

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages