File size: 5.2Kb
<?php
include '../engine/includes/start.php';
$set['title']='Новости сайта';
include H.'engine/includes/head.php';
!$admin ? $act = null : null;
Core::get('cache.class');
function __delete_cache()
{
Cache::multi_delete('news', tmpDir);
if (is_file(tmpDir . 'index_page.swc'))
unlink(tmpDir . 'index_page.swc');
}
switch($act)
{
default:
Core::get('cache.class');
$cache = new cache(tmpDir . 'news[page='.$cur_page.';access='.($admin ? 1 : 0).'].swc');
if (!$cache->life())
{
ob_start();
Core::get(array('text.class', 'page.class'));
if ($admin) {
?><form><input type="hidden" name="act" value="edit"/><input name="or_add" type="submit" style="width:40%" value="Добавить новость"/></form><?php
}
$k_post = $sql->query('SELECT COUNT(*) FROM `news`')->result();
$page = new page($k_post, $set['p_str']);
$q = $sql->query('SELECT * FROM `news` ORDER BY `id` DESC LIMIT '. $page->limit());
if ($k_post == 0)
echo 'Нет новостей';
while ($post = $sql->fetch())
{
echo '
<div class="post">
<span class="status">'.htmlspecialchars($post['title']). '</span> ('. Core::time($post['time']).')<br />'.
text::output($post['msg']).'<br />';
if ($admin)
{
echo '<a href="?act=edit&id='.$post['id'].'">[ Редактировать ]</a><a href="?act=delete&id='.$post['id'].'" style="float:right">[ Удалить ]</a>';
}
echo '</div>';
}
$page->display('?');
$cache->write();
$sql->free();
}
echo $cache->read();
unset($cache, $page);
break;
case 'delete':
$check = isset($_GET['yes']) ? false :$sql->query('SELECT `title` from `news` where `id` = '.$id)->num_rows();
if (!$check)
{
if (isset($_GET['yes']))
{
__delete_cache();
$sql->query('Delete from `news` where `id` = '.$id);
Core::msg_show('Новость удалена');
}
else
Core::msg_show('Новость не найдена');
}
else
{
echo 'Вы действительно хотите удалить новость"<span class="status">'.$sql->result().'</span>" ?<br />
<a href="?act=delete&id='.$id.'&yes">[ Да ]</a> | <a href="?">[ Нет ]</a>';
}
break;
case 'edit':
$adding = isset($_GET['or_add']); // Добавление или редактирование
$words = $adding ? array('INSERT', 'добавлена', 'Добавление', 'Добавить') : array('UPDATE', ' изменена', 'Редактирование', 'Изменить');
if (!$adding) // Если редактирование
{
if ($sql->query('SELECT * from `news` where `id` = '.$id)->num_rows() == 0)
{
Core::msg_show('Новость не найдена');
echo '<a href="?"><div class="menu_razd">Новости</div></a>';
include H.'engine/includes/foot.php';
}
else
$news = $sql->fetch();
}
else
{
$news['title'] = Core::form('title');
$news['msg'] = Core::form('msg');
}
echo '<div class="menu_razd">'.$words[2].' новости</div>';
if (isset($_POST['title'], $_POST['msg']))
{
$TitLen = mb_strlen($_POST['title']);
$MsgLen = mb_strlen($_POST['msg']);
if ($TitLen > 32 || $TitLen < 3)
Core::msg_show('Заголовок должен быть более 3х символов и меньше 32х символов');
elseif ($MsgLen > 32 || $MsgLen < 3)
Core::msg_show('Текст должен быть более 3х символов и меньше 32х символов');
else
{
$sql->query(
$words[0] ." `news` SET
`title` = '".Core::form('title')."',
`msg` = '".Core::form('msg')."',
`time` = ".$time . (!isset($_GET['or_add']) ? ' WHERE `id` = '.$id : ''));
__delete_cache();
Core::msg_show('Новость '.$words[1], 'menu_razd');
if ($adding)
$news['title'] = $news['msg'] = '';
else
{
$news['title'] = htmlspecialchars($_POST['title']);
$news['msg'] = htmlspecialchars($_POST['msg']);
}
}
}
?>
<form method="post">
Заголовок:<br />
<input type="text" name="title" value="<?=$news['title']?>"/><br />
Текст:<br />
<textarea name="msg"><?=$news['msg']?></textarea><br />
<input type="submit" value="<?=$words[3]?>"/>
</form>
<?php
break;
case 'uninstall':
if ($creator)
{
if (isset($_GET['yes']))
{
$sql->multi("DROP TABLE `news`;DELETE FROM `modules` where `name` = 'news';DELETE FROM `module_services` where `belongs` = 'news';");
unlink(H . 'engine/services/last_news.php');
unlink(H . 'pages/news.php');
echo 'Модуль "Новости" удален';
}
else
echo 'Вы действительно хотите удалить модуль "Новости"?<br /><a href="?act=uninstall&yes">[ Да ]</a> | <a href="?">[ Нет ]</a>';
}
break;
}
?>
<a href="/"><div class="link">Главная</div></a>
<a href="?"><div class="link">Новости сайта</div></a>
<?php
include H.'engine/includes/foot.php';