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.

93 lines
2.7 KiB

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