Просмотр файла blog/tags.php

Размер файла: 5.98Kb
  1. <?php
  2. #-----------------------------------------------------#
  3. # ********* ROTORCMS ********* #
  4. # Made by : VANTUZ #
  5. # E-mail : visavi.net@mail.ru #
  6. # Site : http://pizdec.ru #
  7. # WAP-Site : http://visavi.net #
  8. # ICQ : 36-44-66 #
  9. # Вы не имеете право вносить изменения в код скрипта #
  10. # для его дальнейшего распространения #
  11. #-----------------------------------------------------#
  12. require_once ('../includes/start.php');
  13. require_once ('../includes/functions.php');
  14. require_once ('../includes/header.php');
  15. include_once ('../themes/' . $config['themes'] . '/index.php');
  16.  
  17. if (isset($_GET['act'])) {
  18. $act = check($_GET['act']);
  19. } else {
  20. $act = 'index';
  21. }
  22. if (isset($_GET['start'])) {
  23. $start = abs(intval($_GET['start']));
  24. } else {
  25. $start = 0;
  26. }
  27.  
  28. switch ($act):
  29. # ###########################################################################################
  30. # # Главная страница ##
  31. # ###########################################################################################
  32. case 'index':
  33.  
  34. show_title('site.png', 'Облако тегов');
  35. $config['newtitle'] = 'Блоги - Облако тегов';
  36.  
  37. if (filemtime(DATADIR . "temp/tagcloud.dat") < time()-3600) {
  38. $querytag = DB :: $dbh -> query("SELECT `blogs_tags` FROM `blogs`;");
  39. $tags = $querytag -> fetchAll(PDO :: FETCH_COLUMN);
  40.  
  41. $alltag = implode(',', $tags);
  42. $dumptags = preg_split('/[\s]*[,][\s]*/s', $alltag);
  43. $arraytags = array_count_values(array_map('rus_utf_tolower', $dumptags));
  44.  
  45. arsort($arraytags);
  46. array_splice($arraytags, 50);
  47. shuffle_assoc($arraytags);
  48.  
  49. file_put_contents(DATADIR . "temp/tagcloud.dat", serialize($arraytags), LOCK_EX);
  50. }
  51.  
  52. $arraytags = unserialize(file_get_contents(DATADIR . "temp/tagcloud.dat"));
  53.  
  54. $max = max($arraytags);
  55. $min = min($arraytags);
  56.  
  57. echo '<div style="text-align:center">';
  58.  
  59. foreach ($arraytags as $key => $val) {
  60. if ($min == $max) {
  61. $fontsize = 90;
  62. } else {
  63. $fontsize = round((($val - $min) / ($max - $min)) * 110 + 90);
  64. }
  65.  
  66. echo '<a href="tags.php?act=search&amp;tags=' . safe_encode($key) . '&amp;' . SID . '"><span style="font-size:' . $fontsize . '%">' . $key . '</span></a> ';
  67. }
  68. echo '</div><br />';
  69.  
  70. break;
  71. # ###########################################################################################
  72. # # Главная страница ##
  73. # ###########################################################################################
  74. case 'search':
  75.  
  76. show_title('site.png', 'Поиск по тегам');
  77. $config['newtitle'] = 'Блоги - Поиск по тегам';
  78.  
  79. if (isset($_GET['tags'])) {
  80. $tags = check($_GET['tags']);
  81. } else {
  82. $tags = '';
  83. }
  84. if (empty($_GET['next'])) {
  85. $_SESSION['findresult'] = '';
  86. }
  87.  
  88. $find = safe_decode($tags);
  89.  
  90. if (utf_strlen($find) >= 2) {
  91. echo 'Поиск запроса <b>&quot;' . $find . '&quot;</b> в метках<br />';
  92.  
  93. if (empty($_SESSION['findresult'])) {
  94. $querysearch = DB :: $dbh -> query("SELECT `blogs_id` FROM `blogs` WHERE `blogs_tags` LIKE '%" . $find . "%' LIMIT 500;");
  95. $result = $querysearch -> fetchAll(PDO :: FETCH_COLUMN);
  96.  
  97. $_SESSION['findresult'] = $result;
  98. }
  99.  
  100. $total = count($_SESSION['findresult']);
  101.  
  102. if ($total > 0) {
  103. if ($start >= $total) {
  104. $start = 0;
  105. }
  106.  
  107. echo 'Найдено совпадений: <b>' . $total . '</b><br /><br />';
  108.  
  109. $result = implode(',', $_SESSION['findresult']);
  110.  
  111. $queryblog = DB :: $dbh -> query("SELECT `blogs`.*, `cats_id`, `cats_name` FROM `blogs` LEFT JOIN `catsblog` ON `blogs`.`blogs_cats_id`=`catsblog`.`cats_id` WHERE `blogs_id` IN (" . $result . ") ORDER BY `blogs_time` DESC LIMIT " . $start . ", " . $config['blogpost'] . ";");
  112.  
  113. while ($data = $queryblog -> fetch()) {
  114. if ($data['blogs_rating'] > 0) {
  115. $data['blogs_rating'] = '<span style="color:#00aa00">+' . $data['blogs_rating'] . '</span>';
  116. }
  117. if ($data['blogs_rating'] < 0) {
  118. $data['blogs_rating'] = '<span style="color:#ff0000">' . $data['blogs_rating'] . '</span>';
  119. }
  120.  
  121. echo '<div class="b"><img src="../images/img/edit.gif" alt="image" /> ';
  122. echo '<b><a href="blog.php?act=view&amp;id=' . $data['blogs_id'] . '&amp;' . SID . '">' . $data['blogs_title'] . '</a></b> (' . $data['blogs_rating'] . ')</div>';
  123.  
  124. echo '<div>Категория: <a href="blog.php?cid=' . $data['cats_id'] . '&amp;' . SID . '">' . $data['cats_name'] . '</a><br />';
  125. echo 'Просмотров: ' . $data['blogs_read'] . '<br />';
  126. echo 'Метки: ' . $data['blogs_tags'] . '<br />';
  127. echo 'Автор: <a href="../pages/anketa.php?uz=' . $data['blogs_user'] . '&amp;' . SID . '">' . nickname($data['blogs_user']) . '</a> (' . date_fixed($data['blogs_time']) . ')</div>';
  128. }
  129.  
  130. page_strnavigation('tags.php?act=search&amp;tags=' . $tags . '&amp;next=1&amp;', $config['blogpost'], $start, $total);
  131. } else {
  132. show_error('По вашему запросу ничего не найдено!');
  133. }
  134. } else {
  135. show_error('Ошибка! Необходимо не менее 2-х символов в запросе!');
  136. }
  137.  
  138. echo '<img src="../images/img/balloon.gif" alt="Облако" /> <a href="tags.php?' . SID . '">Облако</a><br />';
  139. break;
  140.  
  141. default:
  142. header("location: tags.php?" . SID);
  143. endswitch;
  144.  
  145. echo '<img src="../images/img/back.gif" alt="Блоги" /> <a href="index.php?' . SID . '">К блогам</a><br />';
  146. echo '<img src="../images/img/homepage.gif" alt="Главная" /> <a href="../index.php?' . SID . '">На главную</a>';
  147.  
  148. include_once ("../themes/" . $config['themes'] . "/foot.php");
  149.  
  150. ?>