Просмотр файла mpanel/news.php

Размер файла: 15.47Kb
  1. <?php
  2. #-----------------------------------------------------#
  3. # ********* WAP-MOTORS ********* #
  4. # Made by : VANTUZ #
  5. # E-mail : vsem@pizdec.ru #
  6. # Site : http://pizdec.ru #
  7. # WAP-Site : http://visavi.net #
  8. # ICQ : 36-44-66 #
  9. # Вы не имеете право вносить изменения в код скрипта #
  10. #-----------------------------------------------------#
  11. require_once"../template/start.php";
  12. require_once"../template/regglobals.php";
  13. require_once"../template/config.php";
  14. require_once"../template/functions.php";
  15. require_once"../template/antidos.php";
  16. require_once"../template/cookies.php";
  17. require_once"../template/gzip.php";
  18. require_once"../template/header.php";
  19. require_once"../template/referer.php";
  20. include_once"../themes/$config_themes/index.php";
  21. include_once"../template/isset.php";
  22.  
  23. $dates=date("d.m.y");
  24. $times=date("H:i");
  25.  
  26. if ($_SESSION['log']!="" && md5($_SESSION['par'])!="" && md5($_SESSION['par'])==$provpar && $_SESSION['log']==$provlog ) {
  27. if ($dostup==101 || $dostup==102){
  28.  
  29. echo'<img src="../images/img/menu.gif" alt=""> <b>Управление новостями</b><br><br>';
  30.  
  31. //--------------------------- Главная страница -------------------------------//
  32. if(!isset($action)){
  33. $file = file("../local/news.dat");
  34. $file = array_reverse($file);
  35. $total = count($file);
  36. if($total<1){echo '<br><img src="../images/img/reload.gif" alt=""> <b>Новостей еще нет!</b><br>';}
  37.  
  38. if (empty($_GET['start'])) $start = 0;
  39. else $start = $_GET['start'];
  40. if ($total < $start + $config_postnews){ $end = $total; }
  41. else {$end = $start + $config_postnews; }
  42. for ($fm = $start; $fm < $end; $fm++){
  43.  
  44. $dt = explode("|",$file[$fm]);
  45.  
  46. $num=$total-$fm-1;
  47. $dt[1]=bb_code($dt[1]);
  48.  
  49.  
  50. echo '<div class=b><img src="../images/img/edit.gif" alt=""> ';
  51. echo '<b>'.$dt[0].'</b> ('.$dt[2].' '.$dt[3].')<br>';
  52. echo '<a href="news.php?action=editnews&amp;id='.$num.'&amp;start='.$start.'&amp;'.SID.'">[Edit]</a>';
  53. echo '<a href="news.php?action=del&amp;id='.$num.'&amp;start='.$start.'&amp;kil='.$dt[5].'&amp;'.SID.'">[DEL]</a>';
  54. echo '</div><div>'.$dt[1].'<br>';
  55.  
  56. echo 'Разместил: '.$dt[4].'<br>';
  57. echo '<a href="../news/komm.php?id='.$dt[5].'&amp;'.SID.'">Комментарии</a> ';
  58.  
  59. $countkomm=0;
  60. if (file_exists("../local/datakomm/$dt[5].dat")){
  61. $filek = file("../local/datakomm/$dt[5].dat");
  62. $countkomm=count($filek);}
  63. echo '('.(int)$countkomm.')</div>';
  64. }
  65.  
  66. echo '<hr>';
  67. if ($start != 0) {echo '<a href="news.php?start='.($start - $config_postnews).'&amp;'.SID.'">&lt;-Назад</a> ';}else{echo'&lt;-Назад';}
  68. echo' | ';
  69. if ($total > $start + $config_postnews) {echo ' <a href="news.php?start='.($start + $config_postnews).'&amp;'.SID.'">Далее-&gt;</a>';}else{echo'Далее-&gt;';}
  70.  
  71. if($total>0){
  72. $ba=ceil($total/$config_postnews);
  73. $ba2=$ba*$config_postnews-$config_postnews;
  74.  
  75. echo '<br><hr>Страницы:';
  76. $asd=$start-($config_postnews*3);
  77. $asd2=$start+($config_postnews*4);
  78.  
  79. if($asd<$total && $asd>0){echo ' <a href="news.php?start=0&amp;'.SID.'">1</a> ... ';}
  80.  
  81. for($i=$asd; $i<$asd2;)
  82. {
  83. if($i<$total && $i>=0){
  84. $ii=floor(1+$i/$config_postnews);
  85.  
  86. if ($start==$i) {
  87. echo ' <b>('.$ii.')</b>';
  88. }
  89. else {
  90. echo ' <a href="news.php?start='.$i.'&amp;'.SID.'">'.$ii.'</a>';
  91. }}
  92.  
  93.  
  94. $i=$i+$config_postnews;}
  95. if($asd2<$total){echo ' ... <a href="news.php?start='.$ba2.'&amp;'.SID.'">'.$ba.'</a>';}
  96.  
  97. }
  98.  
  99.  
  100.  
  101.  
  102.  
  103. echo '<br><br>Всего новостей в базе: '.$total.' <br>';
  104. echo '<br><img src="../images/img/reload.gif" alt=""> <a href="news.php?action=addnews&amp;'.SID.'">Добавить новость</a>';
  105. }
  106. if ($total>1) {
  107. echo'<br><img src="../images/img/error.gif" alt=""> <a href="news.php?action=proverka&amp;'.SID.'">Удалить новости</a>';}
  108.  
  109. if($action=="proverka") {
  110. echo'Вы уверены что хотите удалить все новости?<br>';
  111. echo'<img src="../images/img/error.gif" alt=""> <b><a href="news.php?action=alldel&amp;'.SID.'">Да уверен!</a></b><br>';
  112. echo'<br><img src="../images/img/back.gif" alt=""> <a href="news.php?'.SID.'">Вернуться</a>';
  113. }
  114.  
  115. //---------------------------------------- УДАЛЕНИЕ ВСЕХ НОВОСТЕЙ -------------------------------------------//
  116. if($action=="alldel") {
  117.  
  118. clear_files("../local/news.dat");
  119.  
  120. $dir = opendir ("../local/datakomm");
  121. while ($file = readdir ($dir)) {
  122.  
  123. if (( $file != ".") && ($file != "..") && ($file != ".htaccess") && ($file != "index.php")){
  124. unlink ("../local/datakomm/$file");
  125. }}
  126. closedir ($dir);
  127.  
  128. header ("Location: news.php?isset=mp_alldelnews&".SID);
  129. }
  130.  
  131.  
  132. //---------------------------------------- УДАЛЕНИЕ ВЫБРАННОЙ НОВОСТИ -------------------------------------------//
  133. if($action=="del") {
  134. if (isset($id)) {
  135. $file=file("../local/news.dat");
  136. $fp=fopen("../local/news.dat","w");
  137. flock ($fp,LOCK_EX);
  138. for ($i=0;$i< sizeof($file);$i++) { if ($i==$id) {unset($file[$i]);} }
  139. fputs($fp, implode("",$file));
  140. flock ($fp,LOCK_UN);
  141. fclose($fp);
  142. unlink ("../local/datakomm/$kil.dat");
  143. }
  144. header ("Location: news.php?start=$start&isset=mp_delnews&".SID);
  145. }
  146.  
  147.  
  148.  
  149. //---------------------------------------- ПОДГОТОВКА К РЕДАКТИРОВАНИЮ НОВОСТИ -------------------------------------------//
  150. if($action=="editnews") {
  151. $lines=file("../local/news.dat");
  152. if (isset($id)) {
  153.  
  154. $dt=explode("|", $lines[$id]);
  155. $dt[1]=str_replace("<br>","\r\n",$dt[1]);
  156.  
  157. echo'Редактирование<br>';
  158. if($config_themes!=="wml"){
  159. echo'<form action="news.php?action=edit&amp;id='.$id.'&amp;start='.$start.'&amp;'.SID.'" method="POST">';
  160. echo'Дата: <br><input type="text" name="day" value="'.$dt[2].'"><br>';
  161. echo'Время: <br><input type="text" name="timer" value="'.$dt[3].'"><br>';
  162. echo'Заголовок: <br><input type="text" name="name" value="'.$dt[0].'"><br>';
  163. echo'Cообщение:<br>';
  164. echo'<textarea cols="25" rows="3" name="msg">'.$dt[1].'</textarea><br>';
  165. echo'<input type="hidden" name="logins" value="'.$dt[4].'">';
  166. echo'<input type="hidden" name="koll" value="'.$dt[5].'">';
  167. echo'<br><input type="submit" value="Изменить"></form><hr>';
  168. }else{
  169.  
  170. echo'Дата: <br><input type="text" name="day" value="'.$dt[2].'"/><br>';
  171. echo'Время: <br><input type="text" name="timer" value="'.$dt[3].'"/><br>';
  172. echo'Заголовок:<br><input type="text" name="name" value="'.$dt[0].'"/><br>';
  173. echo'Cообщение:<br><input type="text" name="msg" value="'.$dt[1].'"/><br>';
  174.  
  175. echo'<anchor>Изменить';
  176. echo'<go href="news.php?action=edit&amp;id='.$id.'&amp;start='.$start.'&amp;'.SID.'" method="post">';
  177. echo'<postfield name="name" value="$(name)"/>';
  178. echo'<postfield name="day" value="$(day)"/>';
  179. echo'<postfield name="timer" value="$(timer)"/>';
  180. echo'<postfield name="msg" value="$(msg)"/>';
  181. echo'<postfield name="logins" value="'.$dt[4].'"/>';
  182. echo'<postfield name="koll" value="'.$dt[5].'"/>';
  183.  
  184. echo'</go></anchor><br>--------------------<br>';
  185. }
  186.  
  187. }else{echo'Произошла ошибка, не выбрана новость!<br>';}
  188. }
  189.  
  190.  
  191.  
  192.  
  193. //---------------------------------------- ПОДГОТОВКА К ДОБАВЛЕНИЮ НОВОСТИ -------------------------------------------//
  194. if($action=="addnews"){
  195. if($config_themes!=="wml"){
  196.  
  197. echo '<br><form action="news.php?action=add&amp;'.SID.'" method="post">';
  198. echo '<b>Заголовок новости: </b><br>';
  199. echo '<input type="text" name="themes" maxlength="50"><br>';
  200. echo '<b>Новость: </b><br>';
  201. echo '<textarea cols="25" rows="3" name="msg"></textarea><br>';
  202. echo 'Транслит: <input name="trans" type="checkbox" value="y"><br>';
  203. echo 'Создать рассылку?:';
  204. echo '<input name="subadd" type="checkbox" value="yes"><br><br>';
  205. echo '<input type="submit" value="Добавить"></form><hr>';
  206.  
  207. }else{
  208. echo'<b>Заголовок новости: </b><br>';
  209. echo'<input name="themes" maxlength="50"/><br>';
  210. echo'<b>Новость: </b><br>';
  211. echo'<input name="msg" maxlength="1000"/><br>';
  212. echo'Транслит: <select name="trans"><option value="0">Нет</option>';
  213. echo'<option value="y">Да</option></select><br>';
  214. echo'Создать рассылку?: <select name="subadd"><option value="no">Нет</option>';
  215. echo'<option value="yes">Да</option></select><br><br>';
  216.  
  217.  
  218.  
  219. echo'<anchor>Добавить';
  220. echo'<go href="news.php?action=add&amp;'.SID.'" method="post">';
  221. echo'<postfield name="themes" value="$(themes)"/>';
  222. echo'<postfield name="msg" value="$(msg)"/>';
  223. echo'<postfield name="trans" value="$(trans)"/>';
  224. echo'<postfield name="subadd" value="$(subadd)"/>';
  225. echo'</go></anchor><br>--------------------<br>';
  226. }
  227.  
  228. echo'<br><img src="../images/img/back.gif" alt=""> <a href="news.php?'.SID.'">Вернуться</a>';
  229. }
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236. //---------------------------------------- РЕДАКТИРОВАНИЕ ВЫБРАННОЙ НОВОСТИ -------------------------------------------//
  237. if($action=="edit"){
  238.  
  239. $name=check($name);
  240. $msg=check($msg);
  241. $day=check($day);
  242. $timer=check($timer);
  243. $logins=check($logins);
  244. $koll=(int)$koll;
  245. $msg=preg_replace ("|[\r\n]+|si","<br>",$msg);
  246.  
  247. $text=$name.'|'.$msg.'|'.$day.'|'.$timer.'|'.$logins.'|'.$koll.'|';
  248. $text=preg_replace ("|[\r\n]+|si","",$text);
  249.  
  250.  
  251. if (isset($id)) {
  252. $file=file("../local/news.dat");
  253. $fp=fopen("../local/news.dat","a+");
  254. flock ($fp,LOCK_EX);
  255. ftruncate ($fp,0);
  256. for ($i=0;$i< sizeof($file);$i++) {if ($id!=$i) {fputs($fp,$file[$i]);} else {fputs($fp,"$text\r\n");}}
  257. fflush ($fp);
  258. flock ($fp,LOCK_UN);
  259. fclose($fp);
  260. chmod($fp, 0777);
  261. chmod("../local/news.dat", 0777);
  262. }
  263.  
  264. header ("Location: news.php?start=$start&isset=mp_editnews&".SID);
  265. }
  266.  
  267.  
  268.  
  269. //---------------------------------------- ДОБАВЛЕНИЕ НОВОСТИ -------------------------------------------//
  270. if($action=="add"){
  271. if(!empty($msg) && !empty($themes)){
  272. $themes=check($themes);
  273. $msg=check($msg);
  274. $msg=preg_replace ("|[\r\n]+|si","<br>",$msg);
  275.  
  276. if($trans=="y"){
  277. $themes=transliter($themes);
  278. $msg=transliter($msg);
  279. }
  280. $msg = smiles($msg);
  281.  
  282. $file = file("../local/news.dat");
  283. $total = count($file);
  284. $total = $total - 1;
  285.  
  286. $data1 = explode("|",$file[$total]);
  287. $me=round($data1[5]+1);
  288.  
  289.  
  290.  
  291. $text=$themes.'|'.$msg.'|'.$dates.'|'.$times.'|'.$log.'|'.$me.'|';
  292. $text=preg_replace ("|[\r\n]+|si","",$text);
  293.  
  294. $fp=fopen("../local/news.dat","a+");
  295. flock ($fp,LOCK_EX);
  296. fputs($fp,"$text\r\n");
  297. flock ($fp,LOCK_UN);
  298. fclose($fp);
  299. chmod($fp, 0777);
  300. chmod("../local/news.dat", 0777);
  301.  
  302. $text=$brow.' - '.$ip.'|'.$msg.'|'.$dates.'|'.$times.'|'.$log.'|1|';
  303. $text=preg_replace ("|[\r\n]+|si","",$text);
  304.  
  305. $fp=fopen("../local/datakomm/$me.dat","w");
  306. flock ($fp,LOCK_EX);
  307. fputs($fp,"$text\r\n");
  308. flock ($fp,LOCK_UN);
  309. fclose($fp);
  310. chmod($fp, 0777);
  311. chmod("../local/datakomm/$me.dat", 0777);
  312.  
  313. $f = file("../local/local.dat");
  314. $u = explode("|",$f[0]);
  315.  
  316. $u[4]++;
  317. $t=$u[0].'|'.$u[1].'|'.$u[2].'|'.$u[3].'|'.$u[4].'|'.$u[5].'|'.$u[6].'|'.$u[7].'|'.$u[8].'|'.$u[9].'|'.$u[10].'|';
  318.  
  319.  
  320. $fp = fopen("../local/local.dat","a+");
  321. flock ($fp,LOCK_EX);
  322. ftruncate ($fp,0);
  323. fputs($fp,$t);
  324. fflush ($fp);
  325. flock ($fp,LOCK_UN);
  326. fclose($fp);
  327. chmod($fp, 0777);
  328. chmod("../local/local.dat", 0777);
  329.  
  330. $file=file("../local/news.dat"); $i = count($file);
  331. if ($i>=$config_maxpostnews) {
  332. $fp=fopen("../local/news.dat","w");
  333. flock ($fp,LOCK_EX);
  334. unset($file[0]);
  335. fputs($fp, implode("",$file));
  336. flock ($fp,LOCK_UN);
  337. fclose($fp);
  338. chmod($fp, 0777);
  339. chmod("../local/news.dat", 0777);
  340.  
  341. $file = file("../local/news.dat");
  342. $data1 = explode("|",$file[0]);
  343. unlink ("../local/datakomm/$data1[5].dat");
  344. }
  345.  
  346.  
  347. }else{header ("Location: news.php?action=addnews&isset=mp_noaddnews&".SID); exit;}
  348. echo 'Новость успешно добавлена!<br>';
  349.  
  350.  
  351. if($subadd!="yes"){
  352. header ("Location: news.php?isset=mp_addnews&".SID); exit;
  353. }
  354. }
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361. //---------------------------------------- БЛОК РАССЫЛКИ -------------------------------------------//
  362. if($subadd=="yes"){
  363. $subject = 'Рассылка новостей с сайта '.$config_title;
  364.  
  365. $podpis="\r\nВы получили это письмо потому,\r\nчто являетесь подписчиком сайта ".$config_home." \r\nОтписаться от рассылки вы можете в своем профиле\r\nили перейдя по этой ссылке ".$config_home."/pages/subdel.php?subdel";
  366.  
  367. $msg=str_replace('<img src="../images/smiles/',':',$msg);
  368. $msg=str_replace('.gif" alt="">','',$msg);
  369. $msg=str_replace("<br>","[br]",$msg);
  370.  
  371. $podpis = utf_to_win($podpis);
  372. $subject = utf_to_win($subject);
  373. $msg2 = utf_to_win("$themes\r\n$msg");
  374. $msg2=str_replace("[br]","\r\n",$msg2);
  375. $msg2=bb_code($msg2);
  376.  
  377. $podpis = convert_cyr_string($podpis, 'w','k');
  378. $msg2 = convert_cyr_string($msg2, 'w','k');
  379. $subject = convert_cyr_string($subject, 'w','k');
  380.  
  381. $mess="$subject ($dates)\r\n$msg2\r\n$podpis";
  382.  
  383. $subject = '=?KOI8-R?B?'.base64_encode($subject).'?=';
  384.  
  385. $adds = "From: \"".$config_nikname."\" <".$config_emails.">\n";
  386. $adds .= "X-sender: \"".$config_nikname."\" <".$config_emails.">\n";
  387. $adds .= "Content-Type: text/plain; charset=koi8-r\n";
  388. $adds .= "MIME-Version: 1.0\r\n";
  389. $adds .= "Content-Transfer-Encoding: 8bit\r\n";
  390. $adds .= "X-Mailer: PHP v.".phpversion();
  391.  
  392.  
  393. if (isset($_GET['last'])) {$last=$_GET['last'];} else {$last=0;} $next=$last+$config_submail;
  394. $send_file=file("../local/sub.dat");
  395. $send_count=count($send_file);
  396. if ($next>$send_count) {$next=$send_count;}
  397.  
  398.  
  399.  
  400. for ($i=$last; $i<$next; $i++) {
  401. $udata = explode("|",$send_file[$i]);
  402. if($udata[0]!==""){
  403. mail($udata[0],$subject,"$mess=$udata[1]",$adds);
  404. }} $last=$next;
  405.  
  406. if (($last)<$send_count) {$per=round(100*$last/$send_count);
  407. echo'<br>Рассылка начата.<br>Успешно отправлено: '.$per.'%<br><br>';
  408. if($config_themes!=="wml"){
  409. echo'<form action="news.php?subadd=yes&amp;action=mail&amp;last='.$last.'&amp;'.SID.'" method="post" />';
  410. echo'<input type="hidden" name="subject" value="'.$subject.'">';
  411. echo'<input type="hidden" name="themes" value="'.$themes.'">';
  412. echo'<input type="hidden" name="msg" value="'.$msg.'">';
  413. echo'<input type="hidden" name="trans" value="'.$trans.'">';
  414. echo'<input type="submit" value="Продолжить рассылку"></form><hr>';
  415.  
  416. }else{
  417. echo'<anchor>Продолжить рассылку';
  418. echo'<go href="news.php?subadd=yes&amp;action=mail&amp;last='.$last.'&amp;'.SID.'" method="post">';
  419.  
  420. echo'<postfield name="subject" value="'.$subject.'"/>';
  421. echo'<postfield name="themes" value="'.$themes.'"/>';
  422. echo'<postfield name="msg" value="'.$msg.'"/>';
  423. echo'<postfield name="trans" value="'.$trans.'"/>';
  424.  
  425. echo'</go></anchor><br>--------------------<br>';
  426. }
  427.  
  428. }else{
  429.  
  430. echo'Рассылка окончена';
  431. }
  432. echo'<br>Всего подписчиков: '.(int)$send_count.'<br>';
  433. echo'<br><img src="../images/img/back.gif" alt=""> <a href="news.php?'.SID.'">Вернуться к новостям</a>';
  434. }
  435.  
  436.  
  437.  
  438. echo'<br><img src="../images/img/panel.gif" alt=""> <a href="index.php?'.SID.'">В админку</a><br>';
  439. echo'<img src="../images/img/homepage.gif" alt=""> <a href="../index.php?'.SID.'">На главную</a><br>';
  440. } else {header ("Location: ../index.php?error&".SID);}
  441. } else {header ("Location: ../index.php?error&".SID);}
  442.  
  443. include_once"../themes/$config_themes/foot.php";
  444. ?>