PageRenderTime 66ms CodeModel.GetById 33ms RepoModel.GetById 1ms app.codeStats 0ms

/index.php

http://vaselinengine.googlecode.com/
PHP | 156 lines | 101 code | 20 blank | 35 comment | 11 complexity | 16b875be255826aa87c002e687b27f3d MD5 | raw file
Possible License(s): LGPL-2.1, AGPL-1.0, GPL-2.0
  1. <?php
  2. /**
  3. * Constants section
  4. */
  5. define ( 'DS', DIRECTORY_SEPARATOR );
  6. define ( 'PS', PATH_SEPARATOR );
  7. define ( 'HOME_DIR', dirname ( __FILE__ ) . DS );
  8. define ( 'DEV_MODE', TRUE );
  9. define ( 'FORMS_FILES', HOME_DIR . 'config/forms/' );
  10. if(DEV_MODE){
  11. ini_set('display_errors','on');
  12. error_reporting ( E_ALL | E_STRICT );
  13. }
  14. /**
  15. * Set include pathes
  16. */
  17. $paths [] = HOME_DIR . 'app' . DS;
  18. $paths [] = HOME_DIR . 'Libs' . DS;
  19. $paths [] = HOME_DIR . 'app/controllers' . DS;
  20. $app_path = implode ( PS, $paths );
  21. set_include_path ( $app_path . PS . get_include_path () );
  22. /**
  23. * Function Section
  24. */
  25. //To prevent php warning from smarty compiler
  26. if (function_exists ( "date_default_timezone_set" ) and function_exists ( "date_default_timezone_get" )) {
  27. @date_default_timezone_set ( @date_default_timezone_get () );
  28. }
  29. //Define autoload function to get rid of includes
  30. include_once ('Libs/Zend/Loader.php');
  31. function __autoload($classname) {
  32. Zend_Loader::loadClass ( $classname );
  33. }
  34. /**
  35. * Db section
  36. */
  37. $params = array ('host' => 'localhost'
  38. ,'username' => 'root'
  39. ,'password' => ''
  40. ,'dbname' => 'demo'
  41. );
  42. //$db = Zend_Db::factory('PDO_MYSQL', $params);
  43. $db = new Bel_Db_Adapter_Pdo_Mysql($params); //adapter with cached DESCRIBE TABLE queries
  44. $db->setFetchMode(Zend_Db::FETCH_OBJ);
  45. if(DEV_MODE){
  46. $profiler = new Zend_Db_Profiler_Firebug('All DB Queries');
  47. $profiler->setEnabled(true);
  48. $db->setProfiler($profiler);
  49. }
  50. $db->query('SET CHARACTER SET utf8');
  51. $db->query('SET NAMES utf8');
  52. Zend_Registry::set('db', $db);
  53. define('TABLE_PREFIX','PREFIX_');
  54. /**
  55. * Cache section
  56. */
  57. $frontendOptions = array ('lifetime' => 28800, 'automatic_serialization' => true );
  58. $backendOptions = array ('cache_dir' => HOME_DIR . 'tmp/cache' );
  59. $cache = Zend_Cache::factory('Bel_Cache', 'File', $frontendOptions, $backendOptions, true,false,true); //Don't caching data if DEV_MODE = true
  60. Zend_Registry::set('cache', $cache);
  61. /**
  62. * Front Controller init
  63. */
  64. $controller = Zend_Controller_Front::getInstance ();
  65. if (DEV_MODE) {
  66. $controller->throwExceptions ( true );
  67. }
  68. /**
  69. * View section
  70. */
  71. /* disable standart Zend View - begin*/
  72. Zend_Controller_Action_HelperBroker::removeHelper ( 'viewRenderer' );
  73. $controller->setParam ( 'noViewRenderer', true );
  74. /* disable standart Zend View - end */
  75. include_once HOME_DIR.'Libs/smarty/Smarty.class.php';
  76. $view = new Smarty ( );
  77. if(strpos($_SERVER['REQUEST_URI'],'admin')===1){ //if requested module is 'admin' then set theme to admin
  78. $view->compile_dir = HOME_DIR . 'tmp/templates_c/admin';
  79. $view->template_dir = HOME_DIR . 'app/views/admin/templates';
  80. $view->assign ( 'theme', 'app/views/admin/' );
  81. }else{
  82. $view->compile_dir = HOME_DIR . 'tmp/templates_c/default';
  83. $view->template_dir = HOME_DIR . 'app/views/default/templates';
  84. $view->assign ( 'theme', 'app/views/default/' );
  85. }
  86. Zend_Registry::set ( 'view', $view );
  87. /**
  88. * ACL Resourses setup
  89. */
  90. $groups = new Models_Usermanagement_Groups();
  91. $modules = new Models_Usermanagement_Modules();
  92. $group_id = $groups->getCurrentGroupId();
  93. if (! ($resources = $cache->load('acl_resources' . $group_id))) {
  94. $resources = $modules->getAllAclResources($group_id);
  95. $cache->save($resources);
  96. }
  97. if (! ($acl = $cache->load('acl_' . $group_id))) {
  98. $acl = new Zend_Acl();
  99. $acl->addRole(new Zend_Acl_Role($group_id));
  100. foreach ($resources as $resource) {
  101. if (! $acl->has($resource->resource_name)) {
  102. $acl->add(new Zend_Acl_Resource($resource->resource_name));
  103. if ((int)$resource->group===(int)$group_id) {
  104. $acl->allow($group_id, $resource->resource_name);
  105. } else {
  106. $acl->deny($group_id, $resource->resource_name);
  107. }
  108. }
  109. }
  110. $cache->save($acl);
  111. }
  112. Zend_Registry::set('acl', $acl);
  113. /**
  114. * Plugins section
  115. */
  116. $controller->registerPlugin (new Bel_Acl_Plugin());
  117. $controller->registerPlugin (new Helpers_Content_TitlePlugin());
  118. $controller->registerPlugin (new Bel_Router_Plugin());
  119. $controller->registerPlugin (new Bel_Layout_Plugin(),101);
  120. /**
  121. * Dispatching
  122. */
  123. if (DEV_MODE) {
  124. $controller->throwExceptions ( true );
  125. }
  126. try {
  127. $response = $controller->dispatch ();
  128. } catch ( Exception $e ) {
  129. $request = $controller->getRequest ();
  130. $controller_dir = $controller->getControllerDirectory ( $request->getModuleName () );
  131. $view->template_dir = 'views';
  132. $view->assign ( 'exception', $e );
  133. $view->assign ( 'request', $request );
  134. $view->assign ( 'controller_dir', $controller_dir );
  135. $view->display ( 'error.tpl' );
  136. }