View file blog/tags.php

File size: 6.36Kb
<?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/' . $config['themes'] . '/index.php');

$config['blogpost'] = 10;

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 :: $dbh -> 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('rus_utf_tolower', $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=' . safe_encode($key) . '&amp;' . SID . '"><span style="font-size:' . $fontsize . '%">' . $key . '</span></a> ';
    } 
    echo '</div><br />';

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

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

    if (isset($_GET['tags'])) {
        $tags = check($_GET['tags']);
    } else {
        $tags = '';
    } 
    if (empty($_GET['next'])) {
        $_SESSION['findresult'] = '';
    } 

    $find = safe_decode($tags);

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

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

            $_SESSION['findresult'] = $result;
        } 

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

        if ($total > 0) {
            if ($start >= $total) {
                $start = 0;
            } 

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

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

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

            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 'Автор: <a href="../pages/anketa.php?uz=' . $data['blogs_user'] . '&amp;' . SID . '">' . nickname($data['blogs_user']) . '</a>  (' . date_fixed($data['blogs_time']) . ')</div>';
            } 

            page_strnavigation('tags.php?act=search&amp;tags=' . $tags . '&amp;next=1&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:
    header("location: tags.php?" . SID);
    endswitch;

    echo '<img src="../images/img/back.gif" alt="Блоги" /> <a href="index.php?' . SID . '">К блогам</a><br />';
    echo '<img src="../images/img/homepage.gif" alt="Главная" /> <a href="../index.php?' . SID . '">На главную</a>';

    include_once ("../themes/" . $config['themes'] . "/foot.php");

    ?>