View file blog/tags.php

File size: 5.55Kb
<?php
#-----------------------------------------------------#
#          ********* ROTORCMS *********               #
#              Made by  :  VANTUZ                     #
#               E-mail  :  [email protected]         #
#                 Site  :  http://pizdec.ru           #
#             WAP-Site  :  http://visavi.net          #
#                  ICQ  :  36-44-66                   #
#  Вы не имеете право вносить изменения в код скрипта #
#        для его дальнейшего распространения          #
#-----------------------------------------------------#
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/header.php');

if (isset($_GET['act'])) {
	$act = check($_GET['act']);
} else {
	$act = 'index';
} 
if (isset($_GET['start'])) {
	$start = abs(intval($_GET['start']));
} else {
	$start = 0;
} 

switch ($act):
############################################################################################
##                                    Главная страница                                    ##
############################################################################################
	case 'index':

		show_title('site.png', 'Облако тегов');
		$config['newtitle'] = 'Блоги - Облако тегов';

		if (@filemtime(DATADIR."temp/tagcloud.dat") < time()-3600) {
			$querytag = DB::run() -> query("SELECT `blogs_tags` FROM `blogs`;");
			$tags = $querytag -> fetchAll(PDO::FETCH_COLUMN);

			$alltag = implode(',', $tags);
			$dumptags = preg_split('/[\s]*[,][\s]*/s', $alltag);
			$arraytags = array_count_values(array_map('utf_lower', $dumptags));

			arsort($arraytags);
			array_splice($arraytags, 50);
			shuffle_assoc($arraytags);

			file_put_contents(DATADIR."temp/tagcloud.dat", serialize($arraytags), LOCK_EX);
		} 

		$arraytags = unserialize(file_get_contents(DATADIR."temp/tagcloud.dat"));

		$max = max($arraytags);
		$min = min($arraytags);

		echo '<div style="text-align:center">';

		foreach ($arraytags as $key => $val) {
			if ($min == $max) {
				$fontsize = 90;
			} else {
				$fontsize = round((($val - $min) / ($max - $min)) * 110 + 90);
			} 

			echo '<a href="tags.php?act=search&amp;tags='.urlencode($key).'&amp;'.SID.'"><span style="font-size:'.$fontsize.'%">'.$key.'</span></a> ';
		} 
		echo '</div><br />';
	break;

	############################################################################################
	##                                    Главная страница                                    ##
	############################################################################################
	case 'search':

		show_title('site.png', 'Поиск по тегам');
		$config['newtitle'] = 'Блоги - Поиск по тегам';

		$tags = (isset($_GET['tags'])) ? check($_GET['tags']) : '';

		if (!is_utf($tags)){
			$tags = win_to_utf($tags);
		}

		if (utf_strlen($tags) >= 2) {
			echo 'Поиск запроса <b>&quot;'.$tags.'&quot;</b> в метках<br />';

			if (empty($_SESSION['findresult']) || empty($_SESSION['blogfind']) || $tags!=$_SESSION['blogfind']) {
				$querysearch = DB::run() -> query("SELECT `blogs_id` FROM `blogs` WHERE `blogs_tags` LIKE '%".$tags."%' LIMIT 500;");
				$result = $querysearch -> fetchAll(PDO::FETCH_COLUMN);
				
				$_SESSION['blogfind'] = $tags;
				$_SESSION['findresult'] = $result;
			} 

			$total = count($_SESSION['findresult']);

			if ($total > 0) {
				if ($start >= $total) {
					$start = last_page($total, $config['blogpost']);
				} 

				echo 'Найдено совпадений: <b>'.$total.'</b><br /><br />';

				$result = implode(',', $_SESSION['findresult']);

				$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'].";");

				while ($data = $queryblog -> fetch()) {
					if ($data['blogs_rating'] > 0) {
						$data['blogs_rating'] = '<span style="color:#00aa00">+'.$data['blogs_rating'].'</span>';
					} 
					if ($data['blogs_rating'] < 0) {
						$data['blogs_rating'] = '<span style="color:#ff0000">'.$data['blogs_rating'].'</span>';
					} 

					echo '<div class="b"><img src="../images/img/edit.gif" alt="image" /> ';
					echo '<b><a href="blog.php?act=view&amp;id='.$data['blogs_id'].'&amp;'.SID.'">'.$data['blogs_title'].'</a></b> ('.$data['blogs_rating'].')</div>';

					echo '<div>Категория: <a href="blog.php?cid='.$data['cats_id'].'&amp;'.SID.'">'.$data['cats_name'].'</a><br />';
					echo 'Просмотров: '.$data['blogs_read'].'<br />';
					echo 'Метки: '.$data['blogs_tags'].'<br />';
					echo 'Автор: '.profile($data['blogs_user']).'  ('.date_fixed($data['blogs_time']).')</div>';
				} 

				page_strnavigation('tags.php?act=search&amp;tags='.urlencode($tags).'&amp;', $config['blogpost'], $start, $total);
			} else {
				show_error('По вашему запросу ничего не найдено!');
			} 
		} else {
			show_error('Ошибка! Необходимо не менее 2-х символов в запросе!');
		} 

		echo '<img src="../images/img/balloon.gif" alt="Облако" /> <a href="tags.php?'.SID.'">Облако</a><br />';
	break;

default:
	redirect("tags.php?".SID);
endswitch;

echo '<img src="../images/img/back.gif" alt="Блоги" /> <a href="index.php?'.SID.'">К блогам</a><br />';

include_once ('../themes/footer.php');
?>