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

Размер файла: 11.43Kb
  1. <?php
  2.  
  3. require_once ("../includes/start.php");
  4. require_once ("../includes/functions.php");
  5. require_once ("../includes/header.php");
  6. include_once ("../themes/".$config['themes']."/verh.dat");
  7.  
  8. if (isset($_GET['action'])) {$action = check($_GET['action']);} else {$action = "";}
  9. if (isset($_GET['start'])) {$start = (int)$_GET['start'];} else {$start = 0;}
  10.  
  11. if (is_admin(array(101,102))){
  12.  
  13. echo '<b>Управление новостями</b><br><br>';
  14.  
  15. ############################################################################################
  16. ## Главная страница ##
  17. ############################################################################################
  18. if ($action==""){
  19. $file = file(DATADIR."news.dat");
  20. $file = array_reverse($file);
  21. $total = count($file);
  22.  
  23. if ($total>0){
  24.  
  25. echo '<form action="news.php?action=del&amp;start='.$start.'&amp;uid='.$_SESSION['token'].'" method="post">';
  26.  
  27. if ($start < 0 || $start > $total){$start = 0;}
  28. if ($total < $start + $config['postnews']){ $end = $total; }
  29. else {$end = $start + $config['postnews']; }
  30.  
  31. for ($i = $start; $i < $end; $i++){
  32.  
  33. $data = explode("|",$file[$i]);
  34.  
  35. $num = $total - $i - 1;
  36.  
  37. echo '<div class="b">';
  38. echo '<b>'.$data[0].'</b> <small>('.date_fixed($data[3]).')</small><br>';
  39. echo '<input type="checkbox" name="del[]" value="'.$num.'"> ';
  40. echo '<a href="news.php?action=editnews&amp;id='.$num.'&amp;start='.$start.'">Редактировать</a>';
  41. echo '</div><div>'.bb_code($data[1]).'<br>';
  42.  
  43. echo 'Разместил: '.$data[4].'<br>';
  44.  
  45. echo '</div>';
  46.  
  47. }
  48.  
  49. echo '<br><input type="submit" value="Удалить выбранное"></form>';
  50.  
  51. page_jumpnavigation('news.php?', $config['postnews'], $start, $total);
  52. page_strnavigation('news.php?', $config['postnews'], $start, $total);
  53.  
  54. echo '<br><br>Всего новостей: <b>'.(int)$total.'</b><br>';
  55.  
  56. } else {echo '<br><b>Новостей еще нет!</b><br>';}
  57.  
  58. echo '<br><a href="news.php?action=addnews">Добавить новость</a>';
  59.  
  60. }
  61.  
  62. ############################################################################################
  63. ## Удаление новостей ##
  64. ############################################################################################
  65. if ($action=="del") {
  66.  
  67. $uid = check($_GET['uid']);
  68. if (isset($_POST['del'])) {$del = intar($_POST['del']);} else {$del = "";}
  69.  
  70. if ($uid==$_SESSION['token']){
  71. if ($del!==""){
  72.  
  73. $file = file(DATADIR."news.dat");
  74.  
  75. foreach($del as $val){
  76. if (isset($file[$val])){
  77. $data = explode("|", $file[$val]);
  78.  
  79. if(file_exists(DATADIR."datakomm/$data[5].dat")){
  80. unlink (DATADIR."datakomm/$data[5].dat");
  81. }}}
  82.  
  83. delete_lines(DATADIR."news.dat", $del);
  84.  
  85. header ("Location: news.php?start=$start&isset=mp_delnews"); exit;
  86.  
  87. } else {echo '<b>Ошибка удаления! Отсутствуют выбранные новости</b><br>';}
  88. } else {echo '<b>Ошибка! Неверный идентификатор сессии, повторите действие!</b><br>';}
  89.  
  90. echo '<br><a href="news.php?start='.$start.'">Вернуться</a>';
  91. }
  92.  
  93.  
  94. ############################################################################################
  95. ## Подготовка к редактированию новости ##
  96. ############################################################################################
  97. if ($action=="editnews") {
  98.  
  99. if (isset($_GET['id'])) {$id = (int)$_GET['id'];} else {$id = "";}
  100.  
  101. if ($id!=="") {
  102.  
  103. $file = file(DATADIR."news.dat");
  104. if (isset($file[$id])){
  105. $data = explode("|", $file[$id]);
  106.  
  107. $data[1] = nosmiles($data[1]);
  108. $data[1] = str_replace("<br>","\r\n",$data[1]);
  109.  
  110. echo '<b><big>Редактирование</big></b><br><br>';
  111.  
  112. echo '<form action="news.php?action=edit&amp;id='.$id.'&amp;start='.$start.'&amp;uid='.$_SESSION['token'].'" name="form" method="post">';
  113. echo 'Заголовок: <br><input type="text" name="name" size="50" maxlength="50" value="'.$data[0].'"><br>';
  114. echo 'Cообщение:<br>';
  115. echo '<textarea cols="25" rows="10" name="msg">'.$data[1].'</textarea><br>';
  116. echo '<input type="hidden" name="timer" value="'.$data[3].'">';
  117. echo '<input type="hidden" name="logins" value="'.$data[4].'">';
  118. echo '<input type="hidden" name="komm" value="'.$data[5].'">';
  119.  
  120. echo '<br><input type="submit" value="Изменить"></form><hr>';
  121.  
  122. } else {echo '<b>Ошибка! Новости для редактирования не существует!</b><br>';}
  123. } else {echo '<b>Произошла ошибка, не выбрана новость для редактирования!</b><br>';}
  124.  
  125. echo '<br><a href="news.php?start='.$start.'">Вернуться</a>';
  126. }
  127.  
  128.  
  129. ############################################################################################
  130. ## Редактирование выбранной новости ##
  131. ############################################################################################
  132. if($action=="edit"){
  133.  
  134. $uid = check($_GET['uid']);
  135. $name = check($_POST['name']);
  136. $msg = check($_POST['msg']);
  137. $timer = check($_POST['timer']);
  138. $logins = check($_POST['logins']);
  139. $komm = (int)$_POST['komm'];
  140. if (isset($_GET['id'])) {$id = (int)$_GET['id'];} else {$id = "";}
  141.  
  142. if ($id!=="") {
  143. if ($uid==$_SESSION['token']){
  144. if ($name!="" && $msg!="" && $timer!="" && $logins!="" && $komm!==""){
  145.  
  146. $msg = no_br($msg,' <br> ');
  147. $msg = smiles($msg);
  148.  
  149. $text = no_br($name.'|'.$msg.'||'.$timer.'|'.$logins.'|'.$komm.'|');
  150.  
  151. replace_lines(DATADIR."news.dat", $id, $text);
  152.  
  153. header ("Location: news.php?start=$start&isset=mp_editnews"); exit;
  154.  
  155. } else {echo '<b>Ошибка редактирования, отсутствуют важные данные</b><br>';}
  156. } else {echo '<b>Ошибка! Неверный идентификатор сессии, повторите действие!</b><br>';}
  157. } else {echo '<b>Ошибка редактирования выбранной вами новости</b><br>';}
  158.  
  159. echo '<br><a href="news.php?start='.$start.'">Вернуться</a>';
  160. }
  161.  
  162.  
  163. ############################################################################################
  164. ## Подготовка к добавлению новости ##
  165. ############################################################################################
  166. if($action=="addnews"){
  167.  
  168. echo '<b><big>Создание новости</big></b><br><br>';
  169.  
  170. echo '<form action="news.php?action=add&amp;uid='.$_SESSION['token'].'" name="form" method="post">';
  171. echo 'Заголовок новости:<br>';
  172. echo '<input type="text" name="themes" size="50" maxlength="50"><br>';
  173. echo 'Новость:<br>';
  174. echo '<textarea cols="50" rows="10" name="msg"></textarea><br>';
  175.  
  176. echo 'Рассылка: <input name="subadd" type="checkbox" value="yes"><br>';
  177. echo '<br><input type="submit" value="Добавить"></form><hr>';
  178.  
  179. echo '<br><a href="news.php">Вернуться</a>';
  180. }
  181.  
  182.  
  183. ############################################################################################
  184. ## Добавление новости ##
  185. ############################################################################################
  186. if($action=="add"){
  187.  
  188. $uid = check($_GET['uid']);
  189. $msg = check($_POST['msg']);
  190. $themes = check($_POST['themes']);
  191. if (isset($_POST['subadd'])) {$subadd = check($_POST['subadd']);} else {$subadd = "";}
  192.  
  193. if ($uid==$_SESSION['token']){
  194. if ($themes!="" && $msg!=""){
  195.  
  196. $msg = no_br($msg,' <br> ');
  197. $msg = smiles($msg);
  198.  
  199. $file = file(DATADIR."news.dat");
  200. $ndata = explode("|",end($file));
  201. $kommfile = $ndata[5] + 1;
  202.  
  203. /***************** Создание новости ******************/
  204. $textnews = no_br($themes.'|'.$msg.'||'.SITETIME.'|'.$log.'|'.$kommfile.'|');
  205.  
  206. write_files(DATADIR."news.dat", "$textnews\r\n");
  207.  
  208. /**************** Создание комментариев **************/
  209.  
  210. if ($subadd=="yes"){
  211.  
  212. echo '<b>Новость успешно добавлена!</b><br><br>';
  213.  
  214. $msg = nosmiles($msg);
  215. $msg = str_replace('<br>',"\n",$msg);
  216. $msg = strip_tags(bb_code($msg));
  217.  
  218. echo '<form action="news.php?action=sub&amp;uid='.$_SESSION['token'].'" method="post">';
  219. echo '<input type="hidden" name="themes" value="'.$themes.'">';
  220. echo '<input type="hidden" name="msg" value="'.$msg.'">';
  221. echo '<input type="submit" value="Перейти к рассылке"></form><hr>';
  222.  
  223. } else { header ("Location: news.php?isset=mp_addnews"); exit;}
  224. } else {echo '<b>Ошибка добавления новости, пустой заголовок или новость!</b><br>';}
  225. } else {echo '<b>Ошибка! Неверный идентификатор сессии, повторите действие!</b><br>';}
  226.  
  227. echo '<br><a href="news.php?action=addnews">Вернуться</a>';
  228.  
  229. }
  230.  
  231. ############################################################################################
  232. ## Рассылка писем ##
  233. ############################################################################################
  234. if ($action=="sub"){
  235.  
  236. $uid = check($_GET['uid']);
  237. $msg = check($_POST['msg']);
  238. $themes = check($_POST['themes']);
  239. if (isset($_GET['last'])) {$last = (int)$_GET['last'];} else {$last = 0;}
  240.  
  241. if ($uid==$_SESSION['token']){
  242. if ($themes!="" && $msg!=""){
  243.  
  244. $dates = date_fixed(SITETIME, "j F, Y / H:i");
  245.  
  246. $send_file = file(DATADIR."subscribe.dat");
  247. $send_count = count($send_file);
  248.  
  249. $next = $last + $config['submail'];
  250. if ($next > $send_count) {$next = $send_count;}
  251.  
  252. for ($i=$last; $i<$next; $i++) {
  253. $data = explode("|",$send_file[$i]);
  254.  
  255. /******************* Рассылка писем на E-mail ********************/
  256. if($data[0]!=""){
  257. addmail($data[0], "Рассылка новостей с сайта ".$config['title'], html_entity_decode($themes)." (".$dates.") \n".html_entity_decode($msg)." \n\nВы получили это письмо, потому что являетесь подписчиком сайта ".$config['home']." \nОтписаться от рассылки вы можете в своем профиле на нашем сайте \nили клинув по этой ссылке \n".$config['home']."/pages/subscribe.php?key=".$data[1]);
  258. }
  259. }
  260.  
  261. if ($next < $send_count) {
  262. $per = round(100 * $next / $send_count);
  263.  
  264. echo '<br>Рассылка начата<br>';
  265. echo 'Успешно отправлено: '.(int)$per.'%<br><br>';
  266.  
  267. echo '<form action="news.php?action=sub&amp;last='.$next.'&amp;uid='.$_SESSION['token'].'" method="post">';
  268. echo '<input type="hidden" name="themes" value="'.$themes.'">';
  269. echo '<input type="hidden" name="msg" value="'.$msg.'">';
  270. echo '<input type="submit" value="Продолжить рассылку"></form><hr>';
  271.  
  272. } else {echo '<b>Рассылка успешно окончена</b><br><br>';}
  273.  
  274. echo 'Всего подписчиков: '.(int)$send_count.'<br>';
  275.  
  276. } else {echo '<b>Ошибка рассылки новостей, пустой заголовок или новость!</b><br>';}
  277. } else {echo '<b>Ошибка! Неверный идентификатор сессии, повторите действие!</b><br>';}
  278.  
  279. echo '<br><a href="news.php">Вернуться</a>';
  280. }
  281.  
  282. echo '<br><a href="index.php">В админку</a><br>';
  283. echo '<img src="'.BASEDIR.'images/home.svg" alt="+">
  284. <a href="../index.php">Главъ</a><br>';
  285.  
  286. } else {header ("Location: ../index.php?isset=404"); exit;}
  287.  
  288. include_once ("../themes/".$config['themes']."/niz.dat");
  289. ?>