Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-10-2011 21:14:53

cyrilar
Nouveau membre
Date d'inscription: 26-10-2011
Messages: 1

Intégration de dojo

Bonjour,
Je développe une application avec zend et j'aimerais utiliser dojo.
J'ai donc fait ce qui suit.

Bootstrap.php :

Code:

public function _initViewHelpers()  
{  
    $this->bootstrap('layout');  
    $layout = $this->getResource('layout');  
    $view = $layout->getView();

    $view->addHelperPath('Zend/Dojo/View/Helper',
                                    'Zend_Dojo_View_Helper');

    $view->dojo()->enable();  
}

mon layout.phtml

Code:

<?php echo $this->doctype() ?>
<html>
    <head>
    <?php echo $this->headTitle() ?>
    <?php echo $this->headMeta() ?>
    <?php echo $this->headLink() ?>
    <?php echo $this->headStyle() ?>
    <?php if ($this->dojo()->isEnabled()){
        $this->dojo()->setLocalPath('/js/dojo/dojo.js')
                     ->addStyleSheetModule('dijit.themes.claro');
        echo $this->dojo();
       }
    ?>
    <?php echo $this->headScript() ?>
</head>
<body class="claro">
    <?php echo $this->layout()->content ?>
    <?php echo $this->inlineScript() ?>
</body>

et mon  index.phtml :

Code:

<script type="text/javascript">

dojo.addOnLoad(function() {
    // our test data store for this example:
    var store4 = new dojo.store.JsonRest({
        target: '/guestbook/test'
    });

    storeData =  new dojo.data.ItemFileReadStore( 
            { data:store4 }
        ); 

    // set the layout structure:
    var layout4 = [{
        field: 'Title',
        name: 'Title of Movie',
        width: '200px'
    },
    {
        field: 'Year',
        name: 'Year',
        width: '50px'
    },
    {
        field: 'Producer',
        name: 'Producer',
        width: 'auto'
    }];

    // create a new grid:
    var grid4 = new dojox.grid.DataGrid({
        query: {
            Title: '*'
        },
        store: storeData,
        clientSort: true,
        rowSelector: '20px',
        structure: layout4
    },
    document.createElement('div'));

    // append the new grid to the div "gridContainer4":
    dojo.byId("gridContainer4").appendChild(grid4.domNode);

    // Call startup, in order to render the grid:
    grid4.startup();
});

<div id="gridContainer4" style="width: 100%; height: 100%;">
</div>

<?php // setup required dojo elements:
$this->dojo()->enable()
             ->setDjConfigOption('parseOnLoad', true)
             ->requireModule('dojo.store.JsonRest')
             ->requireModule('dojo.data.ObjectStore')
             ->requireModule('dojo.data.ItemFileReadStore')
             ->requireModule('dojox.data.QueryReadStore')
             ->requireModule('dojox.grid.DataGrid')
             ->addStyleSheet('/js/dojox/grid/resources/claroGrid.css')
             ->addStyleSheet('/js/dojox/grid/resources/Grid.css'); ?>

Quand j'essaie d'accéder à localhost/guestbook, la page est rendue mais pas de datagrid, c'est comme si le javascript n'était pas activé...
L'url localhost/guestbook/test renvoie un objet json bien construit.
Et dans firebug, aucune erreur javascript, et les script sont bien chargés (dojo.js et ses modules) ainsi que les feuilles css.
Je ne comprend pas ce qu'il se passe, si quelqu'un pourrait me donner une piste smile
Merci!

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