<?php
// mod by Golem http://veplog.ru
require_once"../template/start.php";
require_once"../template/regglobals.php";
require_once"../template/config.php";
require_once"../template/functions.php";
require_once"../template/antidos.php";
require_once"../template/cookies.php";
require_once"../template/gzip.php";
require_once"../template/header.php";
require_once"../template/referer.php";
include_once"../themes/$config_themes/index.php";
include_once"../template/isset.php";
if ($provlog==$_SESSION['log'] && $provpar==md5($_SESSION['par']) && $_SESSION['log']!="" && md5($_SESSION['par'])!="") {
if ($dostup==101 || $dostup==102 || $dostup==103){
echo'<div class="tp">Управление новостями</div>';
//--------------------------- Главная страница -------------------------------//
if(!isset($action)){
$file = file(BASEDIR."local/news.dat");
$file = array_reverse($file);
$total = count($file);
if($total<1){echo '<b>Новостей еще нет!</b><br>';}
$start = (int)$_GET['start'];
if($start < 0 || $start > $total){$start = 0;}
if ($total < $start + $config_postnews){ $end = $total; }
else {$end = $start + $config_postnews; }
for ($fm = $start; $fm < $end; $fm++){
$dt = explode("|",$file[$fm]);
$num=$total-$fm-1;
$dt[1]=bb_code($dt[1]);
echo'<div class=forum>';
echo '<div class=r0><img src="../images/img/edit.gif" alt=""> ';
echo '<b>'.$dt[0].'</b> <small>('.date_fixed($dt[3]).')</small><br>';
echo '<a href="news.php?action=editnews&id='.$num.'&start='.$start.'&'.SID.'">[Ред]</a>';
echo '<a href="news.php?action=del&id='.$num.'&start='.$start.'&kil='.$dt[5].'&'.SID.'"><font color="#FF0000">[Уд]</font></a>';
echo '<br>'.$dt[1].'<br>';
echo 'Разместил: '.$dt[4].'<br>';
echo '<a href="../news/komm.php?id='.$dt[5].'&'.SID.'">Комментарии</a> ';
$countkomm=0;
if (file_exists("../local/datakomm/$dt[5].dat")){
$filek = file("../local/datakomm/$dt[5].dat");
$countkomm=count($filek);}
echo '('.(int)$countkomm.')</div></div>';
}
echo '<div class=body>';
if ($start != 0) {echo '<a href="news.php?start='.($start - $config_postnews).'&'.SID.'"><пред.</a>';}else{echo'<пред.';}
echo' | ';
if ($total > $start + $config_postnews) {echo ' <a href="news.php?start='.($start + $config_postnews).'&'.SID.'">след.></a>';}else{echo'след.>';}
if($total>0){
$ba=ceil($total/$config_postnews);
$ba2=$ba*$config_postnews-$config_postnews;
echo '<br>Стр.:';
$asd=$start-($config_postnews*3);
$asd2=$start+($config_postnews*4);
if($asd<$total && $asd>0){echo ' <a href="news.php?start=0&'.SID.'">1</a> ... ';}
for($i=$asd; $i<$asd2;)
{
if($i<$total && $i>=0){
$ii=floor(1+$i/$config_postnews);
if ($start==$i) {
echo ' <b>('.$ii.')</b>';
} else {
echo ' <a href="news.php?start='.$i.'&'.SID.'">'.$ii.'</a>';
}}
$i=$i+$config_postnews;}
if($asd2<$total){echo ' ... <a href="news.php?start='.$ba2.'&'.SID.'">'.$ba.'</a>';}
}
echo '<br>Всего новостей в базе: <b>'.(int)$total.'</b></div>';
echo '<div class=btm>[<a href="news.php?action=addnews&'.SID.'">Добавить новость</a>]';
if ($total>1) {
echo'<br>[<a href="news.php?action=proverka&'.SID.'">Удалить новости</a>]';}
}
if($action=="proverka") {
echo'Вы уверены что хотите удалить все новости?<br>';
echo'<img src="../images/img/error.gif" alt=""> <b><a href="news.php?action=alldel&'.SID.'">Да уверен!</a></b><br>';
echo'<br>[<a href="news.php?'.SID.'">Вернуться</a>]';
}
//---------------------------------------- УДАЛЕНИЕ ВСЕХ НОВОСТЕЙ -------------------------------------------//
if($action=="alldel") {
clear_files(BASEDIR."local/news.dat");
$dir = opendir (BASEDIR."local/datakomm");
while ($file = readdir ($dir)) {
if (( $file != ".") && ($file != "..") && ($file != ".htaccess") && ($file != "index.php")){
unlink (BASEDIR."local/datakomm/$file");
}}
closedir ($dir);
header ("Location: news.php?isset=mp_alldelnews&".SID); exit;
}
//---------------------------------------- УДАЛЕНИЕ ВЫБРАННОЙ НОВОСТИ -------------------------------------------//
if($action=="del") {
if (isset($_GET['id']) && $_GET['id']!="") {
$id=(int)$_GET['id'];
$kil=(int)$_GET['kil'];
$file=file(BASEDIR."local/news.dat");
$fp=fopen(BASEDIR."local/news.dat","w");
flock ($fp,LOCK_EX);
foreach($file as $skey=>$sval){ if ($id==$skey){unset($file[$skey]); break;} }
fputs ($fp, implode($file));
fflush($fp);
flock ($fp,LOCK_UN);
fclose($fp);
unset ($id);
unlink (BASEDIR."local/datakomm/$kil.dat");
header ("Location: news.php?start=$start&isset=mp_delnews&".SID); exit;
} else {echo '<b>Ошибка удаления выбранной вами новости</b><br>';}
echo '<br>[<a href="news.php?start='.$start.'&'.SID.'">Вернуться</a>]';
}
//---------------------------------------- ПОДГОТОВКА К РЕДАКТИРОВАНИЮ НОВОСТИ -------------------------------------------//
if($action=="editnews") {
if (isset($_GET['id']) && $_GET['id']!="") {
$id=(int)$_GET['id'];
$lines=file(BASEDIR."local/news.dat");
$dt=explode("|", $lines[$id]);
$dt[1]=str_replace("<br>","\r\n",$dt[1]);
$dt[1] = nosmiles($dt[1]);
echo'<div class=tpanel>Редактирование</div>';
if($config_themes!="wml"){
echo'<div class=body><form action="news.php?action=edit&id='.$id.'&start='.$start.'&'.SID.'" method="POST">';
echo'Заголовок: <br><input type="text" name="name" value="'.$dt[0].'"><br>';
echo'Cообщение:<br>';
echo'<textarea cols="25" rows="3" name="msg">'.$dt[1].'</textarea><br>';
echo'<input type="hidden" name="timer" value="'.$dt[3].'">';
echo'<input type="hidden" name="logins" value="'.$dt[4].'">';
echo'<input type="hidden" name="koll" value="'.$dt[5].'">';
echo'<input type="submit" value="Изменить"></form>';
}else{
echo'Заголовок:<br><input type="text" name="name" value="'.$dt[0].'"/><br>';
echo'Cообщение:<br><input type="text" name="msg" value="'.$dt[1].'"/><br>';
echo'<anchor>Изменить';
echo'<go href="news.php?action=edit&id='.$id.'&start='.$start.'&'.SID.'" method="post">';
echo'<postfield name="name" value="$(name)"/>';
echo'<postfield name="msg" value="$(msg)"/>';
echo'<postfield name="timer" value="'.$dt[3].'"/>';
echo'<postfield name="logins" value="'.$dt[4].'"/>';
echo'<postfield name="koll" value="'.$dt[5].'"/>';
echo'</go></anchor><br>--------------------<br>';
}
}else{ echo'<b>Произошла ошибка, не выбрана новость для редактирования</b>!<br>';}
echo '<div class=btm>[<a href="news.php?start='.$start.'&'.SID.'">Вернуться</a>]';
}
//---------------------------------------- ПОДГОТОВКА К ДОБАВЛЕНИЮ НОВОСТИ -------------------------------------------//
if($action=="addnews"){
if($config_themes!=="wml"){
echo '<div class=body><form action="news.php?action=add&'.SID.'" method="post">';
echo '<b>Заголовок новости: </b><br>';
echo '<input type="text" name="themes" maxlength="50"><br>';
echo '<b>Новость: </b><br>';
echo '<textarea cols="25" rows="3" name="msg"></textarea><br>';
echo '<input name="trans" type="checkbox" value="y">Транслит<br>';
echo '<input name="subadd" type="checkbox" value="yes">Рассылка<br>';
echo '<input type="submit" value="Добавить"></form></div>';
}else{
echo'<b>Заголовок новости: </b><br>';
echo'<input name="themes" maxlength="50"/><br>';
echo'<b>Новость: </b><br>';
echo'<input name="msg" maxlength="1000"/><br>';
echo'Транслит: <select name="trans"><option value="0">Нет</option>';
echo'<option value="y">Да</option></select><br>';
echo'Рассылка: <select name="subadd"><option value="no">Нет</option>';
echo'<option value="yes">Да</option></select><br><br>';
echo'<anchor>Добавить';
echo'<go href="news.php?action=add&'.SID.'" method="post">';
echo'<postfield name="themes" value="$(themes)"/>';
echo'<postfield name="msg" value="$(msg)"/>';
echo'<postfield name="trans" value="$(trans)"/>';
echo'<postfield name="subadd" value="$(subadd)"/>';
echo'</go></anchor><br>--------------------<br>';
}
echo'<div class=btm>[<a href="news.php?'.SID.'">Вернуться</a>]';
}
//---------------------------------------- РЕДАКТИРОВАНИЕ ВЫБРАННОЙ НОВОСТИ -------------------------------------------//
if($action=="edit"){
if (isset($_GET['id']) && $_GET['id']!=""){
if($_POST['name']!="" && $_POST['msg']!=""){
$id=(int)$_GET['id'];
$name=check($_POST['name']);
$msg=check($_POST['msg']);
$timer=check($_POST['timer']);
$logins=check($_POST['logins']);
$koll=(int)$_POST['koll'];
$msg = smiles($msg);
$msg=no_br($msg,"<br>");
$text=$name.'|'.$msg.'||'.$timer.'|'.$logins.'|'.$koll.'|';
$text=no_br($text);
if($text!=""){
$file=file(BASEDIR."local/news.dat");
$fp=fopen(BASEDIR."local/news.dat","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
for ($i=0;$i< sizeof($file);$i++) {if ($id!=$i) {fputs($fp,$file[$i]);} else {fputs($fp,"$text\r\n");}}
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
}
header ("Location: news.php?start=$start&isset=mp_editnews&".SID); exit;
} else {echo '<b>Ошибка редактирования, отсутствуют важные данные</b><br>';}
} else {echo '<b>Ошибка редактирования выбранной вами новости</b><br>';}
echo '<br>[<a href="news.php?start='.$start.'&'.SID.'">Вернуться</a>]';
}
//---------------------------------------- ДОБАВЛЕНИЕ НОВОСТИ -------------------------------------------//
if($action=="add"){
if($_POST['msg']!="" && $_POST['themes']!=""){
$msg=check($_POST['msg']);
$themes=check($_POST['themes']);
$msg=no_br($msg,"<br>");
if($trans=="y"){
$msg=transliter($msg);
$themes=transliter($themes);
}
$msg = smiles($msg);
$file = file(BASEDIR."local/news.dat");
$ndata = explode("|",end($file));
$me = $ndata[5] + 1;
$textnews=$themes.'|'.$msg.'||'.$sitetime.'|'.$log.'|'.$me.'|';
$textnews=no_br($textnews);
$fp=fopen(BASEDIR."local/news.dat","a+");
flock ($fp,LOCK_EX);
fputs ($fp,"$textnews\r\n");
fflush($fp);
flock ($fp,LOCK_UN);
fclose($fp);
$textkomm=$brow.', '.$ip.'|'.$msg.'||'.$sitetime.'|'.$log.'|1|';
$textkomm=no_br($textkomm);
$fp=fopen(BASEDIR."local/datakomm/$me.dat","w");
flock ($fp,LOCK_EX);
fputs ($fp,"$textkomm\r\n");
fflush($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod ($fp, 0777);
chmod (BASEDIR."local/datakomm/$me.dat", 0777);
$f = file(BASEDIR."local/local.dat");
$u = explode("|",$f[0]);
$u[4]++;
$t=$u[0].'|'.$u[1].'|'.$u[2].'|'.$u[3].'|'.$u[4].'|'.$u[5].'|'.$u[6].'|'.$u[7].'|'.$u[8].'|'.$u[9].'|'.$u[10].'|';
$fp = fopen(BASEDIR."local/local.dat","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
fputs($fp,$t);
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
$file=file(BASEDIR."local/news.dat");
$i = count($file);
if ($i>=$config_maxpostnews) {
$fp=fopen(BASEDIR."local/news.dat","w");
flock ($fp,LOCK_EX);
unset ($file[0]);
fputs ($fp, implode($file));
fflush($fp);
flock ($fp,LOCK_UN);
fclose($fp);
$datadel = explode("|",$file[0]);
unlink (BASEDIR."local/datakomm/$datadel[5].dat");
}
}else{
header ("Location: news.php?action=addnews&isset=mp_noaddnews&".SID); exit;
}
echo 'Новость успешно добавлена!<br>';
if($subadd!="yes"){
header ("Location: news.php?isset=mp_addnews&".SID); exit;
}
}
//---------------------------------------- БЛОК РАССЫЛКИ -------------------------------------------//
if($subadd=="yes"){
$dates=date("d.m.y / H:i",$sitetime);
$msg = nosmiles($msg);
$msg = str_replace("<br>","\n",$msg);
$msg = strip_tags(bb_code($msg));
if (isset($_GET['last'])) {$last=$_GET['last'];} else {$last=0;}
$send_file=file(BASEDIR."local/sub.dat");
$send_count=count($send_file);
$next=$last+$config_submail;
if ($next>$send_count) {$next=$send_count;}
for ($i=$last; $i<$next; $i++) {
$udata = explode("|",$send_file[$i]);
//---------------- Пассылка писем на E-mail --------------------------//
if($udata[0]!=""){
addmail($udata[0], "Рассылка новостей с сайта ".$config_title, "$themes ($dates) \n$msg \n\nВы получили это письмо, потому что являетесь подписчиком сайта ".$config_home." \nОтписаться от рассылки вы можете в своем профиле на нашем сайте\nили клинув по этой ссылке \n".$config_home."/pages/subdel.php?subdel=$udata[1]");
}
}
$last=$next;
if ($last<$send_count) {
$per=round(100*$last/$send_count);
echo'<br>Рассылка начата.<br>Успешно отправлено: '.(int)$per.'%<br><br>';
if($config_themes!=="wml"){
echo'<form action="news.php?subadd=yes&action=mail&last='.$last.'&'.SID.'" method="post" />';
echo'<input type="hidden" name="subject" value="'.$subject.'">';
echo'<input type="hidden" name="themes" value="'.$themes.'">';
echo'<input type="hidden" name="msg" value="'.$msg.'">';
echo'<input type="hidden" name="trans" value="'.$trans.'">';
echo'<input type="submit" value="Продолжить рассылку"></form><hr>';
}else{
echo'<anchor>Продолжить рассылку';
echo'<go href="news.php?subadd=yes&action=mail&last='.$last.'&'.SID.'" method="post">';
echo'<postfield name="subject" value="'.$subject.'"/>';
echo'<postfield name="themes" value="'.$themes.'"/>';
echo'<postfield name="msg" value="'.$msg.'"/>';
echo'<postfield name="trans" value="'.$trans.'"/>';
echo'</go></anchor><br>--------------------<br>';
}
}else{ echo '<b>Рассылка окончена</b><br>'; }
echo'<br>Всего подписчиков: '.(int)$send_count.'<br>';
echo'<br>[<a href="news.php?'.SID.'">Вернуться к новостям</a>';
}
echo'<br>[<a href="index.php?'.SID.'">В админку</a>]<br>';
echo'[<a href="../index.php?'.SID.'">На главную</a>]</div>';
} else {header ("Location: ../index.php?isset=404&".SID);}
} else {header ("Location: ../index.php?isset=404&".SID);}
include_once"../themes/$config_themes/foot.php";
?>