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

Размер файла: 6.91Kb
  1. <?php
  2.  
  3. $error = array();
  4. if (!$id) {
  5. $error[] = 'Ошибка входящих данных'; // =)
  6. } else {
  7. Core::get(array('page.class', 'text.class', 'cache.class'), 'classes');
  8.  
  9. $strs = !empty($_REQUEST['strings']) ? abs(intval($_REQUEST['strings'])) : 500;
  10. $total = mb_strlen($sql->query("SELECT `text` FROM `mod_lib` WHERE `id` = " . $id ." AND `type` = 'arc'")->result());
  11. if (isset($_GET['page']))
  12. {
  13. if ($_GET['page'] == 'end')
  14. $_GET['page'] = ceil($total / $strs);
  15. if ($_GET['page'] > 1)
  16. $start = $_GET['page'] * $strs - $strs;
  17. }
  18. $start = isset($start) == 0 ? 1 : $start;
  19.  
  20. $arc = $sql->query(
  21. "SELECT `refid`, `name`, SUBSTRING(`text` FROM " . $start . " FOR " . $strs
  22. . ") as `content`, `announce`, `tags`, `time`, " .
  23. "`author_id`, `author_name`, `comm_count`, " .
  24. "`views`, `uni_views`, `rate_plus`, `rate_minus`, " .
  25. "`edit_name`, `edit_id`, `edit_time`" .
  26. " FROM `mod_lib` WHERE `id` = " . $id .
  27. " AND `type` = 'arc'" . ($moder ? "" : " AND `mod` = '0'")
  28. )->fetch();
  29. if ($arc !== FALSE) {
  30. $cache = new cache(H . 'engine/files/tmp/lib[arc='.$id.';strs='.$strs.';start='.$start.'].swc');
  31. if (!$cache->life())
  32. {
  33. ob_start();
  34.  
  35. /* Получаем имя родительского каталога */
  36.  
  37. if ($arc['refid'] != 0) {
  38. $cat = $sql->query("SELECT `name` FROM `mod_lib` WHERE `id` = " . $arc['refid'])->fetch();
  39. if ($cat != FALSE) {
  40. $cat = htmlentities($cat['name'], ENT_QUOTES, 'UTF-8');
  41. }
  42. }
  43. $page = new page($total, $strs);
  44. /* Счетчик просмотров */
  45. $libView = isset($_SESSION['lib_view']) ? $_SESSION['lib_view'] : 0;
  46. if ($libView != $id) {
  47. $sql->query("UPDATE `mod_lib` SET `views` = '" . ($arc['views'] + 1) . "' WHERE `id` = " . $id);
  48. $_SESSION['lib_view'] = $id;
  49. }
  50. /* Счетчик уникальных просмотров */
  51. //$user_id = $user_id ? $user_id : md5(core::$ip . core::$ip_via_proxy . core::$user_agent);
  52. $unic = $sql->query("SELECT COUNT(*) FROM `mod_lib_counters` WHERE `uid` = '" . $user_id ."' AND `aid` = '" . $id . "' AND `type` = 0")->result();
  53. if (!$unic) {
  54. $sql->query("UPDATE `mod_lib` SET `uni_views` = '" . ($arc['uni_views'] + 1) . "' WHERE `id` = '" . $id . "'");
  55. $sql->query("INSERT INTO `mod_lib_counters` SET `aid` = '" . $id . "', `uid` = '" . $user_id . "'");
  56. }
  57.  
  58. $text = text::output($arc['content']);
  59.  
  60. $set['title'] = htmlspecialchars($arc['name']);
  61. /* Устанавливаем мета теги */
  62. $set['meta_keywords'] = htmlspecialchars($arc['tags']);
  63. $set['meta_description'] = htmlspecialchars($arc['announce']);
  64.  
  65. require H . 'engine/includes/head.php';
  66.  
  67. echo '<div class="fmenu">' . 'Библиотека' . ' | ' . (!empty($cat) ? $cat . ' | ' : '') . $set['title'] . '</div>';
  68. if ($total > $start)
  69. $page->display('?act=articles&amp;mod=view&amp;id=' . $id . '&amp;strings=' . $strs . '&amp;', $strs);
  70. echo '<div class="post"><b>' . htmlentities($arc['name'], ENT_QUOTES, 'UTF-8');
  71. echo '</b><br />'. $text . '</div>';
  72. if ($total > $start)
  73. $page->display('?act=articles&amp;mod=view&amp;id=' . $id . '&amp;strings=' . $strs . '&amp;', $strs);
  74. echo '<div class="post">' .
  75. (!empty($arc['tags']) ? '<b>Метки:</b>&#160;' . tagsToLinks($arc['tags']) . '<br />' : '') .
  76. '<b>Автор:</b>&#160;'.Core::user_show(Core::get_user($arc['author_id']), array('status' => $arc['time'], 'is_time' => '1')) .
  77. (!empty($arc['edit_time']) ?
  78. '<b>Изменено:</b>&#160;'.Core::user_show(Core::get_user($arc['author_id']), array('status' => $arc['edit_time'], 'is_time' => '1')): '' ) .
  79. '<b>Просмотры:</b>&#160;' . $arc['views'] . '<br />' .
  80. '<b>Уникальных просмотров:</b>&#160;' . $arc['uni_views'] . '<br />' .
  81. '<b>Комментарии:</b>&#160;<a href="?act=comments&amp;id=' . $id . '">' . $sql->query('SELECT count(*) from `mod_lib_comments` where `sub_id` = '.$id)->result() . '</a><br />' .
  82. '<b>Рейтинг</b>:&#160;' .
  83. '<a href="?act=articles&amp;mod=vote&amp;id=' . $id . '&amp;do=1"><img src="' . ICONSDIR . 'minus.png" alt="-" /></a>&#160;' .
  84. ($arc['rate_plus'] - $arc['rate_minus']) .
  85. '&#160;<a href="?act=articles&amp;mod=vote&amp;id=' . $id . '&amp;do=2"><img src="' . ICONSDIR . 'plus.png" alt="+" /></a>&#160;' .
  86. '(За: ' . $arc['rate_plus'] . ' | Против: ' . $arc['rate_minus'] . ')</div>';
  87. /* Прикрепленные файлы */
  88. $ftotal = $sql->query("SELECT COUNT(*) FROM `mod_lib_files` WHERE `aid` = '" . $id . "'")->result();
  89. if ($ftotal != 0) {
  90. echo '<div class="msg"><b>Прикрепленные&#160; файлы:</b><br />';
  91. $sql->query("SELECT `name` FROM `mod_lib_files` WHERE `aid` = " . $id);
  92. while($fdata = $sql->fetch()) {
  93. $fname = htmlentities($fdata['name'], ENT_QUOTES, 'UTF-8');
  94. echo '<a href="/lib/files/attach/' . $fname . '">' . $fname . '</a><br />';
  95. }
  96. echo '</div>';
  97. }
  98. echo '<div class="menu"><b>Символов на страницу:</b><br />' .
  99. '<form action="?act=articles&amp;mod=view&amp;id=' . $id . '" method="post">' .
  100. '<select name="strings">';
  101. $strings = range(500, 3000, 500);
  102. foreach ($strings as $val) {
  103. echo '<option value="' . $val . '"' . ($val == $strs ? ' selected="selected"' : '') . '>' . $val . '</option>';
  104. }
  105. echo '</select><input type="submit" name="submit" value="Сохранить" /></form></div><div class="menu">';
  106. $cache->write();
  107. }
  108. echo $cache->helper()->read();
  109.  
  110. /* Добавление статьи в закладки / Удаление статьи из закладок */
  111. $bookmark = $sql->query(
  112. "SELECT COUNT(*) FROM `mod_lib_counters` " .
  113. "WHERE `aid` = '" . $id .
  114. "' AND `uid` = '" . $user_id .
  115. "' AND `type` = '2'"
  116. )->result();
  117. $bmLink = $bookmark
  118. ? '<a href="?act=bookmarks&amp;mod=remove&amp;id=' . $id . '">Удалить из закладок</a>'
  119. : '<a href="?act=bookmarks&amp;mod=add&amp;id=' . $id . '">Добавить в закладки</a>';
  120. echo '<a href="?act=' .
  121. (isset($_GET['panel']) ? 'panel&amp;mod=view&amp;id=' . $arc['refid'] : 'category&amp;mod=view&amp;id=' . $arc['refid'])
  122. . '">Назад</a><br /><a href="index.php">В библиотеку</a><br />' .
  123. '<a href="?act=articles&amp;mod=download&amp;id=' . $id . '">Загрузить</a><br />' . $bmLink;
  124. if ($admin) {
  125. echo '<br /><a href="?act=articles&amp;mod=move&amp;id=' . $id . '">Переместить</a>' .
  126. '<br /><a href="?act=articles&amp;mod=form&amp;id=' . $id . '&amp;do=edit">Редактировать</a>' .
  127. '<br /><a href="?act=articles&amp;mod=remove&amp;id=' . $id . '">Удалить</a>';
  128. }
  129. echo '</div>';
  130. } else {
  131. $error[] = 'Статья не найдена';
  132. }
  133. }
  134. if (!empty($error)) {
  135. $set['title'] = 'Библиотека';
  136. require H . 'engine/includes/head.php';
  137. }