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

Размер файла: 5.55Kb
  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/header.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::run() -> 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('utf_lower', $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='.urlencode($key).'&amp;'.SID.'"><span style="font-size:'.$fontsize.'%">'.$key.'</span></a> ';
  67. }
  68. echo '</div><br />';
  69. break;
  70.  
  71. ############################################################################################
  72. ## Главная страница ##
  73. ############################################################################################
  74. case 'search':
  75.  
  76. show_title('site.png', 'Поиск по тегам');
  77. $config['newtitle'] = 'Блоги - Поиск по тегам';
  78.  
  79. $tags = (isset($_GET['tags'])) ? check($_GET['tags']) : '';
  80.  
  81. if (!is_utf($tags)){
  82. $tags = win_to_utf($tags);
  83. }
  84.  
  85. if (utf_strlen($tags) >= 2) {
  86. echo 'Поиск запроса <b>&quot;'.$tags.'&quot;</b> в метках<br />';
  87.  
  88. if (empty($_SESSION['findresult']) || empty($_SESSION['blogfind']) || $tags!=$_SESSION['blogfind']) {
  89. $querysearch = DB::run() -> query("SELECT `blogs_id` FROM `blogs` WHERE `blogs_tags` LIKE '%".$tags."%' LIMIT 500;");
  90. $result = $querysearch -> fetchAll(PDO::FETCH_COLUMN);
  91. $_SESSION['blogfind'] = $tags;
  92. $_SESSION['findresult'] = $result;
  93. }
  94.  
  95. $total = count($_SESSION['findresult']);
  96.  
  97. if ($total > 0) {
  98. if ($start >= $total) {
  99. $start = last_page($total, $config['blogpost']);
  100. }
  101.  
  102. echo 'Найдено совпадений: <b>'.$total.'</b><br /><br />';
  103.  
  104. $result = implode(',', $_SESSION['findresult']);
  105.  
  106. $queryblog = DB::run() -> 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'].";");
  107.  
  108. while ($data = $queryblog -> fetch()) {
  109. if ($data['blogs_rating'] > 0) {
  110. $data['blogs_rating'] = '<span style="color:#00aa00">+'.$data['blogs_rating'].'</span>';
  111. }
  112. if ($data['blogs_rating'] < 0) {
  113. $data['blogs_rating'] = '<span style="color:#ff0000">'.$data['blogs_rating'].'</span>';
  114. }
  115.  
  116. echo '<div class="b"><img src="../images/img/edit.gif" alt="image" /> ';
  117. echo '<b><a href="blog.php?act=view&amp;id='.$data['blogs_id'].'&amp;'.SID.'">'.$data['blogs_title'].'</a></b> ('.$data['blogs_rating'].')</div>';
  118.  
  119. echo '<div>Категория: <a href="blog.php?cid='.$data['cats_id'].'&amp;'.SID.'">'.$data['cats_name'].'</a><br />';
  120. echo 'Просмотров: '.$data['blogs_read'].'<br />';
  121. echo 'Метки: '.$data['blogs_tags'].'<br />';
  122. echo 'Автор: '.profile($data['blogs_user']).' ('.date_fixed($data['blogs_time']).')</div>';
  123. }
  124.  
  125. page_strnavigation('tags.php?act=search&amp;tags='.urlencode($tags).'&amp;', $config['blogpost'], $start, $total);
  126. } else {
  127. show_error('По вашему запросу ничего не найдено!');
  128. }
  129. } else {
  130. show_error('Ошибка! Необходимо не менее 2-х символов в запросе!');
  131. }
  132.  
  133. echo '<img src="../images/img/balloon.gif" alt="Облако" /> <a href="tags.php?'.SID.'">Облако</a><br />';
  134. break;
  135.  
  136. default:
  137. redirect("tags.php?".SID);
  138. endswitch;
  139.  
  140. echo '<img src="../images/img/back.gif" alt="Блоги" /> <a href="index.php?'.SID.'">К блогам</a><br />';
  141.  
  142. include_once ('../themes/footer.php');
  143. ?>