Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 18-03-2009 11:11:50

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

[Résolu] problème activation du dojo

Bonjour, c'est encore moi....big_smile


J'essaye d'activer le DOJO mais je n'y arrive pas.

J'ai pourtant tenté plusieurs choses :

dans mon fichier principal index.php :

Code:

$view = new Zend_View();
Zend_Dojo::enableView($view);

J'ai lu sur un autre topic que si on utilisait le viewRenderer, il fallait le spécifié, mais moi j'utilise actionStack :

Code:

$actionStack = Zend_Controller_Action_HelperBroker::getStaticHelper('actionStack');
// la section de la page, et le controleur qui va l'utiliser 

//le controlleur index va rendre l'action footerAction dans la vue footer
$actionStack->actionToStack('footer','index');

Par ailleurs, ma balise body est bien de classe tundra,

et dans mon fichier view j'ai :

Code:

if ($this->dojo()->isEnabled()){    
  $this->dojo()->setLocalPath('/html/js/dojo/dojo.js')
              ->dojo()->addStylesheetModule('dijit.themes.tundra');      
    
   }

j'ai téléchargé les javascript de dojo (alors que je croyais qu'ils étaient inclus avec Zend) et je les ai bien placé dans /monprojet/html/js/.

Dans le code source de ma page, le javascript n'est pas chargé, et les elements du formulaire sont de type simples (non dojo)...

Je suis à l'écoute de quelqu'un qui aurait une idée...

merci bien par avance.

Dernière modification par gostbuster (24-03-2009 09:15:29)


Gostbuster - Développeur WEB

Hors ligne

 

#2 18-03-2009 15:55:15

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: [Résolu] problème activation du dojo

Les infos que tu donnes sont un peu légère pour être sur de ce qu'il manque mais je pense que c'est

Code:

Zend_Controller_Action_HelperBroker::addPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');

dans ton index.php vu que tu n'utilises pas de bootstrap.

Hors ligne

 

#3 18-03-2009 16:07:12

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

Re: [Résolu] problème activation du dojo

Bonjour et merci d'avoir répondu,

Du coup je ne sais plus si j'ai un bootstrap ou non :

j'ai un index.php dans mon dossier RACINE/html/index.php

dans cet index, je passe par un frontController, et je travaille en trois couches:

RACINE/application/models
RACINE/application/views
RACINE/application/controllers

Donc je pense avoir un bootstrap, non? A moins d'avoir mal compris le concept.

Je teste ta ligne le dahu mais apparement, il me dit :

Code:

Plugin by name 'Dojo' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/;../application/views\helpers/

Je cherche donc actuellement le bon path que je dois fournir à la méthode....


Gostbuster - Développeur WEB

Hors ligne

 

#4 18-03-2009 16:20:04

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: [Résolu] problème activation du dojo

Il faut que tu ajoutes le addpath dans ton view.
Comme je ne sais pas comment tu le définis j'ai un peu de mal.

Tu devrais avoir quelque part un

Code:

        $view = new Zend_View;

alors ajoute

Code:

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

C'est la même chose mais écrite différemment.

Hors ligne

 

#5 18-03-2009 16:26:57

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

Re: [Résolu] problème activation du dojo

Rien a faire cela ne marche pas même si j'ai bien mi un new Zend_View

ci joint mon fichier index.php dans son intégralité pendant que j'essaye de trouver une solution.
Merci

Code:

<?php

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
date_default_timezone_set('Europe/Paris');

// mise en place des répertoires et chargement des classes
set_include_path('.'
    . PATH_SEPARATOR . '../library'
    . PATH_SEPARATOR . '../application/models/'
    . PATH_SEPARATOR . get_include_path());
   
include "Zend/Loader.php";
Zend_Loader::registerAutoload();

/**
 * Configuration du site
 */
$config = new Zend_Config_Ini( '../application/config.ini','parametres');

$registry = Zend_Registry::getInstance();
$registry->set('config', $config);

// Mise en place de la BDD
try{
    $db = Zend_Db::factory($config->db);
    $db->getConnection();
    Zend_Db_Table::setDefaultAdapter($db);
}catch(Exception $e){
    exit($e->getMessage());
}

// setup controller
$frontController = Zend_Controller_Front::getInstance();
//$frontController->throwExceptions(true);
$frontController->setRequest(new Zend_Controller_Request_Http());
$frontController->throwExceptions(false);

$frontController->setControllerDirectory('../application/controllers');

$layout =Zend_Layout::startMvc($config->layout);
//$layout =Zend_Layout::startMvc(array('layoutPath' => '../application/layouts'));
//$layout->setLayout('template');

$view = new Zend_View();
Zend_Dojo::enableView($view);

$actionStack = Zend_Controller_Action_HelperBroker::getStaticHelper('actionStack');
// la section de la page, et le controleur qui va l'utiliser 

//le controlleur index va rendre l'action footerAction dans la vue footer
$actionStack->actionToStack('footer','index');
//idem 
$actionStack->actionToStack('menu','menu');
//idem
$actionStack->actionToStack('header','index');



//$configRoute = new Zend_Config_Ini($appPath .'../application/routes.ini');
//$frontController->getRouter()->addConfig($configRoute);

// run!

    $frontController->dispatch(); // dispatche !

Gostbuster - Développeur WEB

Hors ligne

 

#6 18-03-2009 16:29:58

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

Re: [Résolu] problème activation du dojo

par ailleurs, petite précision, si je ne mets pas les deux lignes suivantes :

Code:

$view = new Zend_View();
Zend_Dojo::enableView($view);

Ma vue s'affiche....


Gostbuster - Développeur WEB

Hors ligne

 

#7 19-03-2009 20:09:58

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: [Résolu] problème activation du dojo

Je ne comprends pas ton index.php et surtout pourquoi tu mets des actionstack dans ton index.php...
Je ne les utilises pas pour l'instant mais je ne pense pas que ca se mette la mais plutot dans ton controlleur.

index.php

Code:

<?php

error_reporting(E_ALL|E_STRICT);
date_default_timezone_set('Europe/Paris');
 
define('SYSTEM_PATH', dirname(__FILE__));
define('APPLICATION_PATH', dirname(SYSTEM_PATH) . DIRECTORY_SEPARATOR . 'application');
define('RESOURCE_PATH', dirname(SYSTEM_PATH) . DIRECTORY_SEPARATOR . 'resources');
define('CONFIG_PATH', dirname(SYSTEM_PATH) . DIRECTORY_SEPARATOR . 'config');
 
// set include path to include files in our library directory on which the
// zend framework is located
set_include_path(get_include_path() . PATH_SEPARATOR
                  . dirname(SYSTEM_PATH) . DIRECTORY_SEPARATOR . 'library'
                );
 
// load Zend_Loader class and make it automatically auto load all of our classes,
// no more long includes/requires and Zend_Loader::loadClass
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();

// Démarrage des sessions
Zend_Session::start();

// // setup database config file by loading configuration through our ini file located at resource directory
$registry = new Zend_Registry(array(), ArrayObject::ARRAY_AS_PROPS);
Zend_Registry::setInstance($registry);

$config = new Zend_Config_Ini(CONFIG_PATH . DIRECTORY_SEPARATOR . 'config.ini','general');
$registry->configuration = $config;

// setup database resource through our config file
$config = $registry->configuration;
try{
    $db = Zend_Db::factory($config->db);
    Zend_Db_Table::setDefaultAdapter($db);
}catch(Exception $e){
    exit($e->getMessage());
}

$registry->db=$db;

// Configuration du cache
$frontendOptions = array(
    'lifetime' => 7200, // cache lifetime of 2 hours,
    'automatic_serialization' => true
);
$backendOptions = array(
    'cache_dir' => '../tmp/' // Directory where to put the cache files
);
$cache=Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);
Zend_Registry::set('cache', $cache);

$view = new Zend_View;
$view->doctype('XHTML1_TRANSITIONAL');
$view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper')
     ->addHelperPath('dahuu/View/Helper', 'dahuu_View_Helper_');
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);

// set-up layout options to be used for our project
$layoutOptions = array(
    'layoutPath' => APPLICATION_PATH . DIRECTORY_SEPARATOR . 'templates', // our template directory
    'layout'     => 'main' // our default layout
);
// set layout configuration to Zend_Layout class
Zend_Layout::startMvc($layoutOptions);
 
// define default modules directory
$defaultModules = array(
    'default' => APPLICATION_PATH . DIRECTORY_SEPARATOR . 'default',
    'admin'   => APPLICATION_PATH . DIRECTORY_SEPARATOR . 'admin'
);
 
// get front controller instance
$controller = Zend_Controller_Front::getInstance();
 
// get router from front controller
$router = $controller->getRouter();

// iterate default modules
{
    foreach($defaultModules as $key => $module) {
 
        // add default controller directories
        $controller->addControllerDirectory($module . DIRECTORY_SEPARATOR . 'controllers', $key);
 
        // add models directory to include path
        set_include_path(get_include_path() . PATH_SEPARATOR . $module . DIRECTORY_SEPARATOR . 'models');
 
    }
}
 
$controller->throwExceptions(false); // should be turned on in development time
 
// define modules directory
$moduleFolder = APPLICATION_PATH  . DIRECTORY_SEPARATOR . 'modules';
 
// this is where the code that makes our application extendable through modules
{
    $modules = scandir($moduleFolder); //scan module folder for saved modules (top level modules will be scanned {application, members})
    foreach ($modules as $module) {
 
        if($module[0] == '.') continue; // if search directory starts with a dot, skip directory
 
        $subModulePath = $moduleFolder . DIRECTORY_SEPARATOR . $module; // this will be the submodules directory directly under parent module. e.g. application
        if(is_dir($subModulePath)) {
 
            $subModules = scandir($subModulePath); // scan the submodules directory for specific modules defined
 
            foreach($subModules as $singleModule) { 
 
                if($singleModule[0] == '.') continue; // if search directory starts with a dot, skip directory
 
                $modulePath = $subModulePath . DIRECTORY_SEPARATOR . $singleModule; // this will be the actual module or specific module found
                if(is_dir($modulePath)) {
 
                    // add to include path, models directory
                    set_include_path(get_include_path() . PATH_SEPARATOR
                            . $modulePath . DIRECTORY_SEPARATOR . 'models');
 
                    // add controllers to controller directory
                    $controller->addControllerDirectory($modulePath . DIRECTORY_SEPARATOR . 'controllers', $singleModule);    
 
                    // add to router
                    // if module is under application set router to default directory
                    if($module == 'default') {
                        $router->addRoute('', new Zend_Controller_Router_Route($singleModule));
                    } else {
                        // if module is under not a member of default module set router to /${module}/{singleModule}
                        $router->addRoute($module . '/' . $singleModule, new Zend_Controller_Router_Route($module . '/' . $singleModule,
                            array(
                                'module'     => $singleModule,
                                'controller' => 'index'
                            )
                        ));
                    }
 
                } // end checking {is_dir($modulePath)} 
 
            } // end loop of submodules directory
 
        } // end checking {is_dir($subModulePath)}
 
    } // end looping of modules directory
 
} // end group bracket
 
// run application
try {
    $controller->dispatch(); // dispatche !
} catch (Exception $exception) { // attrape toute exception
    exit($exception->getMessage());
}

Essaye avec ca, il fonctionne très bien chez moi avec des modules et dojo même si maintenant je suis passé à plus complet avec un bootstrap et un initializer.

Hors ligne

 

#8 24-03-2009 09:15:13

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

Re: [Résolu] problème activation du dojo

Bonjour, après avoir remanié mon code, le dojo est enfin activé, "ca marche", ou du moins j'ai bien des éléments de type dojo.

Un grand merci.


Gostbuster - Développeur WEB

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