View file modules/news/view.php

File size: 8.1Kb
<?php
define('SHCMS_ENGINE',true);
include_once('../../engine/system/core.php');

//Обрабатываем $_GET
$id = filter_input(INPUT_GET,'id',FILTER_SANITIZE_NUMBER_INT);
/* @var $id type intval */
$id = intval($id);
//Создаем массив
$error = array();

    //Если нужные параметры не доступны
    if (!isset($id) || !is_numeric($id)) {
        header('Location: index.php');
        exit;
    }
	
	//Выводим название с базы для title
        $news = $db->get_array($db->query("SELECT * FROM `news` WHERE `id` = '".$id."'"));
        $templates->template($news['title'],$news['text'],$news['title']); //Название страницы

        //Определяем ник
	$nick = $user->users($news['id_user'],array('nick'),false);
	//Определяем id
        $id_users = $user->users($news['id_user'],array('id'));
                          
        //Обновляем таблицу view (Чтобы счетчик просмотров поднимался)
        $db->query("UPDATE `news` SET `view` = '".($news['view']+1)."' WHERE `id` = '".$id."'");
			
	//Определяем раздел новости
	$views = $db->get_array($db->query("SELECT * FROM `news_category` WHERE `id` = '".$news['id_cat']."'"));
	    //След. и предыдущая новость
            include_once('core/nextview.php');
		
            //Действие для администраторов
	    if($users['group'] == 15) {
                //Редактируем новость
		$resulte = '&nbsp;<a href="setting.news.php?act=editor_sec&id='.$news['id'].'&edit">';
                $resulte .= '<img src="/engine/template/icons/edit.png"></a>';
                //Удаляем новость
		$resulte .= '&nbsp;<a href="setting.news.php?act=delete_sec&id='.$news['id'].'">';
                $resulte .= '<img src="/engine/template/icons/delete.png"></a>';
	    }
									
        //Выводи все записанные данные
        $wview  = '<div class="mainpost"><b style="font-size:14px;">'.$news['title'].'</b>'.$resulte.'';
	$wview .= '<span class="time">'.date::make_date($news['time']).'</span><br/>';
        $wview .= '<div class="details">';
        $wview .= '<span><img src="/engine/template/icons/folder.png">&nbsp;';
        $wview .= '<a style="color:#1E90FF;" href="category.php?id='.$views['id'].'">'.$views['name'].'</a>';
        $wview .= '</span>';
	$wview .= '<span><img src="/engine/template/icons/author.png">&nbsp;';
        $wview .= '<a style="color:#1E90FF;" href="'.MODULE.'profile.php?act=view&id='.$id_users.'">'.$nick.'</a>';
        $wview .= '</span>';
	$wview .= '<span><img src="/engine/template/icons/eye.png">&nbsp;';
        $wview .=  '<font color="#778899">'.engine::number($news['view']).'</font>';
        $wview .=  '</span></div>';
    
    echo $wview;
		
	echo '<div class="lighter row2">'.engine::input_text($news['text']).'</div></div> '; 
	//Выводим счетчик постов
            $row1 =  $db->get_array($db->query("SELECT COUNT(*) FROM `news_comment` WHERE `id_news` = '".$id."'"));
                
                echo '<div class="mainname">Комментарии <b>'.$row1[0].'</b></div>';

		//Из $_POST превращаем в обычные переменные и убираем слэши
                $submit = filter_input(INPUT_POST,'submit');
	        //Из $_POST превращаем в обычные переменные
                $text = filter_input(INPUT_POST, 'text', FILTER_SANITIZE_STRING);
            if(isset($submit)) {

		//Если текст отсутствует
                if(empty($text)) {
                    $error['text'][] = 'Введите комментарий';
                }
		
                //Если пользователь авторизован под своим ником то , добавляем новый пост в базу
		if(empty($error) and $id_user == true) {	
                    $mysql = $db->query("INSERT INTO `news_comment` (`id_user`,`id_news`,`text`,`time`) VALUES ('{$id_user}','{$id}','".$db->safesql($text)."','".time()."')");
		    user::points();
          	    header("Location: view.php?id={$id}");
                }
            }


	//Если авторизован пользователь то выведит ему форма
        if($id_user == true) {

            echo '<div class="mainpost">';
	        
                //Форма для печати сообщений
                $form = new form('?id='.$id.'');
                $form->textarea(false,'text',$otvet, (isset($error['text']) ? '<span style="color:red"><small>' . implode('<br />', $error['text']) . '</small></span><br />' : ''));
                $form->submit('Отправить','submit',true,'btn btn-success');
                $form->display();
	
            echo '</div>';
        }
	//Выводим счетчик постов
        $row = $db->get_array($db->query("SELECT COUNT(*) FROM `news_comment` WHERE `id_news` = '".$id."'"));
        $newlist = new Navigation($row[0],10,true);  
        
	    //Если писем больше 1 выводит из базы данные
            if($row[0] > 0) {
                //Выводим все данные и таблицы `news_comment`
	        $query = $db->query("SELECT * FROM `news_comment` WHERE `id_news` = '".$id."' ORDER BY `id` DESC ". $newlist->limit()."");
	    }else {
                echo engine::error('Комментарий не найдено.');
		echo engine::home(array('Назад','index.php'));
		exit;
	    }		
    echo '<div class="mainpost">';
    echo '<ul class="List_withminiphoto Pad_list">'; 
    
        while($comment = $db->get_array($query)) {
            //Получаем данные о пользователе
            $profile = $db->get_array($db->query("SELECT * FROM `users` WHERE `id` = '{$comment[id_user]}'"));
            //Получение данных о привилегий
            $group = user::users($id_user, array('group'));
            
            echo '<li class="clearfix row3">';
            //Путь к аватарам
            $avatar = '/upload/avatar/' . $profile['avatar'];

                //Если нет аватара выводим аватар по умолчанию
                if ($profile['avatar'] == false or file_exists($avatar) == false) {
                    echo '<a href="/engine/template/icons/default_large.png" class="UserPhotoLink left">';
                    echo '<img src="/engine/template/icons/default_large.png" class="UserPhoto UserPhoto_mini"></a>';
                } else {
                    echo '<a href="' . $avatar . '" title="Просмотр профиля" class="UserPhotoLink left">';
                    echo '<img src="' . $avatar . '" class="UserPhoto UserPhoto_mini"></a>';
                }

            echo '<div class="list_content">';
            
            //Ник Автора сообщения
            echo '<a href="../profile.php?id=' . $profile['id'] . '"><b>' . $profile['nick'] . '</b></a>';
            echo '<span class="time">' . $viewd . '</span>';
            echo '<div class="details">';
            
            //Привиление пользователя
            echo '<span><img src="/engine/template/icons/group.png">&nbsp;' . user::group($comment['id_user']) . '</span>';
            
            //Время добавление сообщения
            echo '<span><img src="/engine/template/icons/date.png">&nbsp;' . date::make_date($comment['time']) . '</span>';
            echo '</div>';
            
            //Текст сообщения
            echo '<div class="lighter row2">' . engine::input_text($comment['text']) . '</div>';
            echo '</div>';
            echo '</li>';
        }
	
    echo '</ul></div>';
//Вывод навигации
echo $newlist->pagination('id='.$id.''); 
//Навигация постраничная							
echo engine::home(array('Назад','index.php'));