View file modules/news/index.php

File size: 13.11Kb
<?php
define('SHCMS_ENGINE',true);
include_once('../../engine/system/core.php');
$templates->template(Lang::__('Новости')); //Название страницы
	
switch($do):
    //По умолчанию выводим основные параметры новостей
    default:
	//Доступ у кого имеются права 15
        if($groups->setAdmin($user_group) == 15) {
            $nview  = '<div class="mainname">'.Lang::__('Управление').'</div>';
            $nview .= '<div class="mainpost"><center>';
            //Добавляем категорию
            $nview .= '<div class="btn-group">';
            $nview .= '<a class="btn btn-small btn-success" href="new.category.php">';
            $nview .= '<img src="/engine/template/icons/folder_add.png">';
            $nview .= '&nbsp;'.Lang::__('Добавить категорию').'</a>&nbsp;';  
            //Настраиваем категорию
            $nview .= '<a class="btn btn-small btn-inverse" href="setting.category.php">';
            $nview .= '<img src="/engine/template/icons/app.png">&nbsp;';
            $nview .= '&nbsp;'.Lang::__('Настройка категорий').'</a>';
            //Настраиваем добавленные новости
            $nview .= '&nbsp;<a class="btn btn-small btn-inverse" href="setting.news.php">';
            $nview .= '<img src="/engine/template/icons/app.png">';
            $nview .= '&nbsp;'.Lang::__('Настройка новостей').'</a>&nbsp;';
            $nview .= '&nbsp;</div></center></div>';
            
            //Получаем все данные 
            echo $nview;
        }
        //Если есть хоть одна категория начинаем добавлять новость
        $ncategory = $db->query("SELECT * FROM `news_category`");
            if($db->num_rows($ncategory) > 0 and $users['group'] == 15) {
                $aview .= '<div style="text-align:right;font-weight:bold;" class="subpost">';
                $aview .= '<a href="new.news.php">';
                $aview .= '<img src="/engine/template/icons/add.png">&nbsp;'.Lang::__('Опубликовать новость').'</a>';
                $aview .= '</div>';
                
                echo $aview;
            }
        //Дополнительные параметры
	echo '<div class="mainname">Разделы</div>';
            echo '<div class="mainpost">';
	    //Поиск новостей
            echo '<center><a class="btn btn-small" href="?do=input_search">';
            echo '<img src="/engine/template/icons/search.png"> Поиск Новостей</a>&nbsp;&nbsp;';
            //Все действующие категории
            echo '<a class="btn btn-small" href="?do=category">';
            echo '<img src="/engine/template/icons/chart.png"> Категории</a></center>';
	    
            echo '</div>';
			
	//Выводим счетчик постов
        $row = $db->get_array($db->query("SELECT COUNT(*) FROM `news`")); 
        $newlist = new Navigation($row[0],25, true); 
	    //Если писем больше 1 выводит из базы данные
            if($row[0] > 0) {
	        $query = $db->query("SELECT * FROM `news` ORDER BY `id` DESC ". $newlist->limit()."");
	    }else {
		echo '<div class="mainpost">Новостей не найдено.</div>';
		exit;
	    }		

        while($news = $db->get_array($query)) {
            //Определяем ник
	    $nick = $user->users($news['id_user'],array('nick'),false);
	    //Определяем id
            $id_users = $user->users($news['id_user'],array('id'));
	    //Определяем раздел новости
	    $views = $db->get_array($db->query("SELECT * FROM `news_category` WHERE `id` = '".$news['id_cat']."'"));
	    //Выводим счетчик постов
            $row1 = $db->get_array($db->query("SELECT COUNT(*) FROM `news_comment` WHERE `id_news` = '".$news['id']."'"));
            //Проверяем
            if (!$int) {$int = 3;}
            //Cчитаем
            $hostTime = time();
                echo '<div class="mainpost">';
                //Выводим
                if ($hostTime > $news['time']) {
	            $resultDays = floor(($hostTime - $news['time'])/86400);
                    
                    if ( $resultDays  <= $int ) {
                        echo  '<img src="/engine/template/icons/new.gif">&nbsp;';
                    }    
                }
                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>';
		}
 	    //Выводи все записанные данные
            echo '<b style="font-size:13px;">'.$news['title'].'</b>'.$resulte.'';
            echo '<span class="time">'.date::make_date($news['time']).'</span><br/>';
            echo '<div class="details">';
            echo '<span><img src="/engine/template/icons/folder.png">&nbsp;';
            echo '<a style="color:#1E90FF;" href="category.php?id='.$views['id'].'">'.$views['name'].'</a>';
            echo '</span>';
	    echo '<span><img src="/engine/template/icons/author.png">&nbsp;';
            echo '<a style="color:#1E90FF;" href="'.MODULE.'profile.php?act=view&id='.$id_users.'">'.$nick.'</a>';
            echo '</span>';
	    echo '<span><img src="/engine/template/icons/eye.png">&nbsp;';
            echo '<font color="#778899">'.engine::number($news['view']).'</font></span>';
	    echo '<span><img src="/engine/template/icons/comment.png">&nbsp;';
            echo '<a style="color:#1E90FF;" href="view.php?id='.$news['id'].'">'.engine::number($row1[0]).' Комментарий</a>';
            echo '</span></div>';
	    echo '<div class="lighter row2">'.engine::input_text($news['cr_news']).'</div>';  
            echo '<div class="row" style="height: 5px;line-height: 100%;padding: 10px 20px;">';
            echo '<span style="float:right;">';
            echo '<img align="middle" src="/engine/template/icons/view.png">&nbsp;';
            echo '<a href="view.php?id='.$news['id'].'">Читать дальше &raquo;</a></span>';
            echo '</div></div>';

        }
        //Вывод навигации
        echo $newlist->pagination(); 
    
    break;

    //Выводим все категории
    case 'category':
	echo '<div class="mainname">Все категории</div>';
	echo '<div class="mainpost">';
	    $lcat = $db->query( "SELECT * FROM `news_category`" );
                //Вывод всех категорий          
		while($category = $db->get_array($lcat)) { 
                    //Счетчик новостей в категории
		    $cont = $db->get_array($db->query("SELECT COUNT(*) FROM `news` WHERE `id_cat` = '".intval($category['id'])."'"));
			
                        echo '<a href="category.php?id='.intval($category['id']).'">';
                        echo '<div class="row">';
                        echo '<img src="/engine/template/icons/list.png"> ';
                        echo $category['name'];
                        echo '<div class="time">'.$cont[0].'</div>';
                        echo '</div></a>';
		}
 	echo '</div>';
    break;
    
    //Форма для поиска новостей
    case 'input_search':
	echo '<div class="mainname">'.Lang::__('Поиск Новостей').'</div>';
            echo '<div class="mainpost">';
		$form = new form('index.php?do=search');
		$form->input2(false,'search','text',false,'placeholder="Поиск новостей..."',false,false);
		$form->submit('Искать','submit2');
		$form->display();
	    echo '</div>';

    break;

    //Обработка поиска и получение данных
    case 'search':

	function search($query) { 
	    global $db,$user;
    			
	$query = engine::trim($query); 
    	$query = $db->safesql($query);
    	$query = htmlspecialchars($query);
    	
        if (!empty($query)) { 
            if (strlen($query) < 3) {
            	$text = '<p>Слишком короткий поисковый запрос.</p>';   
            } else if (strlen($query) > 128) {
            	$text = '<p>Слишком длинный поисковый запрос.</p>';
            } else { 
            	$q = "SELECT * FROM `news` WHERE `title` LIKE '%$query%'";
            	$result = $db->query($q);

            if ($db->num_rows($result) > 0) { 
                $row = $db->get_array($result); 
                $num = $db->num_rows($result);
	        
                $text = '<div class="mainname">По запросу <b>'.$query.'</b> найдено совпадений: '.$num.'</div>';
                $text .= '<div class="mainpost">';
		$text .= '<ul class="List_withminiphoto Pad_list">';	
                	
                    do {
                    	// Делаем запрос, получающий ссылки на статьи
                    	$q1 = "SELECT * FROM `news` WHERE `id` = '$row[id]'";
                    	$result1 = $db->query($q1);
                            if ($db->num_rows() > 0) {
                        	$row1 = $db->get_array($result1);
                   	    }
                            //Определяем ник
		            $nick = $user->users($row['id_user'],array('nick'),false);
		            //Определяем id
                            $id_users = $user->users($row['id_user'],array('id'));
		            //Определяем раздел новости
		            $views = $db->get_array($db->query("SELECT * FROM `news_category` WHERE `id` = '".$row['id_cat']."'"));
		            //Выводим счетчик постов
                            $row1 = $db->get_array($db->query("SELECT COUNT(*) FROM `news_comment` WHERE `id_news` = '".$row['id']."'"));
                        //Проверяем
                        if (!$int) {$int = 3;}
                        //Cчитаем
                        $hostTime = time();
                    echo '<div class="mainpost">';
                    
                    //Выводим
                    if ($hostTime > $row['time']) {
	                $resultDays = floor(($hostTime - $row['time'])/86400);
                        
                        if ( $resultDays  <= $int ) {
                            echo  '<img src="/engine/template/icons/new.gif">&nbsp;';
                        }    
                    }
	                //Выводи все записанные данные
                        echo '<b style="font-size:13px;">'.engine::search_text($query,$row['title']).'</b>';
                        echo '<span class="time">'.date::make_date($row['time']).'</span><br/>';
                        echo '<div class="details"><span><img src="/engine/template/icons/folder.png">&nbsp;';
                        echo '<a style="color:#1E90FF;" href="category.php?id='.$views['id'].'">'.$views['name'].'</a>';
                        echo '</span>';
		        echo '<span><img src="/engine/template/icons/author.png">&nbsp;';
                        echo '<a style="color:#1E90FF;" href="'.MODULE.'profile.php?act=view&id='.$id_users.'">'.$nick.'</a>';
                        echo '</span>';
		        echo '<span><img src="/engine/template/icons/eye.png">&nbsp;';
                        echo '<font color="#778899">'.$row['view'].'</font></span>';
		        echo '<span><img src="/engine/template/icons/comment.png">&nbsp;';
                        echo '<a style="color:#1E90FF;" href="view.php?id='.$row['id'].'">'.engine::number($row1[0]).' Комментарий</a>';
                        echo '</span></div>';
		        echo '<div class="row">'.$row['cr_news'].'</div>';  
                        echo '<div class="row" style="height: 5px;line-height: 100%;padding: 10px 20px;">';
                        echo '<span style="float:right;"><a href="view.php?id='.$row['id'].'">Подробнее..</a>';
                        echo '</span></div></div>';

                    }while ($row = $db->get_array($result));
								
                $text .= '</ul></div>';							
            } else {
		$text = '<p>По вашему запросу ничего не найдено.</p>';
            }
        } 
    } else {
        $text = '<p>Задан пустой поисковый запрос.</p>';
    }    
    	return $text; 
    } 
    $search = filter_input(INPUT_POST,'search',FILTER_SANITIZE_SPECIAL_CHARS);
	if (!empty($search)) { 
    		$search_result = search ($search); 
    		echo $search_result; 
	    }else {
		echo engine::error('Введите название новостя');
	    }		
    break;
	
endswitch;
	
	
	
    echo engine::home(array('Назад','/index.php')); //Переадресация на главную