Просмотр файла lib/includes/category/view.php

Размер файла: 5.05Kb
  1. <?php
  2.  
  3. Core::get('cache.class', 'classes');
  4.  
  5. $cache = new cache(H . 'engine/files/tmp/lib[cat='.$id.';page='.(isset($_GET['page']) ? intval($_GET['page']) : 1).'].swc');
  6.  
  7. if ($id) {
  8. $cat = $sql->query("SELECT `refid`, `name`, `mod` FROM `mod_lib` WHERE `id` = " . $id . " AND `type` = 'cat'")->fetch();
  9. if ($cat === FALSE) {
  10. /* Категория не найдена */
  11. $set['title'] = 'Библиотека';
  12. require H . 'engine/includes/head.php';
  13. $error = 'Категория не найдена <a href="?act=category&amp;mod=view">Продолжить</a>';
  14. }
  15. } else {
  16. $id = 0;
  17. }
  18. if (empty($error)) {
  19.  
  20. $set['title'] = isset($cat) ? htmlspecialchars($cat['name']) : 'Категории';
  21. require H . 'engine/includes/head.php';
  22. if (!$cache->life())
  23. {
  24. ob_start();
  25.  
  26. echo '<div class="fmenu"><b>' . 'Библиотека' . ' | '
  27. . ( isset($cat) ? htmlentities($cat['name'], ENT_QUOTES, 'UTF-8') : 'Категории' )
  28. . '</b></div>';
  29.  
  30. Core::get('page.class', 'classes');
  31. /* Счетчики */
  32. $total_cat = intval($sql->query("SELECT COUNT(*) FROM `mod_lib` WHERE `refid` = " . $id . " AND `type` = 'cat'")->result());
  33. $total_arc = intval($sql->query("SELECT COUNT(*) FROM `mod_lib` WHERE `refid` = " . $id . " AND `type` = 'arc' AND `mod` = '0'")->result());
  34. $total = $total_arc + $total_cat;
  35. $page = new page($total, $set['p_str']);
  36. /* Сортировка */
  37. $sortMenu = array(
  38. 'name' => '<a href="?act=category&amp;mod=view&amp;id=' . $id . '&amp;sort=name">Название</a>',
  39. 'time' => '<a href="?act=category&amp;mod=view&amp;id=' . $id . '&amp;sort=time">Время</a>',
  40. 'comm' => '<a href="?act=category&amp;mod=view&amp;id=' . $id . '&amp;sort=comm">Комментарии</a>',
  41. 'rate' => '<a href="?act=category&amp;mod=view&amp;id=' . $id . '&amp;sort=rate">Рейтинг</a>'
  42. );
  43. $sort = !empty($_REQUEST['sort']) ? (array_key_exists($_REQUEST['sort'], $sortMenu) ? $_REQUEST['sort'] : 'name') : 'name';
  44. switch ($sort) {
  45. case 'time':
  46. $sortMenu['time'] = 'Время';
  47. $order = "`time` DESC";
  48. break;
  49. case 'rate':
  50. $sortMenu['rate'] = 'Рейтинг';
  51. $order = "`rate_all` DESC";
  52. break;
  53. case 'comm':
  54. $sortMenu['comm'] = 'Комментарии';
  55. $order = "`comm_count` DESC";
  56. break;
  57. case 'name': // Не ставить break;
  58. default:
  59. $sortMenu['name'] = 'Название';
  60. $order = "`name` ASC";
  61. break;
  62. }
  63. echo '<div class="fmenu">Сортировка: ';
  64. foreach($sortMenu as $menu)
  65. echo $menu . ' &nbsp; &nbsp; ';
  66. echo '</div>';
  67. if (isset($cat)) {
  68. /* Ссылка для перехода на категорию выше */
  69. $ref = $sql->query("SELECT `name` FROM `mod_lib` WHERE `id` = " . $cat['refid'] . " AND `type` = 'cat'")->fetch();
  70. if ($ref == FALSE) $ref['name'] = 'Категории';
  71. echo '<div class="msg"><img src="/lib/files/icons/up.png"/> <a href="?act=category&amp;mod=view&amp;id=' . $cat['refid'] . '">' .
  72. htmlentities($ref['name'], ENT_QUOTES, 'UTF-8') . '</a></div>';
  73. unset($ref);
  74. }
  75. /* Список категорий и статей */
  76. if ($total > 0) {
  77. $query = $sql->query(
  78. "SELECT `id`, `refid`, `name`, `announce`, `counter`, `count_arc`, `type`, `tags`, `time`, `author_id`, `author_name`, " .
  79. "(`rate_plus` - `rate_minus`) as `rate_all`, `comm_count`, `views`, `uni_views`, `mod` " .
  80. "FROM `mod_lib` WHERE `refid` = " . $id . " " .
  81. "AND (`type` = 'cat' OR (`type` = 'arc' AND `mod` = '0')) ORDER BY `type` DESC, " . $order . " LIMIT " . $page->limit()
  82. );
  83. $i = 0;
  84. while($content = $sql->fetch()) {
  85. echo '<div class="'. ($i % 2 ? 'p_m' : 'p_t') . '">'
  86. . ($content['type'] == 'arc'
  87. ? display_article($content)
  88. : display_category($content, '?act=category&amp;mod=view&amp;id=')
  89. )
  90. . '</div>';
  91. $i++;
  92. }
  93. } else {
  94. echo '<div class="menu">Список пуст</div>';
  95. }
  96. echo '<div class="fmenu">Всего: ' . $total . '</div>';
  97. /* Постраничная навигация */
  98. $page->display('?act=category&amp;mod=view&amp;id=' . $id . '&amp;sort=' . $sort . '&amp;');
  99. $cache->write();
  100. }
  101. echo $cache->read();
  102.  
  103.  
  104. /* Различные функции */
  105. echo '<div class="menu"><a href="index.php">В библиотеку</a>';
  106. if ( $id > 0 && ((isset($cat['mod']) && $cat['mod'] == 1 && $user_id) || $moder)) {
  107. echo '<br /><a href="?act=articles&amp;mod=form&amp;do=add&amp;id=' . $id . '">Добавить статью</a>'
  108. . '<br /><a href="?act=articles&amp;mod=upload&amp;id=' . $id . '">Загрузить статью</a>';
  109. }
  110. if ($admin) {
  111. echo '<br /><a href="?act=category&amp;mod=add&amp;id=' . $id . '">Добавить категорию</a>' .
  112. ($id !== 0
  113. ? '<br /><a href="?act=category&amp;mod=edit&amp;id=' . $id . '">Редактировать категорию</a>'
  114. . '<br /><a href="?act=category&amp;mod=remove&amp;id=' . $id . '">Удалить категорию</a>'
  115. . '<br /><a href="?act=category&amp;mod=move&amp;id=' . $id . '">Переместить категорию</a>'
  116. : ''
  117. );
  118. }
  119. echo '</div>';
  120. }