PageRenderTime 42ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 1ms

/upload/includes/init_bb.php

http://torrentpier2.googlecode.com/
PHP | 593 lines | 449 code | 93 blank | 51 comment | 39 complexity | 90fe9450d722ee903fbf96aa535979d4 MD5 | raw file
  1. <?php
  2. if (!defined('BB_ROOT')) die(basename(__FILE__));
  3. if (!defined('BB_SCRIPT')) define('BB_SCRIPT', 'undefined');
  4. if (!defined('BB_CFG_LOADED')) trigger_error('bb_cfg not loaded', E_USER_ERROR);
  5. // Exit if board is disabled via ON/OFF trigger
  6. if (!defined('IN_ADMIN') && !defined('IN_AJAX') && !defined('IN_SERVICE'))
  7. {
  8. if (file_exists(BB_DISABLED))
  9. {
  10. cron_release_deadlock(); // ???? ????? ????????????? ? ?????? ????????? ?????, ???????????? ?????
  11. header('HTTP/1.0 503 Service Unavailable');
  12. require(TEMPLATES_DIR .'board_disabled_exit.php');
  13. }
  14. }
  15. //
  16. // Cron functions
  17. //
  18. function cron_release_deadlock ()
  19. {
  20. if (file_exists(CRON_RUNNING))
  21. {
  22. if (TIMENOW - filemtime(CRON_RUNNING) > 2400)
  23. {
  24. cron_enable_board();
  25. cron_release_file_lock();
  26. }
  27. }
  28. }
  29. function cron_release_file_lock ()
  30. {
  31. $lock_released = @rename(CRON_RUNNING, CRON_ALLOWED);
  32. cron_touch_lock_file(CRON_ALLOWED);
  33. }
  34. function cron_touch_lock_file ($lock_file)
  35. {
  36. file_write(make_rand_str(20), $lock_file, 0, true, true);
  37. }
  38. function cron_enable_board ()
  39. {
  40. @rename(BB_DISABLED, BB_ENABLED);
  41. # bb_update_config(array('board_disable' => 0));
  42. }
  43. function cron_disable_board ()
  44. {
  45. @rename(BB_ENABLED, BB_DISABLED);
  46. # bb_update_config(array('board_disable' => 1));
  47. }
  48. // Define some basic configuration arrays
  49. unset($stopwords, $synonyms_match, $synonyms_replace);
  50. $userdata = $theme = $images = $lang = $nav_links = $bf = $attach_config = array();
  51. $gen_simple_header = false;
  52. $user = null;
  53. // Obtain and encode user IP
  54. $client_ip = !empty($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1';
  55. $user_ip = encode_ip($client_ip);
  56. define('CLIENT_IP', $client_ip);
  57. define('USER_IP', $user_ip);
  58. function send_page ($contents)
  59. {
  60. return compress_output($contents);
  61. }
  62. define('UA_GZIP_SUPPORTED', (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false));
  63. function compress_output ($contents)
  64. {
  65. global $bb_cfg;
  66. if ($bb_cfg['gzip_compress'] && GZIP_OUTPUT_ALLOWED && !defined('NO_GZIP'))
  67. {
  68. if (UA_GZIP_SUPPORTED && strlen($contents) > 2000)
  69. {
  70. header('Content-Encoding: gzip');
  71. $contents = gzencode($contents, 1);
  72. }
  73. }
  74. return $contents;
  75. }
  76. // Start output buffering
  77. if (!defined('IN_AJAX'))
  78. {
  79. ob_start('send_page');
  80. }
  81. // Cookie params
  82. $c = $bb_cfg['cookie_prefix'];
  83. define('COOKIE_DATA', $c .'data');
  84. define('COOKIE_FORUM', $c .'f');
  85. define('COOKIE_MARK', $c .'mark_read');
  86. define('COOKIE_TOPIC', $c .'t');
  87. define('COOKIE_PM', $c .'pm');
  88. unset($c);
  89. define('COOKIE_SESSION', 0);
  90. define('COOKIE_EXPIRED', TIMENOW - 31536000);
  91. define('COOKIE_PERSIST', TIMENOW + 31536000);
  92. define('COOKIE_MAX_TRACKS', 90);
  93. function bb_setcookie ($name, $val, $lifetime = COOKIE_PERSIST, $httponly = false)
  94. {
  95. global $bb_cfg;
  96. return setcookie($name, $val, $lifetime, $bb_cfg['script_path'], $bb_cfg['cookie_domain'], $bb_cfg['cookie_secure'], $httponly);
  97. }
  98. // Debug options
  99. if (DBG_USER)
  100. {
  101. error_reporting(E_ALL);
  102. ini_set('display_errors', 1);
  103. }
  104. else
  105. {
  106. unset($_COOKIE['explain']);
  107. }
  108. if (DEBUG === true)
  109. {
  110. require(DEV_DIR .'init_debug.php');
  111. }
  112. define('DELETED', -1);
  113. // User Levels
  114. define('USER', 0);
  115. define('ADMIN', 1);
  116. define('MOD', 2);
  117. define('GROUP_MEMBER', 20);
  118. define('CP_HOLDER', 25);
  119. $excluded_users = array(
  120. GUEST_UID,
  121. BOT_UID,
  122. );
  123. define('EXCLUDED_USERS_CSV', implode(',', $excluded_users));
  124. // User related
  125. define('USER_ACTIVATION_NONE', 0);
  126. define('USER_ACTIVATION_SELF', 1);
  127. // Group settings
  128. define('GROUP_OPEN', 0);
  129. define('GROUP_CLOSED', 1);
  130. define('GROUP_HIDDEN', 2);
  131. // Forum state
  132. define('FORUM_UNLOCKED', 0);
  133. define('FORUM_LOCKED', 1);
  134. // Topic status
  135. define('TOPIC_UNLOCKED', 0);
  136. define('TOPIC_LOCKED', 1);
  137. define('TOPIC_MOVED', 2);
  138. define('TOPIC_WATCH_NOTIFIED', 1);
  139. define('TOPIC_WATCH_UN_NOTIFIED', 0);
  140. // Topic types
  141. define('POST_NORMAL', 0);
  142. define('POST_STICKY', 1);
  143. define('POST_ANNOUNCE', 2);
  144. // Search types
  145. define('SEARCH_TYPE_POST', 0);
  146. define('SEARCH_TYPE_TRACKER', 1);
  147. // Error codes
  148. define('GENERAL_MESSAGE', 200);
  149. define('GENERAL_ERROR', 202);
  150. define('CRITICAL_ERROR', 204);
  151. define('E_AJAX_GENERAL_ERROR', 1000);
  152. define('E_AJAX_NEED_LOGIN', 1001);
  153. // Private messaging
  154. define('PRIVMSGS_READ_MAIL', 0);
  155. define('PRIVMSGS_NEW_MAIL', 1);
  156. define('PRIVMSGS_SENT_MAIL', 2);
  157. define('PRIVMSGS_SAVED_IN_MAIL', 3);
  158. define('PRIVMSGS_SAVED_OUT_MAIL', 4);
  159. define('PRIVMSGS_UNREAD_MAIL', 5);
  160. define('HAVE_UNREAD_PM', 1);
  161. define('HAVE_NEW_PM', 2);
  162. define('USERNAME_MIN_LENGTH', 3);
  163. // URL PARAMETERS (hardcoding allowed)
  164. define('POST_CAT_URL', 'c');
  165. define('POST_FORUM_URL', 'f');
  166. define('POST_GROUPS_URL', 'g');
  167. define('POST_POST_URL', 'p');
  168. define('POST_TOPIC_URL', 't');
  169. define('POST_USERS_URL', 'u');
  170. // Download Modes
  171. define('INLINE_LINK', 1);
  172. define('PHYSICAL_LINK', 2);
  173. // Categories
  174. define('NONE_CAT', 0);
  175. define('IMAGE_CAT', 1);
  176. define('STREAM_CAT', 2);
  177. define('SWF_CAT', 3);
  178. // Misc
  179. define('MEGABYTE', 1024);
  180. define('ADMIN_MAX_ATTACHMENTS', 50);
  181. define('THUMB_DIR', 'thumbs');
  182. define('MODE_THUMBNAIL', 1);
  183. // Forum Extension Group Permissions
  184. define('GPERM_ALL', 0); // ALL FORUMS
  185. // Quota Types
  186. define('QUOTA_UPLOAD_LIMIT', 1);
  187. define('QUOTA_PM_LIMIT', 2);
  188. // Torrents
  189. define('TOR_STATUS_NORMAL', 0);
  190. define('TOR_STATUS_FROZEN', 1);
  191. // Report
  192. // Report status constants
  193. define('REPORT_NEW', 0);
  194. define('REPORT_OPEN', 1);
  195. define('REPORT_IN_PROCESS', 2);
  196. define('REPORT_CLEARED', 3);
  197. define('REPORT_DELETE', 4);
  198. // Report authorisation constants
  199. define('REPORT_AUTH_USER', 0);
  200. define('REPORT_AUTH_MOD', 1);
  201. define('REPORT_AUTH_CONFIRM', 2);
  202. define('REPORT_AUTH_ADMIN', 3);
  203. // Report notification constants
  204. define('REPORT_NOTIFY_NEW', 1);
  205. define('REPORT_NOTIFY_CHANGE', 2);
  206. // Other report constants
  207. define('POST_REPORT_URL', 'r');
  208. define('POST_REPORT_REASON_URL', 'r');
  209. // Report [END]
  210. // Gender
  211. define('MALE', 1);
  212. define('FEMALE', 2);
  213. // Poll
  214. # 1 - ??????? ?????
  215. define('POLL_FINISHED', 2);
  216. // Torrents (reserved: -1)
  217. define('TOR_NOT_APPROVED', 0); // ?? ?????????
  218. define('TOR_CLOSED', 1); // ???????
  219. define('TOR_APPROVED', 2); // ?????????
  220. define('TOR_NEED_EDIT', 3); // ?????????????
  221. define('TOR_NO_DESC', 4); // ???????????
  222. define('TOR_DUP', 5); // ??????
  223. define('TOR_CLOSED_CPHOLD', 6); // ??????? ????????????????
  224. define('TOR_CONSUMED', 7); // ?????????
  225. define('TOR_DOUBTFUL', 8); // ???????????
  226. define('TOR_CHECKING', 9); // ???????????
  227. define('TOR_TMP', 10); // ?????????
  228. define('TOR_PREMOD', 11); // ????????????
  229. $bb_cfg['tor_icons'] = array(
  230. TOR_NOT_APPROVED => '<span class="tor-icon tor-not-approved">*</span>',
  231. TOR_CLOSED => '<span class="tor-icon tor-closed">x</span>',
  232. TOR_APPROVED => '<span class="tor-icon tor-approved">&radic;</span>',
  233. TOR_NEED_EDIT => '<span class="tor-icon tor-need-edit">?</span>',
  234. TOR_NO_DESC => '<span class="tor-icon tor-no-desc">!</span>',
  235. TOR_DUP => '<span class="tor-icon tor-dup">D</span>',
  236. TOR_CLOSED_CPHOLD => '<span class="tor-icon tor-closed-cp">&copy;</span>',
  237. TOR_CONSUMED => '<span class="tor-icon tor-consumed">&sum;</span>',
  238. TOR_DOUBTFUL => '<span class="tor-icon tor-approved">#</span>',
  239. TOR_CHECKING => '<span class="tor-icon tor-checking">%</span>',
  240. TOR_TMP => '<span class="tor-icon tor-dup">T</span>',
  241. TOR_PREMOD => '<span class="tor-icon tor-dup">&#8719;</span>',
  242. );
  243. // ?????? ?? ??????????
  244. $bb_cfg['tor_frozen'] = array(
  245. TOR_CHECKING => true,
  246. TOR_CLOSED => true,
  247. TOR_CLOSED_CPHOLD => true,
  248. TOR_CONSUMED => true,
  249. TOR_DUP => true,
  250. TOR_NO_DESC => true,
  251. TOR_PREMOD => true,
  252. );
  253. // ?????????? ?? ?????? ???????, ???? ??????? ?? ??????????.
  254. $bb_cfg['tor_frozen_author_download'] = array(
  255. TOR_CHECKING => true,
  256. TOR_NO_DESC => true,
  257. TOR_PREMOD => true,
  258. );
  259. // ?????? ?? ?????????????? ????????? ?????????
  260. $bb_cfg['tor_cannot_edit'] = array(
  261. TOR_CHECKING => true,
  262. TOR_CLOSED => true,
  263. TOR_CONSUMED => true,
  264. TOR_DUP => true,
  265. );
  266. // ?????? ?? ???????? ????? ?????? ???? ????? ?????? ?????????????/???????????/???????????
  267. $bb_cfg['tor_cannot_new'] = array(TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL);
  268. // ?????????? ?? ????? ????????, ???? ??????? ??????????.
  269. $bb_cfg['tor_reply'] = array(TOR_NEED_EDIT, TOR_NO_DESC, TOR_DOUBTFUL);
  270. // ???? ????? ?????? ? ??????, ?? ?????????? ??????? ????? ??????
  271. $bb_cfg['tor_no_tor_act'] = array(
  272. TOR_CLOSED => true,
  273. TOR_DUP => true,
  274. TOR_CLOSED_CPHOLD => true,
  275. TOR_CONSUMED => true,
  276. );
  277. // Table names
  278. define('BUF_TOPIC_VIEW', 'buf_topic_view');
  279. define('BUF_LAST_SEEDER', 'buf_last_seeder');
  280. define('BB_ADS', 'bb_ads');
  281. define('BB_ATTACH_CONFIG', 'bb_attachments_config');
  282. define('BB_ATTACHMENTS_DESC', 'bb_attachments_desc');
  283. define('BB_ATTACHMENTS', 'bb_attachments');
  284. define('BB_AUTH_ACCESS_SNAP', 'bb_auth_access_snap');
  285. define('BB_AUTH_ACCESS', 'bb_auth_access');
  286. define('BB_BANLIST', 'bb_banlist');
  287. define('BB_BT_DLSTATUS', 'bb_bt_dlstatus');
  288. define('BB_BT_DLSTATUS_SNAP', 'bb_bt_dlstatus_snap');
  289. define('BB_BT_LAST_TORSTAT', 'bb_bt_last_torstat');
  290. define('BB_BT_LAST_USERSTAT', 'bb_bt_last_userstat');
  291. define('BB_BT_TORHELP', 'bb_bt_torhelp');
  292. define('BB_BT_TORSTAT', 'bb_bt_torstat');
  293. define('BB_CATEGORIES', 'bb_categories');
  294. define('BB_CAPTCHA', 'bb_captcha');
  295. define('BB_CONFIG', 'bb_config');
  296. define('BB_CRON', 'bb_cron');
  297. define('BB_DISALLOW', 'bb_disallow');
  298. define('BB_EXTENSION_GROUPS', 'bb_extension_groups');
  299. define('BB_EXTENSIONS', 'bb_extensions');
  300. define('BB_FORUMS', 'bb_forums');
  301. define('BB_GROUPS', 'bb_groups');
  302. define('BB_LOG', 'bb_log');
  303. define('BB_POLL_USERS', 'bb_poll_users');
  304. define('BB_POLL_VOTES', 'bb_poll_votes');
  305. define('BB_POSTS_SEARCH', 'bb_posts_search');
  306. define('BB_POSTS', 'bb_posts');
  307. define('BB_POSTS_TEXT', 'bb_posts_text');
  308. define('BB_POSTS_HTML', 'bb_posts_html');
  309. define('BB_PRIVMSGS', 'bb_privmsgs');
  310. define('BB_PRIVMSGS_TEXT', 'bb_privmsgs_text');
  311. define('BB_QUOTA_LIMITS', 'bb_quota_limits');
  312. define('BB_QUOTA', 'bb_attach_quota');
  313. define('BB_RANKS', 'bb_ranks');
  314. define('BB_REPORTS', 'bb_reports'); // Report
  315. define('BB_REPORTS_CHANGES', 'bb_reports_changes'); // Report Change's
  316. define('BB_REPORTS_MODULES', 'bb_reports_modules'); // Report Module Table
  317. define('BB_REPORTS_REASONS', 'bb_reports_reasons'); // Report Reasons
  318. define('BB_SEARCH_REBUILD', 'bb_search_rebuild');
  319. define('BB_SEARCH', 'bb_search_results');
  320. define('BB_SESSIONS', 'bb_sessions');
  321. define('BB_SMILIES', 'bb_smilies');
  322. define('BB_TOPIC_TPL', 'bb_topic_tpl');
  323. define('BB_TOPICS', 'bb_topics');
  324. define('BB_TOPICS_WATCH', 'bb_topics_watch');
  325. define('BB_USER_GROUP', 'bb_user_group');
  326. define('BB_USERS', 'bb_users');
  327. define('BB_WORDS', 'bb_words');
  328. define('TORRENT_EXT', 'torrent');
  329. define('TOPIC_DL_TYPE_NORMAL', 0);
  330. define('TOPIC_DL_TYPE_DL', 1);
  331. define('SHOW_PEERS_COUNT', 1);
  332. define('SHOW_PEERS_NAMES', 2);
  333. define('SHOW_PEERS_FULL', 3);
  334. define('SEARCH_ID_LENGTH', 12);
  335. define('SID_LENGTH', 20);
  336. define('LOGIN_KEY_LENGTH', 12);
  337. define('USERNAME_MAX_LENGTH', 25);
  338. define('USEREMAIL_MAX_LENGTH', 40);
  339. define('PAGE_HEADER', INC_DIR .'page_header.php');
  340. define('PAGE_FOOTER', INC_DIR .'page_footer.php');
  341. define('CAT_URL', 'index.php?c=');
  342. define('DOWNLOAD_URL', 'download.php?id=');
  343. define('FORUM_URL', 'viewforum.php?f=');
  344. define('GROUP_URL', 'groupcp.php?g=');
  345. define('LOGIN_URL', $bb_cfg['login_url']);
  346. define('MODCP_URL', 'modcp.php?f=');
  347. define('PM_URL', $bb_cfg['pm_url']);
  348. define('POST_URL', 'viewtopic.php?p=');
  349. define('POSTING_URL', $bb_cfg['posting_url']);
  350. define('PROFILE_URL', 'profile.php?mode=viewprofile&amp;u=');
  351. define('BONUS_URL', 'profile.php?mode=bonus');
  352. define('TOPIC_URL', 'viewtopic.php?t=');
  353. define('USER_AGENT', strtolower($_SERVER['HTTP_USER_AGENT']));
  354. define('UA_OPERA', strpos(USER_AGENT, 'pera'));
  355. define('UA_IE', strpos(USER_AGENT, 'msie'));
  356. define('HTML_SELECT_MAX_LENGTH', 60);
  357. define('HTML_WBR_LENGTH', 12);
  358. define('HTML_CHECKED', ' checked="checked" ');
  359. define('HTML_DISABLED', ' disabled="disabled" ');
  360. define('HTML_READONLY', ' readonly="readonly" ');
  361. define('HTML_SELECTED', ' selected="selected" ');
  362. define('HTML_SF_SPACER', '&nbsp;|-&nbsp;');
  363. // $GPC
  364. define('KEY_NAME', 0); // position in $GPC['xxx']
  365. define('DEF_VAL', 1);
  366. define('GPC_TYPE', 2);
  367. define('GET', 1);
  368. define('POST', 2);
  369. define('COOKIE', 3);
  370. define('REQUEST', 4);
  371. define('CHBOX', 5);
  372. define('SELECT', 6);
  373. if (!empty($banned_user_agents))
  374. {
  375. foreach ($banned_user_agents as $agent)
  376. {
  377. if (strstr(USER_AGENT, $agent))
  378. {
  379. $filename = 'Skachivajte fajly brauzerom (?????????? ????? ?????????)';
  380. $output = '@';
  381. header('Content-Type: text/plain');
  382. header('Content-Disposition: attachment; filename="'. $filename .'"');
  383. die($output);
  384. }
  385. }
  386. }
  387. // Functions
  388. function send_no_cache_headers ()
  389. {
  390. header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
  391. header('Last-Modified: '. gmdate('D, d M Y H:i:s'). ' GMT');
  392. header('Cache-Control: no-store, no-cache, must-revalidate');
  393. header('Cache-Control: post-check=0, pre-check=0', false);
  394. header('Pragma: no-cache');
  395. }
  396. function bb_exit ($output = '')
  397. {
  398. if ($output)
  399. {
  400. echo $output;
  401. }
  402. exit;
  403. }
  404. function prn_r ($var, $title = '', $print = true)
  405. {
  406. $r = '<pre>'. (($title) ? "<b>$title</b>\n\n" : '') . htmlspecialchars(print_r($var, true)) .'</pre>';
  407. if ($print) echo $r;
  408. return $r;
  409. }
  410. function pre ($var, $title = '', $print = true)
  411. {
  412. prn_r($var, $title, $print);
  413. }
  414. function prn ()
  415. {
  416. if (!DBG_USER) return;
  417. foreach (func_get_args() as $var) prn_r($var);
  418. }
  419. function vdump ($var, $title = '')
  420. {
  421. echo '<pre>'. (($title) ? "<b>$title</b>\n\n" : '');
  422. var_dump($var);
  423. echo '</pre>';
  424. }
  425. function htmlCHR ($txt, $double_encode = false, $quote_style = ENT_QUOTES, $charset = 'UTF-8')
  426. {
  427. return (string) htmlspecialchars($txt, $quote_style, $charset, $double_encode);
  428. }
  429. function html_ent_decode ($txt, $quote_style = ENT_QUOTES, $charset = 'UTF-8')
  430. {
  431. return (string) html_entity_decode($txt, $quote_style, $charset);
  432. }
  433. function make_url ($path)
  434. {
  435. return FULL_URL . preg_replace('#^\/?(.*?)\/?$#', '\1', $path);
  436. }
  437. require(INC_DIR .'functions.php');
  438. require(INC_DIR .'sessions.php');
  439. require(INC_DIR .'template.php');
  440. require(INC_DIR .'db/mysql.php');
  441. define('SQL_LAYER', 'mysql');
  442. $bb_cfg = array_merge(bb_get_config(BB_CONFIG), $bb_cfg);
  443. $user = new user_common();
  444. $userdata =& $user->data;
  445. if (DBG_USER) require(INC_DIR .'functions_dev.php');
  446. $html = new html_common();
  447. $log_action = new log_action();
  448. $ads = new ads_common();
  449. // !!! Temporarily (??) 'cat_forums' always enqueued
  450. $datastore->enqueue(array(
  451. 'cat_forums',
  452. ));
  453. // ???? ?????? ?????? ???????
  454. if(!$bb_cfg['board_startdate'])
  455. {
  456. bb_update_config(array('board_startdate' => TIMENOW));
  457. DB()->query("UPDATE ". BB_USERS ." SET user_regdate = ". TIMENOW ." WHERE user_id IN(2, ". EXCLUDED_USERS_CSV .")");
  458. }
  459. // Cron
  460. if ((empty($_POST) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !defined('IN_SERVICE') && !file_exists(CRON_RUNNING) && ($bb_cfg['cron_enabled'] || defined('START_CRON'))) || defined('FORCE_CRON'))
  461. {
  462. if (TIMENOW - $bb_cfg['cron_last_check'] > $bb_cfg['cron_check_interval'])
  463. {
  464. // Update cron_last_check
  465. bb_update_config(array('cron_last_check' => (TIMENOW + 10)));
  466. define('CRON_LOG_ENABLED', true); // global ON/OFF
  467. define('CRON_FORCE_LOG', false); // always log regardless of job settings
  468. define('CRON_DIR', INC_DIR .'cron/');
  469. define('CRON_JOB_DIR', CRON_DIR .'jobs/');
  470. define('CRON_LOG_DIR', 'cron/'); // inside LOG_DIR
  471. define('CRON_LOG_FILE', 'cron'); // without ext
  472. bb_log(date('H:i:s - ') . getmypid() .' -x-- DB-LOCK try'. LOG_LF, CRON_LOG_DIR .'cron_check');
  473. if (DB()->get_lock('cron', 1))
  474. {
  475. bb_log(date('H:i:s - ') . getmypid() .' --x- DB-LOCK OBTAINED !!!!!!!!!!!!!!!!!'. LOG_LF, CRON_LOG_DIR .'cron_check');
  476. sleep(2);
  477. require(CRON_DIR .'cron_init.php');
  478. DB()->release_lock('cron');
  479. }
  480. }
  481. }
  482. $dl_link_css = array(
  483. DL_STATUS_RELEASER => 'genmed',
  484. DL_STATUS_WILL => 'dlWill',
  485. DL_STATUS_DOWN => 'leechmed',
  486. DL_STATUS_COMPLETE => 'seedmed',
  487. DL_STATUS_CANCEL => 'dlCancel',
  488. );
  489. $dl_status_css = array(
  490. DL_STATUS_RELEASER => 'genmed',
  491. DL_STATUS_WILL => 'dlWill',
  492. DL_STATUS_DOWN => 'dlDown',
  493. DL_STATUS_COMPLETE => 'dlComplete',
  494. DL_STATUS_CANCEL => 'dlCancel',
  495. );
  496. // Show 'Board is disabled' message if needed
  497. if ($bb_cfg['board_disable'] && !defined('IN_ADMIN') && !defined('IN_LOGIN') && !defined('IN_AJAX'))
  498. {
  499. message_die(GENERAL_MESSAGE, 'BOARD_DISABLE');
  500. }