Файл: act.php
Строк: 200
<?
include 'inc/config.php';
include 'inc/func.php';
include 'inc/conn.php';
include 'inc/header.php';
include 'inc/zapros.php';
include 'inc/ban.php';
If (!isset($_GET['mode']) || !ereg("^[a-z0-9_-]{1,15}$",$_GET['mode'])) $mode=false; else $mode=$_GET['mode'];
switch ($mode){
case 'ads':
mysql_query("update `".prefix."users` set `mesto`='Добавляет коммент к акции', `online`='".time()."' where `id` = '".$_USER['id']."';");
echo '<div class="copy"><b>Добавление комментария</b></div>';
$id = intval($_GET['id']);
If (!$_enter){
echo '<div class="menu1"><div class="menu3">
Для того чтобы писать сообщения, вы должны войти в систему<br/>-----<br/><a href="index.php?mode=login">Вход</a>
</div></div>';
break;
}
If (!isset($_POST['text'])) {
echo '<div class="menu1"><div class="menu3">
Текст:<br/>
<form method="post" action="'.$_zapros.'mode=ads&id='.$id.'">
<textarea name="text" cols="19" rows="5" maxlength="'.lenght_text.'" value=""/></textarea><br/>
</div></div>
<div class="menu1"><div class="menu3">
<input value="Написать" type="submit"/></form>
</div></div>';
echo '<div class="menu1"><div class="menu3">
* <a href="infa.php?mode=bb">BB-коды</a><br/>
</div></div>
<div class="menu1"><div class="menu3">
* <a href="infa.php?mode=sm">Смайлы</a><br/>
</div></div>';
break;
}
$text=htmlspecialchars($_POST['text']);
$text=trim($text);
$strlen=strlen($text);
If ($strlen<min_text || $strlen>lenght_text){
echo 'Комментарий слишком длинный или короткий';
break;
}
$filte['/(http://)?([[:alnum:]]|_){3,30}(s+)?(.|,)(s+)?([[:alnum:]]|){3,30}(s)?(.|,)?(s)?([[:alnum:]]){2,4}/i']=adress;if (count($filte))$text= preg_replace(array_keys($filte), array_values($filte), $text);
$result=mysql_query("INSERT into `actia_comm`
(`login`,`text`,`date`,`nid`)
values
('".$_USER['login']."','".mysql_real_escape_string($text)."','".time()."','".$id."')
");
If (!$result){
echo 'Ошибка запроса к бд...';
break;
}
mysql_query("UPDATE `".prefix."users` SET `comm`=`comm`+'1' WHERE `login`='".$_USER['login']."'") or die('err');
echo '<div class="menu1"><div class="menu3">
Комментарий добавлен!
</div></div>';
echo '<div class="menu1"><div class="menu3"><a href="act.php'.$_zapros.'mode=comm&id='.$id.'">Вернуться</a></div></div>';
break;
case 'comm':
mysql_query("update `".prefix."users` set `mesto`='Читает комменты акции', `online`='".time()."' where `id` = '".$_USER['id']."';");
$id = intval($_GET['id']);
// Выбираем из БД количество пользователей - это нужно для
// построения постраничной навигации
$query = "SELECT COUNT(*) FROM `actia_comm` where `nid`='$id'";
$res = mysql_query( $query );
$total = mysql_result( $res, 0, 0 );
echo '<div class="copy"><b>Комментарии</b></div>';
if ( isset($_GET['page']) )
{
$page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;
}
else
{
$page = 1;
}
// Число страниц списка пользователей (постраничная навигация)
$cnt_pages = ceil( $total / MESS_ON_PAGE );
if ( $page > $cnt_pages ) $page = $cnt_pages;
if ( $cnt_pages == 0 ) $page = '1';
// Начальная позиция (постраничная навигация)
$start = ( $page - 1 ) * MESS_ON_PAGE;
echo '<div class="menu1"><div class="menu3"><a href="'.$_zapros.'mode=ads&id='.$id.'">Добавить</a></div></div>
';
$result=mysql_query("SELECT * FROM `actia_comm` where `nid`='$id' ORDER by `date` desc LIMIT ".$start.", ".MESS_ON_PAGE);
If (!$result){
echo 'Ошибка запроса к бд...';
break;
}
$num=mysql_num_rows($result);
If ($num>0){
If ($num<=MESS_ON_PAGE) $read=$num; else {
$read=MESS_ON_PAGE;
$next=true;
}
for ($i=0;$i<$read;$i++){
## Зёбра =)
if(is_integer($i/2))
{echo '<div class="menu1"><div class="menu3">';}
else
{echo '<div class="menu1"><div class="menu3">';}
##
$login=mysql_result($result,$i,'login');
echo '<a href="info.php'.$_zapros.'user='.$login.'"><b>'.$login.'</b></a> '.date("[ H:i | d.m.Y ]",mysql_result($result,$i,'date'));
If ($_USER['admin'] || $_USER['moder']){
$cid=mysql_result($result,$i,'id');
echo '<a href="act.php'.$_zapros.'id='.$id.'&cid='.$cid.'&mode=delete"><b>[D]</b></a>';
}
$text=mysql_result($result,$i,'text');
echo '<br/>'.bbcode(smiles($text)).'<br/>';
##
echo '</div></div>';
}
} else echo '<div class="menu1"><div class="menu3">
Без комментариев! =)<br />
</div></div>';
// Строим постраничную навигацию
if ( $cnt_pages > 1 )
{ If ( $page >= $cnt_pages ){
echo '<a href='.$_zapros.'mode=comm&id='.$id.'&page='.($page-1).'><< Пред</a>'; }
elseif ( $page >= 2 ){
echo '<a href='.$_zapros.'mode=comm&id='.$id.'&page='.($page-1).'><< Пред</a> | <a href='.$_zapros.'mode=comm&id='.$id.'&page='.($page+1).'>След >></a>'; }
else
{echo '<a href='.$_zapros.'mode=comm&id='.$id.'&page='.($page+1).'>След>></a>';}
// Проверяем нужна ли стрелка "В начало"
if ( $page > 3 )
$startpage = '<a class="nav" href="'.$_zapros.'mode=comm&id='.$id.'&page=1">1</a>,<a href="'.$_zapros.'mode=comm&id='.$id.'&page=2">2</a>...';
elseif ( $page > 2 )
$startpage = '<a class="nav" href="'.$_zapros.'mode=comm&id='.$id.'&page=1">1</a>,';
else
$startpage = '';
// Проверяем нужна ли стрелка "В конец"
if ( $page < ($cnt_pages - 2) )
$endpage = '...<a class="nav" href="'.$_zapros.'mode=comm&page='.($cnt_pages-1).'">'.($cnt_pages-1).'</a>,<a class="nav" href="'.$_zapros.'mode=comm&id='.$id.'&page='.$cnt_pages.'">'.$cnt_pages.'</a>';
elseif ( $page < ($cnt_pages - 1) )
$endpage = ',<a class="nav" href="'.$_zapros.'mode=comm&id='.$id.'&page='.$cnt_pages.'">'.$cnt_pages.'</a>';
else
$endpage = '';
// Находим две ближайшие страницы с обоих краев, если они есть
if ( $page - 2 > 0 )
$page2left = '<a class="nav" href="'.$_zapros.'mode=comm&id='.$id.'&page='.($page - 2).'">'.($page - 2).'</a>,';
else
$page2left = '';
if ( $page - 1 > 0 )
$page1left = '<a class="nav" href="'.$_zapros.'mode=comm&id='.$id.'&page='.($page - 1).'">'.($page - 1).'</a>,';
else
$page1left = '';
if ( $page + 2 <= $cnt_pages )
$page2right = ',<a class="nav" href="'.$_zapros.'mode=comm&id='.$id.'&page='.($page + 2).'">'.($page + 2).'</a>';
else
$page2right = '';
if ( $page + 1 <= $cnt_pages )
$page1right = ',<a class="nav" href="'.$_zapros.'mode=comm&id='.$id.'&page='.($page + 1).'">'.($page + 1).'</a>';
else
$page1right = '';
// Выводим меню
echo '</br>';
echo $startpage.$page1left.'<strong><a class="navi">'.$page.'</a></strong>'.$page1right.$endpage."n";
if ( $cnt_pages > 1 )
{
echo '
<form action="act.php'.$_zapros.'mode=comm" method="get">';
foreach($_GET as $k=>$v){
if($k == "page") continue;
echo "<input type=hidden name=$k value=$v>";
}
echo '<br/>Стр.<input type="text" name="page" size="2" value="'.$page.'"><input type="submit" value=">>"/></form>
';
}
else
{
echo'';
}
}
$res=mysql_result(mysql_query("SELECT COUNT(*) FROM `actia_comm` where `nid`='$id'"),0);
echo '<div class="menu1"><div class="menu3">Комментариев: '.$res.'</div>';
break;
case 'delete':
$cid=intval($_GET['cid']);
$aid=intval($_GET['id']);
If ($_USER['admin'] || $_USER['moder']){
mysql_query("DELETE FROM `actia_comm` WHERE `id`='$cid'");}
Header('Location: act.php?mode=comm&id='.$aid);
break;
case false:
default:
mysql_query("update `".prefix."users` set `mesto`='В акциях', `online`='".time()."' where `id` = '".$_USER['id']."';");
// Выбираем из БД количество пользователей - это нужно для
// построения постраничной навигации
$query = "SELECT COUNT(*) FROM `".prefix."actia`";
$res = mysql_query( $query );
$total = mysql_result( $res, 0, 0 );
echo '<div class="copy"><b>Акции</b></div>';
if ( isset($_GET['page']) )
{
$page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;
}
else
{
$page = 1;
}
// Число страниц списка пользователей (постраничная навигация)
$cnt_pages = ceil( $total / MESS_ON_PAGE );
if ( $page > $cnt_pages ) $page = $cnt_pages;
// Начальная позиция (постраничная навигация)
$start = ( $page - 1 ) * MESS_ON_PAGE;
$result=mysql_query("SELECT * FROM `".prefix."actia` ORDER by `ts` desc LIMIT ".$start.", ".MESS_ON_PAGE);
If (!$result){
echo 'Ошибка запроса к бд...';
break;
}
$num=mysql_num_rows($result);
If ($num>0){
If ($num<=MESS_ON_PAGE) $read=$num; else {
$read=MESS_ON_PAGE;
$next=true;
}
for ($i=0;$i<$read;$i++){
## Зёбра =)
if(is_integer($i/2))
{echo '<div class="menu1"><div class="menu3">';}
else
{echo '<div class="menu1"><div class="menu3">';}
##
##
echo date("<b>d.m.Y</b>",mysql_result($result,$i,'ts'));
$login=mysql_result($result,$i,'who');
echo ' ['.mysql_result($result,$i,'nazv').']<br/>';
echo 'Разместил: <a href="info.php'.$_zapros.'user='.$login.'"><b>'.($login).'</b></a><br/>';
$text=mysql_result($result,$i,'text');
echo ''.bbcode(smiles($text)).'<br/>';
$d=mysql_result($result,$i,'id');
$res=mysql_result(mysql_query("SELECT COUNT(*) FROM `actia_comm` where `nid`='$d'"),0);
echo '<a href="'.$_zapros.'mode=comm&id='.mysql_result($result,$i,'id').'">Комментарии</a> ['.$res.']<br/>';
##
echo '</div></div>';
//echo '-----<br/>';
##
}
}
else echo '<div class="menu1"><div class="menu3">
Акций пока нет =(<br />
</div></div>';
// Строим постраничную навигацию
if ( $cnt_pages > 1 )
{ If ( $page >= $cnt_pages ){
echo '<a href='.$_zapros.'page='.($page-1).'><< Пред</a>'; }
elseif ( $page >= 2 ){
echo '<a href='.$_zapros.'page='.($page-1).'><< Пред</a> | <a href='.$_zapros.'page='.($page+1).'>След >></a>'; }
else
{echo '<a href='.$_zapros.'page='.($page+1).'>След>></a>';}
// Проверяем нужна ли стрелка "В начало"
if ( $page > 3 )
$startpage = '<a class="nav" href="'.$_zapros.'page=1">1</a>,<a href="'.$_zapros.'page=2">2</a>...';
elseif ( $page > 2 )
$startpage = '<a class="nav" href="'.$_zapros.'page=1">1</a>,';
else
$startpage = '';
// Проверяем нужна ли стрелка "В конец"
if ( $page < ($cnt_pages - 2) )
$endpage = '...<a class="nav" href="'.$_zapros.'page='.($cnt_pages-1).'">'.($cnt_pages-1).'</a>,<a class="nav" href="'.$_zapros.'page='.$cnt_pages.'">'.$cnt_pages.'</a>';
elseif ( $page < ($cnt_pages - 1) )
$endpage = ',<a class="nav" href="'.$_zapros.'page='.$cnt_pages.'">'.$cnt_pages.'</a>';
else
$endpage = '';
// Находим две ближайшие страницы с обоих краев, если они есть
if ( $page - 2 > 0 )
$page2left = '<a class="nav" href="'.$_zapros.'page='.($page - 2).'">'.($page - 2).'</a>,';
else
$page2left = '';
if ( $page - 1 > 0 )
$page1left = '<a class="nav" href="'.$_zapros.'page='.($page - 1).'">'.($page - 1).'</a>,';
else
$page1left = '';
if ( $page + 2 <= $cnt_pages )
$page2right = ',<a class="nav" href="'.$_zapros.'page='.($page + 2).'">'.($page + 2).'</a>';
else
$page2right = '';
if ( $page + 1 <= $cnt_pages )
$page1right = ',<a class="nav" href="'.$_zapros.'page='.($page + 1).'">'.($page + 1).'</a>';
else
$page1right = '';
// Выводим меню
echo '</br>';
echo $startpage.$page1left.'<strong><a class="navi">'.$page.'</a></strong>'.$page1right.$endpage."n";
if ( $cnt_pages > 1 )
{
$select_list = '
<form action="act.php" method="get"><br/>Стр.<input type="text" name="page" size="2" value="'.$page.'"><input type="submit" value=">>"/></form>
';
}
else
{
$select_list = '';
}
echo $select_list;
}
break;
}
include 'inc/foot.php';
?>