root_url); define('IMG_URL',ROOT_URL.'/themes/'.$config_pref->theme.'/img/'); define('JS_URL',ROOT_URL.'/js/'); define('CSS_URL',ROOT_URL.'/themes/'.$config_pref->theme.'/css/'); define('TABLE_PREFIX',$config_db->table_prefix); //Base de données et ORM Zend_Loader::loadClass('Zend_Db'); Zend_Loader::loadClass('Zend_Db_Table'); $db = Zend_Db::factory($config_db->type, $config_db->toArray()); Zend_Db_Table::setDefaultAdapter($db); // Session Zend_Loader::loadClass('Zend_Session'); Zend_Session::start(); Zend_Registry::set('idsNamespace', new Zend_Session_Namespace('ids')); Zend_Registry::set('formositeNamespace', new Zend_Session_Namespace('formosite')); Zend_Registry::set('navNamespace', new Zend_Session_Namespace('nav')); Zend_Registry::set('objNamespace', new Zend_Session_Namespace('obj')); // Setup locales Zend_Loader::loadClass('Zend_Locale'); Zend_Registry::set('locale', new Zend_Locale($config_pref->locale)); Zend_Loader::loadClass('Zend_Date'); $date= new Zend_Date(); $date->setLocale($config_pref->locale); $date->setTimezone('GMT'); Zend_Registry::set('date', $date); Zend_Loader::loadClass('Zend_Translate'); Zend_Registry::set('translate', new Zend_Translate('array', array(), Zend_Registry::get('locale'))); // Setup Application Log Zend_Loader::loadClass('Zend_Log'); Zend_Loader::loadClass('Zend_Log_Writer_Stream'); $logger = new Zend_log(new Zend_Log_Writer_Stream(LOGS_DIR.'app.log')); $logger->log("** URI=".$_SERVER['REQUEST_URI'], 6); Zend_Registry::set('logger', $logger); // Gestion des accès (Auth / Acl) Zend_Loader::loadClass('Zend_Auth'); Zend_Loader::loadClass('Zend_Auth_Result'); Zend_Loader::loadClass('Zend_Auth_Adapter_Interface'); Zend_Loader::loadClass('Zend_Acl'); Zend_Loader::loadClass('Zend_Acl_Role'); Zend_Loader::loadClass('Zend_Acl_Resource'); $acl = new Zend_Acl(); // ROLES $acl->addRole(new Zend_Acl_Role('admin')); $acl->addRole(new Zend_Acl_Role('guest')); // RESSOURCES $acl->add(new Zend_Acl_Resource('default_auth_index')); $acl->add(new Zend_Acl_Resource('default_article_add')); $acl->add(new Zend_Acl_Resource('default_article_detail')); $acl->add(new Zend_Acl_Resource('default_index_index')); $acl->allow('guest'); $acl->deny('guest', 'default_article_add'); $acl->allow('admin'); // Authentification Zend_Loader::loadClass('Zend_Controller_Plugin_Abstract'); Zend_Loader::loadClass('ZFE_Plugin_Auth'); $auth = Zend_Auth::getInstance(); // ViewRenderer et son helper (gestion du layout) Zend_Loader::loadFile('LayoutRenderer.php', 'ZFE/View/'); $viewRenderer = new Controller_Action_Helper_ViewRenderer(); Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); // Setup Front Controller Zend_Loader::loadClass('Zend_Controller_Router_Rewrite'); $controller = Zend_Controller_Front::getInstance(); $router = new Zend_Controller_Router_Rewrite(); $controller->setBaseUrl(BASE_URL) ->setRouter($router) ->setControllerDirectory(array( 'default' => MODULES_DIR.'/default/controllers', 'admin' => MODULES_DIR.'/admin/controllers' )) ->registerPlugin(new ZFE_Plugin_Auth($auth, $acl)) ->throwExceptions(true); // Dispatcher Calling try { $controller->dispatch(); } catch (Zend_Controller_Dispatcher_Exception $e) { Zend_registry::get('logger')->log('Erreur : '.$e, 6); header('Status: 404 Not Found', false, 404); header('Location: '.ROOT_URL."notfound/"); } catch (Zend_Controller_Action_Exception $e) { Zend_registry::get('logger')->log('Erreur : '.$e, 6); header('Status: 404 Not Found', false, 404); header('Location: '.ROOT_URL."notfound/"); } catch (Zend_Db_Adapter_Exception $e) { Zend_registry::get('logger')->log('Erreur : '.$e, 6); header('Status: 503 Service Unavailable', false, 503); echo 'Unable to connect to database. Perhaps Down...'; } ?>