You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
2.9 KiB

  1. <?php
  2. /**
  3. * Внутренний файл инициализации.
  4. * Если вы не меняли стандартное расположение файлов,
  5. * то ничего тут править не надо.
  6. *
  7. * @copyright NetMonsters <team@netmonsters.ru>
  8. * @link
  9. * @package Nakon
  10. * @subpackage System
  11. * @since
  12. * @version SVN: $Id$
  13. * @filesource $URL$
  14. */
  15. /**
  16. * Пути к файлам системы.
  17. */
  18. $a = realpath(dirname(__FILE__).'/../..').'/';
  19. define('INIT_PATH', $a.'config');
  20. define('CORE_PATH', $a.'core/classes');
  21. define('LIB_PATH', $a.'lib');
  22. define('MODEL_PATH', $a.'lib/models');
  23. define('CACHE_PATH', $a.'cache');
  24. if (!defined('SITE_PART')) {
  25. define('SITE_PART', 'admin');
  26. }
  27. define('HTDOCS_PATH', $a.SITE_PART.'/htdocs');
  28. define('DECORATOR_PATH', $a.SITE_PART.'/decorators');
  29. define('ACTION_PATH', $a.SITE_PART.'/actions');
  30. define('TPL_PATH', $a.SITE_PART.'/templates');
  31. define('CONFIG_PATH', $a.SITE_PART.'/config');
  32. unset($a);
  33. define('WRAPPERS_TPL_PATH', TPL_PATH.'/wrappers');
  34. define('ACTION_TPL_PATH', TPL_PATH.'/actions');
  35. define('STATIC_TPL_PATH', TPL_PATH.'/static');
  36. define('DECORATOR_POSTFIX', 'Decorator');
  37. define('MODEL_POSTFIX', 'Model');
  38. define('ACTION_POSTFIX', 'Action');
  39. define('EXCEPTION_POSTFIX', 'Exception');
  40. define('TIME_NOW', time());
  41. /**
  42. * Основные файлы системы.
  43. * Эти файлы загружаются всегда, т.к. без них работа системы невозможна
  44. */
  45. require(CORE_PATH.'/Env.class.php');
  46. require(CORE_PATH.'/Load.class.php');
  47. require(CORE_PATH.'/Router.class.php');
  48. require(CORE_PATH.'/PageController.class.php');
  49. require(CORE_PATH.'/Decorator.class.php');
  50. require(CORE_PATH.'/Action.class.php');
  51. /**
  52. * Файлы конфигурации.
  53. */
  54. if (file_exists(INIT_PATH.'/local.inc.php')) {
  55. require(INIT_PATH.'/local.inc.php');
  56. } else {
  57. require(INIT_PATH.'/global.inc.php');
  58. }
  59. Env::setParams($CONFIG);
  60. require(CONFIG_PATH.'/config.inc.php');
  61. Env::setParams($CONFIG);
  62. function __autoload($name)
  63. {
  64. preg_match_all('/[A-Z]+[^A-Z]+/', $name, $match);
  65. $type = end($match[0]);
  66. $class_name = substr($name, 0, -strlen($type));
  67. switch ($type) {
  68. case 'DBConnector':
  69. require(CORE_PATH.'/'.(defined('CUSTOM_DBCONNECTOR') ? CUSTOM_DBCONNECTOR.'_' : '').'DBConnector.class.php');
  70. break;
  71. case $name:
  72. case EXCEPTION_POSTFIX:
  73. require(CORE_PATH.'/'.$name.'.class.php');
  74. break;
  75. case ACTION_POSTFIX:
  76. require(ACTION_PATH.'/'.strtolower($match[0][0]).'/'.$class_name.'.action.php');
  77. break;
  78. case DECORATOR_POSTFIX:
  79. require(DECORATOR_PATH.'/'.$class_name.'.decorator.php');
  80. break;
  81. case MODEL_POSTFIX:
  82. require(MODEL_PATH.'/'.$class_name.'.model.php');
  83. break;
  84. default:
  85. require(LIB_PATH.'/'.$name.'.lib.php');
  86. }
  87. }
  88. ?>