Просмотр файла lib/index.php

Размер файла: 4.46Kb
  1. <?php
  2.  
  3. /**
  4. * @author Screamer
  5. */
  6.  
  7. include '../engine/includes/start.php';
  8.  
  9. define('INCDIR', dirname(__FILE__) . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR);
  10.  
  11. define('FILESDIR', dirname(__FILE__) . DIRECTORY_SEPARATOR . 'files' . DIRECTORY_SEPARATOR);
  12.  
  13. define('ICONSDIR', '/lib/files/icons/');
  14.  
  15. require INCDIR . 'lib' . DIRECTORY_SEPARATOR . 'functions.php';
  16.  
  17. $do = isset($_GET['do']) ? $_GET['do'] : false;
  18. $libSet = unserialize($sql->query("SELECT `val` FROM `mod_lib_set` WHERE `key` = 'set'")->result());
  19.  
  20. /* Закрытие доступа */
  21. if (($libSet['mod_close'] == 1 && !$user_id) || ($libSet['mod_close'] == 2 && !$admin)) {
  22. $set['title'] = 'Библиотека';
  23. require H . 'engine/includes/head.php';
  24. echo Core::msg_show('Доступ запрещен');
  25. require H . 'engine/includes/foot.php';
  26. }
  27.  
  28. /* Список допустимых режимов работы и заголовков страниц для них */
  29. $modes = array(
  30. /* Статьи */
  31. 'articles' => array(
  32. 'attach' => 'Прикрепить &#160; файл',
  33. 'download' => 'Скачать статью',
  34. 'edit' => 'Редактировать статью',
  35. 'form' => ($do == 'add' ? 'Добавить статью' : 'Редактировать статью'),
  36. 'save' => ($do == 'add' ? 'Добавить статью' : 'Редактировать статью'),
  37. 'remove' => 'Удалить статью',
  38. 'move' => 'Переместить статью',
  39. 'upload' => 'Загрузить статью',
  40. 'vote' => 'Опрос',
  41. 'view' => ''
  42. ),
  43. /* Закладки */
  44. 'bookmarks' => array(
  45. 'add' => 'Добавить в закладки',
  46. 'clean' => 'Удаление закладок',
  47. 'remove' => 'Удалить из закладок',
  48. 'view' => 'Мои закладки',
  49. ),
  50. /* Категории */
  51. 'category' => array(
  52. 'add' => 'Добавить категорию',
  53. 'edit' => 'Редактировать категорию',
  54. 'remove' => 'Удалить категорию',
  55. 'move' => 'Переместить категорию',
  56. 'view' => ''
  57. ),
  58. /* Комментарии */
  59. 'comments' => 'Комментарии',
  60. /* Главная страница */
  61. 'mainpage' => array(
  62. 'view' => 'Библиотека'
  63. ),
  64. /* Панель управления */
  65. 'panel' => array(
  66. 'garbage' => 'Сборщик мусора',
  67. 'view' => 'Панель управления',
  68. 'moderation' => 'Статьи на модерации',
  69. 'settings' => 'Настройки',
  70. 'movdel' => (isset($_REQUEST['move']) ? 'Переместить статьи и категории' : 'Удалить статьи и категории')
  71. ),
  72. /* Поиск */
  73. 'search' => array(
  74. 'view' => 'Настройки'
  75. )
  76. );
  77.  
  78. /* Если идет обращение к директорию с файлами */
  79. $folders = array('files');
  80. $uri = explode('/', $_SERVER['REQUEST_URI']);
  81.  
  82. if (!in_array($uri[1], $folders)) {
  83. /* Устанавливаем режим по умолчанию */
  84. $act = !empty($act) ? $act : 'mainpage';
  85. $mod = !empty($_GET['mod']) ? $_GET['mod'] : 'view';
  86. $loading = array_key_exists($act, $modes);
  87. if ($loading) {
  88. if (is_array($modes[$act])) {
  89. $loading = array_key_exists($mod, $modes[$act]);
  90. } else {
  91. $loading = is_string($modes[$act]);
  92. }
  93. }
  94. if ($loading) {
  95. if (is_string($modes[$act])) {
  96. $mode = INCDIR . $act . '.php';
  97. /* Устанавливаем заголовок страницы */
  98. $set['title'] = $modes[$act];
  99. } else {
  100. $mode = INCDIR . $act . DIRECTORY_SEPARATOR . $mod . '.php';
  101. /* Устанавливаем заголовок страницы */
  102. $set['title'] = $modes[$act][$mod];
  103. }
  104. if (file_exists($mode)) {
  105. if (!empty($set['title'])) {
  106. require H . 'engine/includes/head.php';
  107. }
  108. require $mode;
  109. /* Показ ошибок */
  110. if (!empty($error)) {
  111. echo '<div class="fmenu">Библиотека</div>'
  112. . Core::msg_show($error)
  113. . '<div class="fmenu"><a href="index.php">Назад</a></div>';
  114. }
  115. require_once H . 'engine/includes/foot.php';
  116.  
  117. } else {
  118. $error = TRUE;
  119. }
  120. } else {
  121. $error = TRUE;
  122. }
  123. /* Если запрашиваемый режим не найден, перенаправляем на страницу ошибки */
  124. if (isset($error) && $error === TRUE) {
  125. header('Location: /?err');
  126. exit;
  127. }
  128. }