header.inc.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <?php
  2. define('BX_DOL', 1);
  3. define('BX_DOL_START', microtime ());
  4. //--- Main URLs ---//
  5. define('BX_DOL_URL_ROOT', '%SITE_URL%');
  6. define('BX_DOL_URL_PLUGINS', BX_DOL_URL_ROOT . 'plugins/');
  7. define('BX_DOL_URL_PLUGINS_PUBLIC', BX_DOL_URL_ROOT . 'plugins_public/');
  8. define('BX_DOL_URL_MODULES', BX_DOL_URL_ROOT . 'modules/');
  9. define('BX_DOL_URL_CACHE_PUBLIC', BX_DOL_URL_ROOT . 'cache_public/');
  10. define('BX_DOL_URL_BASE', BX_DOL_URL_ROOT . 'template/');
  11. //--- Main Pathes ---//
  12. define('BX_DIRECTORY_PATH_ROOT', '%ROOT_DIR%');
  13. define('BX_DIRECTORY_PATH_INC', BX_DIRECTORY_PATH_ROOT . 'inc/');
  14. define('BX_DIRECTORY_PATH_BASE', BX_DIRECTORY_PATH_ROOT . 'template/');
  15. define('BX_DIRECTORY_PATH_CACHE', BX_DIRECTORY_PATH_ROOT . 'cache/');
  16. define('BX_DIRECTORY_PATH_CACHE_PUBLIC', BX_DIRECTORY_PATH_ROOT . 'cache_public/');
  17. define('BX_DIRECTORY_PATH_CLASSES', BX_DIRECTORY_PATH_ROOT . 'inc/classes/');
  18. define('BX_DIRECTORY_PATH_PLUGINS', BX_DIRECTORY_PATH_ROOT . 'plugins/');
  19. define('BX_DIRECTORY_PATH_PLUGINS_PUBLIC', BX_DIRECTORY_PATH_ROOT . 'plugins_public/');
  20. define('BX_DIRECTORY_PATH_MODULES', BX_DIRECTORY_PATH_ROOT . 'modules/');
  21. define('BX_DIRECTORY_PATH_TMP', BX_DIRECTORY_PATH_ROOT . 'tmp/');
  22. define('BX_DIRECTORY_STORAGE', BX_DIRECTORY_PATH_ROOT . 'storage/');
  23. //--- DB Connection ---//
  24. define('BX_DATABASE_HOST', '%DB_HOST%');
  25. define('BX_DATABASE_SOCK', '%DB_SOCK%');
  26. define('BX_DATABASE_PORT', '%DB_PORT%');
  27. define('BX_DATABASE_USER', '%DB_USER%');
  28. define('BX_DATABASE_PASS', '%DB_PASSWORD%');
  29. define('BX_DATABASE_NAME', '%DB_NAME%');
  30. //--- System settings ---//
  31. define('BX_SYSTEM_CONVERT', '%CONVERT_PATH%');
  32. define('BX_SYSTEM_COMPOSITE', '%COMPOSITE_PATH%');
  33. define('BX_DOL_DIR_RIGHTS', 0777);
  34. define('BX_DOL_FILE_RIGHTS', 0666);
  35. define('BX_DOL_STORAGE_OBJ_IMAGES', 'sys_images');
  36. define('BX_DOL_INT_MAX', 2147483647);
  37. define('BX_DOL_TRANSCODER_OBJ_ICON_APPLE', 'sys_icon_apple');
  38. define('BX_DOL_TRANSCODER_OBJ_ICON_FACEBOOK', 'sys_icon_facebook');
  39. define('BX_DOL_TRANSCODER_OBJ_ICON_FAVICON', 'sys_icon_favicon');
  40. //--- Module types ---//
  41. if (!defined('BX_DOL_MODULE_TYPE_MODULE')) {
  42. define('BX_DOL_MODULE_TYPE_MODULE', 'module');
  43. define('BX_DOL_MODULE_TYPE_LANGUAGE', 'language');
  44. define('BX_DOL_MODULE_TYPE_TEMPLATE', 'template');
  45. }
  46. //--- Studio settings ---//
  47. define('BX_DOL_STUDIO_FOLDER', 'studio');
  48. define('BX_DOL_URL_STUDIO', BX_DOL_URL_ROOT . BX_DOL_STUDIO_FOLDER . '/');
  49. define('BX_DOL_URL_STUDIO_BASE', BX_DOL_URL_STUDIO . 'template/');
  50. define('BX_DOL_DIR_STUDIO', BX_DIRECTORY_PATH_ROOT . BX_DOL_STUDIO_FOLDER . '/');
  51. define('BX_DOL_DIR_STUDIO_INC', BX_DOL_DIR_STUDIO . 'inc/');
  52. define('BX_DOL_DIR_STUDIO_CLASSES', BX_DOL_DIR_STUDIO . 'classes/');
  53. define('BX_DOL_DIR_STUDIO_BASE', BX_DOL_DIR_STUDIO . 'template/');
  54. //--- BoonEx Unity Settings ---//
  55. define('BX_DOL_UNITY_URL_ROOT', 'http://www.boonex.com/');
  56. define('BX_DOL_UNITY_URL_MARKET', BX_DOL_UNITY_URL_ROOT . 'market/');
  57. define('BX_DOL_UNITY_URL_PRODUCT', BX_DOL_UNITY_URL_ROOT . 'm/');
  58. //--- BoonEx OAuth Settings ---//
  59. define('BX_DOL_OAUTH_URL_REQUEST_TOKEN', BX_DOL_UNITY_URL_ROOT . 'scripts_public/oauth_request_token.php5');
  60. define('BX_DOL_OAUTH_URL_AUTHORIZE', BX_DOL_UNITY_URL_ROOT . 'scripts_public/oauth_authorize.php5');
  61. define('BX_DOL_OAUTH_URL_ACCESS_TOKEN', BX_DOL_UNITY_URL_ROOT . 'scripts_public/oauth_access_token.php5');
  62. define('BX_DOL_OAUTH_URL_FETCH_DATA', BX_DOL_UNITY_URL_ROOT . 'scripts_public/oauth_fetch_data.php5');
  63. //--- User Roles ---//
  64. define('BX_DOL_ROLE_GUEST', 0);
  65. define('BX_DOL_ROLE_MEMBER', 1);
  66. define('BX_DOL_ROLE_ADMIN', 2);
  67. // profile statuses
  68. define('BX_PROFILE_STATUS_SUSPENDED', 'suspended'); ///< profile status - suspended, profile is syspended by admin/moderator and usually can't access the site
  69. define('BX_PROFILE_STATUS_ACTIVE', 'active'); ///< profile status - active, profile is active on the site
  70. define('BX_PROFILE_STATUS_PENDING', 'pending'); ///< profile status - pending, default method of approving is manual approving
  71. define('BX_DOL_SECRET', '%SECRET%');
  72. define('CHECK_DOLPHIN_REQUIREMENTS', 1);
  73. if (defined('CHECK_DOLPHIN_REQUIREMENTS')) {
  74. $aErrors = array();
  75. $aErrors[] = (ini_get('register_globals') == 0) ? '' : '<font color="red">register_globals is On (warning, you should have this param in Off state, or your site will unsafe)</font>';
  76. $aErrors[] = (ini_get('safe_mode') == 0) ? '' : '<font color="red">safe_mode is On, disable it</font>';
  77. $aErrors[] = (version_compare(PHP_VERSION, '5.2.0', '<')) ? '<font color="red">PHP version too old, please update to PHP 5.2.0 at least</font>' : '';
  78. $aErrors[] = (!extension_loaded( 'mbstring')) ? '<font color="red">mbstring extension not installed. <b>Warning!</b> Dolphin cannot work without <b>mbstring</b> extension.</font>' : '';
  79. if (version_compare(phpversion(), "5.2", ">") == 1) {
  80. $aErrors[] = (ini_get('allow_url_include') == 0) ? '' : '<font color="red">allow_url_include is On (warning, you should have this param in Off state, or your site will unsafe)</font>';
  81. };
  82. $aErrors = array_diff($aErrors, array('')); // delete empty
  83. if (count($aErrors)) {
  84. $sErrors = implode(" <br /> ", $aErrors);
  85. echo <<<EOF
  86. {$sErrors} <br />
  87. Please go to the <br />
  88. <a href="http://www.boonex.com/trac/dolphin/wiki/GenDolTShooter">Dolphin Troubleshooter</a> <br />
  89. and solve the problem.
  90. EOF;
  91. exit;
  92. }
  93. }
  94. // check correct hostname
  95. $aUrl = parse_url( BX_DOL_URL_ROOT );
  96. if (isset($_SERVER['HTTP_HOST']) and 0 != strcasecmp($_SERVER['HTTP_HOST'], $aUrl['host']) and 0 != strcasecmp($_SERVER['HTTP_HOST'], $aUrl['host'] . ':80')) {
  97. header( "Location:http://{$aUrl['host']}{$_SERVER['REQUEST_URI']}" );
  98. exit;
  99. }
  100. // check if install folder exists
  101. if (!defined ('BX_SKIP_INSTALL_CHECK') && file_exists(BX_DIRECTORY_PATH_ROOT . 'install')) {
  102. header('Location:' . BX_DOL_URL_ROOT . 'install/index.php?action=remove_install');
  103. exit;
  104. }
  105. // set PHP options
  106. error_reporting(E_ALL);
  107. ini_set('magic_quotes_sybase', 0);
  108. mb_internal_encoding('UTF-8');
  109. mb_regex_encoding('UTF-8');
  110. // include files necessary for basic functionality
  111. require_once(BX_DIRECTORY_PATH_CLASSES . "BxDol.php");
  112. require_once(BX_DIRECTORY_PATH_INC . "utils.inc.php");
  113. bx_import('BxDolConfig');
  114. bx_import('BxDolService');
  115. bx_import('BxDolAlerts');
  116. bx_import('BxDolDb');
  117. require_once(BX_DIRECTORY_PATH_INC . "profiles.inc.php");
  118. $o = new BxDolAlerts('system', 'begin', 0);
  119. $o->alert();