Файл: modules/news/index.php
Строк: 320
<?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 .= ' '.Lang::__('Добавить категорию').'</a> ';
//Настраиваем категорию
$nview .= '<a class="btn btn-small btn-inverse" href="setting.category.php">';
$nview .= '<img src="/engine/template/icons/app.png"> ';
$nview .= ' '.Lang::__('Настройка категорий').'</a>';
//Настраиваем добавленные новости
$nview .= ' <a class="btn btn-small btn-inverse" href="setting.news.php">';
$nview .= '<img src="/engine/template/icons/app.png">';
$nview .= ' '.Lang::__('Настройка новостей').'</a> ';
$nview .= ' </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"> '.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> ';
//Все действующие категории
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"> ';
}
}
if($users['group'] == 15) {
$resulte = ' <a href="setting.news.php?act=editor_sec&id='.$news['id'].'&edit">';
$resulte .= '<img src="/engine/template/icons/edit.png"></a>';
$resulte .= ' <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"> ';
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"> ';
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"> ';
echo '<font color="#778899">'.engine::number($news['view']).'</font></span>';
echo '<span><img src="/engine/template/icons/comment.png"> ';
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"> ';
echo '<a href="view.php?id='.$news['id'].'">Читать дальше »</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"> ';
}
}
//Выводи все записанные данные
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"> ';
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"> ';
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"> ';
echo '<font color="#778899">'.$row['view'].'</font></span>';
echo '<span><img src="/engine/template/icons/comment.png"> ';
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')); //Переадресация на главную