<?php
require_once ("../includes/start.php");
require_once ("../includes/functions.php");
require_once ("../includes/header.php");
include_once ("../themes/".$config['themes']."/verh.dat");
$act = (isset($_GET['act'])) ? check($_GET['act']) : 'index';
$start = (isset($_GET['start'])) ? abs(intval($_GET['start'])) : 0;
$fid = (isset($_GET['fid'])) ? abs(intval($_GET['fid'])) : 0;
$id = (isset($_GET['id'])) ? abs(intval($_GET['id'])) : 0;
if (is_admin()){
show_title('Дневник '.$config['title']);
switch ($act):
############################################################################################
## Вывод перечня категорий ##
############################################################################################
case "index":
$config['newtitle'] = 'Дневник - Список разделов';
if (file_exists(DATADIR."dataforum/mainforum.dat")) {
$fileforum = file(DATADIR."dataforum/mainforum.dat");
$total = count($fileforum);
if ($total>0) {
foreach($fileforum as $key=>$forumval){
$forum = explode("|", $forumval);
echo'<div class="b">';
echo'<b><a href="forum.php?act=forum&fid='.$forum[0].'">'.$forum[1].'</a></b> ('.$forum[2].'/'.$forum[3].')';
if (is_admin(array(101,102))){
echo'<br>';
if ($key != 0){echo'<a href="forum.php?act=move&fid='.$forum[0].'&where=0&uid='.$_SESSION['token'].'">Вверх</a> / ';} else {echo'Вверх / ';}
if ($total > ($key+1)){echo'<a href="forum.php?act=move&fid='.$forum[0].'&where=1&uid='.$_SESSION['token'].'">Вниз</a>';} else {echo'Вниз';}
echo' / <a href="forum.php?act=editforum&fid='.$forum[0].'">Редактировать</a>';
if (is_admin(array(101))){
echo' / <a href="forum.php?act=delforum&fid='.$forum[0].'&uid='.$_SESSION['token'].'" onclick="return confirm(\'Вы действительно хотите удалить раздел?\')">Удалить</a>';
}
}
echo'</div>';
$totalforum = counter_string(DATADIR."dataforum/topic".$forum[0].".dat");
if($totalforum>0){
$filetopic = file(DATADIR."dataforum/topic".$forum[0].".dat");
$topic = explode("|", end($filetopic));
if (file_exists(DATADIR.'dataforum/'.$forum[0].'-'.$topic[0].'.dat')) {
$filepost = file(DATADIR.'dataforum/'.$forum[0].'-'.$topic[0].'.dat');
$post = explode("|", end($filepost));
if (utf_strlen($topic[3])>35) {$topic[3]=utf_substr($topic[3], 0, 30); $topic[3].="...";}
echo'<div>Тема: <a href="forum.php?act=end&fid='.$forum[0].'&id='.$topic[0].'">'.$topic[3].'</a><br>';
echo'Сообщение: '.nickname($post[2]).' ('.date_fixed($post[6]).')</div>';
} else {echo'Последняя тема не найдена!';}
} else {echo'Раздел пустой! Темы еще не созданы!';}
}
echo'<br><br>Всего разделов: <b>'.$total.'</b><br>';
} else {show_error('Дневник пустой! Разделы еще не созданы!');}
} else {show_error('Дневник пустой! Разделы еще не созданы!');}
if (is_admin(array(101))){
echo'<br><div class="form">';
echo'<form action="forum.php?act=addforum&uid='.$_SESSION['token'].'" method="post">';
echo'Заголовок:<br>';
echo'<input type="text" name="title" size="50" maxlength="50"><br>';
echo'<input value="Создать раздел" type="submit"></form></div><br>';
echo'<a href="forum.php?act=recount">Пересчитать</a><br>';
}
break;
############################################################################################
## Список тем ##
############################################################################################
case "forum":
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
$config['newtitle'] = $forum[1];
$total = counter_string(DATADIR."dataforum/topic$fid.dat");
echo'<a href="forum.php">Дневник</a> / ';
echo'<a href="../forum/forum.php?act=new&fid='.$fid.'">Новая тема</a> / ';
echo'<a href="../forum/forum.php?&fid='.$fid.'&start='.$start.'">Обзор</a><br><br>';
echo'<b>'.$forum[1].'</b> ('.$total.' тем.)<hr>';
if ($total>0) {
$files = file(DATADIR."dataforum/topic$fid.dat");
$files = array_reverse($files);
// Выводим сперва закрепленные темы
$fixed = array();
foreach ($files as $key=>$value){
$data = explode("|", $value);
if (!empty($data[5])){
unset($files[$key]);
$fixed[] = $value;
}
}
$files = array_merge($fixed, $files);
//-------------------------------//
echo'<form action="forum.php?act=deltopic&fid='.$fid.'&start='.$start.'&uid='.$_SESSION['token'].'" method="post">';
echo'<div class="form">';
echo'<input type="checkbox" id="all" onchange="var o=this.form.elements;for(var i=0;i<o.length;i++)o[i].checked=this.checked"> <b><label for="all">Отметить все</label></b>';
echo'</div>';
if ($start < 0 || $start >= $total){$start = 0;}
if ($total < $start + $config['forumtem']){ $end = $total; }
else {$end = $start + $config['forumtem']; }
for ($i = $start; $i < $end; $i++){
$data = explode("|", $files[$i]);
if ($data[5] == 1) {
} elseif($data[6] == 1) {
} else {
}
$totalpost = counter_string(DATADIR.'dataforum/'.$fid.'-'.$data[0].'.dat');
echo'<div class="b">';
echo'<b><a href="forum.php?act=topic&fid='.$fid.'&id='.$data[0].'">'.$data[3].'</a></b> ('.$totalpost.')<br>';
echo'<input type="checkbox" name="del[]" value="'.$data[0].'"> ';
echo'<a href="forum.php?act=edittopic&fid='.$fid.'&id='.$data[0].'&start='.$start.'">Редактировать</a>';
echo'</div>';
if($totalpost>0){
$filepost = file(DATADIR.'dataforum/'.$fid.'-'.$data[0].'.dat');
$datapost = explode("|", end($filepost));
$lastpage = ceil($totalpost/$config['forumpost']) * $config['forumpost'] - $config['forumpost'];
echo'<div>Страницы: ';
forum_navigation('topic.php?fid='.$datapost[1].'&id='.$datapost[0].'&', $config['forumpost'], $totalpost);
echo'Сообщение: '.nickname($datapost[2]).' ('.date_fixed($datapost[6]).')</div>';
} else {echo'Тема пустая! Сообщений еще нет!';}
}
echo'<br><input type="submit" value="Удалить выбранное"></form>';
page_strnavigation('forum.php?act=forum&fid='.$fid.'&', $config['forumtem'], $start, $total);
} else {show_error('Раздел пустой! Темы еще не созданы!');}
} else {show_error('Ошибка! Данного раздела не существует!');}
echo'<br><a href="forum.php">Вернуться</a><br>';
break;
############################################################################################
## Список постов ##
############################################################################################
case "topic":
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
echo'<a href="forum.php">Дневник</a> / ';
echo'<a href="forum.php?act=forum&fid='.$fid.'">'.$forum[1].'</a> / ';
echo'<a href="../forum/forum.php?act=new&fid='.$fid.'">Новая тема</a>';
$topic = search_string(DATADIR."dataforum/topic$fid.dat", $id, 0);
if ($topic) {
$config['newtitle'] = $topic[3];
$total = counter_string(DATADIR.'dataforum/'.$fid.'-'.$id.'.dat');
echo'<br><br><b>'.$topic[3].'</b> ('.$total.' пост.)<hr>';
$lock = (empty($topic[5])) ? 'Закрепить' : 'Открепить';
echo'<a href="forum.php?act=lockedtopic&fid='.$fid.'&id='.$id.'&start='.$start.'&uid='.$_SESSION['token'].'">'.$lock.'</a> / ';
$close = (empty($topic[6])) ? 'Закрыть' : 'Открыть';
echo'<a href="forum.php?act=closedtopic&fid='.$fid.'&id='.$id.'&start='.$start.'&uid='.$_SESSION['token'].'">'.$close.'</a> / ';
echo'<a href="forum.php?act=edittopic&fid='.$fid.'&id='.$id.'">Изменить</a> / ';
echo'<a href="forum.php?act=deltopic&del='.$id.'&fid='.$fid.'&uid='.$_SESSION['token'].'" onclick="return confirm(\'Вы действительно хотите удалить тему?\')">Удалить</a> / ';
echo'<a href="../forum/topic.php?fid='.$fid.'&id='.$id.'&start='.$start.'">Обзор</a>';
echo'<form action="forum.php?act=delpost&fid='.$fid.'&id='.$id.'&start='.$start.'&uid='.$_SESSION['token'].'" method="post">';
echo'<div class="form">';
echo'<input type="checkbox" id="all" onchange="var o=this.form.elements;for(var i=0;i<o.length;i++)o[i].checked=this.checked"> <b><label for="all">Отметить все</label></b>';
echo'</div>';
if ($total>0) {
$file = file(DATADIR.'dataforum/'.$fid.'-'.$id.'.dat');
if ($start < 0 || $start >= $total){$start = 0;}
if ($total < $start + $config['forumpost']){ $end = $total; }
else {$end = $start + $config['forumpost']; }
for ($i = $start; $i < $end; $i++){
$data = explode("|", $file[$i]);
echo'<div class="b">';
echo user_avatars($data[2]).' <b><a href="../pages/anketa.php?uz='.$data[2].'">'.nickname($data[2]).'</a></b> ';
echo user_title($data[2]).user_online($data[2]);
echo' <small>('.date_fixed($data[5]).')</small><br>';
echo'<input type="checkbox" name="del[]" value="'.$i.'"> ';
echo'<a href="forum.php?act=editpost&fid='.$fid.'&id='.$data[0].'&post='.$i.'&start='.$start.'">Редактировать</a>';
echo'</div>';
echo'<div>'.bb_code($data[3]).'<br>';
//echo'<span class="data">('.$data[4].')</span>';
echo'</div>';
}
echo'<br><input type="submit" value="Удалить выбранное"></form>';
page_strnavigation('forum.php?act=topic&fid='.$fid.'&id='.$id.'&', $config['forumpost'], $start, $total);
} else {show_error('Тема пустая! Сообщений еще нет!');}
// Форма для добавления сообщений
if (empty($topic[6])){
if (is_user()){
echo'<div class="form" id="form">';
echo'<form action="../forum/topic.php?act=add&fid='.$fid.'&id='.$id.'&uid='.$_SESSION['token'].'" name="form" method="post">';
echo'Сообщение:<br>';
echo'<textarea cols="25" rows="10" name="msg"></textarea><br>';
quickpaste('msg');
quickcode();
quicksmiles();
echo'<input type="submit" value="Написать"></form></div><br>';
} else {show_login('');}
} else {show_error('Закрыто!<br>');}
} else {show_error('Ошибка! Данной темы не существует!');}
} else {show_error('Ошибка! Данного раздела не существует!');}
echo'<a href="forum.php?act=forum&fid='.$fid.'">Вернуться</a><br>';
break;
############################################################################################
## Пересчет разделов ##
############################################################################################
case "recount":
$config['newtitle'] = 'Пересчет разделов';
if (file_exists(DATADIR."dataforum/mainforum.dat")) {
$fileforum = file(DATADIR."dataforum/mainforum.dat");
if (count($fileforum)>0){
foreach($fileforum as $key=>$forumval){
$forum = explode("|", $forumval);
$totaltopic = 0;
$totalpost = 0;
if (file_exists(DATADIR.'dataforum/topic'.$forum[0].'.dat')){
$filetopic = file(DATADIR.'dataforum/topic'.$forum[0].'.dat');
$totaltopic = count($filetopic);
foreach($filetopic as $topicval){
$topic = explode("|", $topicval);
$totalpost += counter_string(DATADIR.'dataforum/'.$forum[0].'-'.$topic[0].'.dat');
}
}
// Обновление mainforum
$maintext = $forum[0].'|'.$forum[1].'|'.$totaltopic.'|'.$totalpost.'|';
replace_lines(DATADIR."dataforum/mainforum.dat", $key, $maintext);
}
$_SESSION['note'] = 'Данные Дневника успешно пересчитаны!';
redirect("forum.php");
} else {show_error('Дневник пустой! Разделы еще не созданы!');}
} else {show_error('Дневник пустой! Разделы еще не созданы!');}
echo'<br><a href="forum.php">Вернуться</a><br>';
break;
############################################################################################
## Сдвиг раздела ##
############################################################################################
case "move":
$config['newtitle'] = 'Перемещение раздела';
$uid = check($_GET['uid']);
$where = (isset($_GET['where'])) ? abs(intval($_GET['where'])) : null;
if (is_admin(array(101,102))){
if ($uid==$_SESSION['token']){
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
if (!is_null($where)){
move_lines(DATADIR."dataforum/mainforum.dat", $forum['line'], $where);
$_SESSION['note'] = 'Раздел успешно перемещен!';
redirect("forum.php");
} else {echo show_error('Ошибка! Не выбрано действие для сдвига!');}
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
} else {echo show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
} else {echo show_error('Ошибка! Двигать рубрики могут только администраторы!');}
echo'<a href="forum.php">Вернуться</a><br>';
break;
############################################################################################
## Редактирование Дневника ##
############################################################################################
case "editforum":
$config['newtitle'] = 'Редактирование Дневника';
if (is_admin(array(101,102))){
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
echo'<div class="form">';
echo'<form action="forum.php?act=changeforum&fid='.$fid.'&uid='.$_SESSION['token'].'" method="post">';
echo'Заголовок:<br>';
echo'<input type="text" name="title" size="50" maxlength="50" value="'.$forum[1].'"><br>';
echo'Кол. тем:<br>';
echo'<input type="text" name="themes" size="10" value="'.$forum[2].'"><br>';
echo'Кол. постов:<br>';
echo'<input type="text" name="posts" size="10" value="'.$forum[3].'"><br>';
echo'<input value="Изменить" type="submit"></form></div><br>';
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
} else {show_error('Ошибка! Доступ разрешен только админам!');}
echo'<a href="forum.php">Вернуться</a><br>';
break;
############################################################################################
## Изменение Дневника ##
############################################################################################
case "changeforum":
$config['newtitle'] = 'Изменение Дневника';
$uid = check($_GET['uid']);
$title = check($_POST['title']);
$themes = abs(intval($_POST['themes']));
$posts = abs(intval($_POST['posts']));
if ($uid==$_SESSION['token']){
if (is_admin(array(101,102))){
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
if (utf_strlen(trim($title))>=5 && utf_strlen($title)<=50){
$maintext = $forum[0].'|'.$title.'|'.$themes.'|'.$posts.'|';
replace_lines(DATADIR."dataforum/mainforum.dat", $forum['line'], no_br($maintext));
$_SESSION['note'] = 'Раздел успешно изменен!';
redirect("forum.php");
} else {show_error('Слишком длинный или короткий заголовок (Необходимо от 5 до 50 символов)');}
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
} else {show_error('Ошибка! Доступ разрешен только админам!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<a href="forum.php?act=editforum&fid='.$fid.'">Вернуться</a><br>';
break;
############################################################################################
## Удаление Дневника ##
############################################################################################
case "delforum":
$config['newtitle'] = 'Удаление Дневника';
$uid = check($_GET['uid']);
if ($uid==$_SESSION['token']){
if (is_admin(array(101))){
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
// Удаление всех тем в топике
$file = file(DATADIR."dataforum/topic$fid.dat");
if (count($file)>0){
foreach ($file as $data) {
$data = explode("|", $data);
if (file_exists(DATADIR.'dataforum/'.$fid.'-'.$data[0].'.dat')){
unlink(DATADIR.'dataforum/'.$fid.'-'.$data[0].'.dat');
}
}
}
// Удаление файла топика
if (file_exists(DATADIR."dataforum/topic$fid.dat")){
unlink(DATADIR."dataforum/topic$fid.dat");
}
// Удаление раздела Дневника
delete_lines(DATADIR."dataforum/mainforum.dat", $forum['line']);
$_SESSION['note'] = 'Раздел успешно удален!';
redirect("forum.php");
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
} else {show_error('Ошибка! Доступ разрешен только суперадминам!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<a href="forum.php">Вернуться</a><br>';
break;
############################################################################################
## Создание Дневника ##
############################################################################################
case "addforum":
$config['newtitle'] = 'Создание Дневника';
$uid = check($_GET['uid']);
$title = check($_POST['title']);
if ($uid==$_SESSION['token']){
if (is_admin(array(101))){
if (utf_strlen(trim($title))>=5 && utf_strlen($title)<=50){
$id = unifile(DATADIR."dataforum/mainforum.dat", 0);
$maintext = $id.'|'.$title.'|0|0|';
write_files(DATADIR."dataforum/mainforum.dat", "$maintext\r\n", 0, 0666);
$_SESSION['note'] = 'Раздел успешно создан!';
redirect("forum.php");
} else {show_error('Слишком длинный или короткий заголовок (Необходимо от 5 до 50 символов)');}
} else {show_error('Ошибка! Доступ разрешен только суперадминам!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<a href="forum.php">Вернуться</a><br>';
break;
//------------------------------------- Темы Дневника --------------------------------------//
############################################################################################
## Удаление темы ##
############################################################################################
case "deltopic":
$config['newtitle'] = 'Удаление темы';
$uid = check($_GET['uid']);
if (isset($_POST['del'])) {
$del = intar($_POST['del']);
} elseif (isset($_GET['del'])) {
$del = array(abs(intval($_GET['del'])));
} else {
$del = 0;
}
if ($uid==$_SESSION['token']){
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
if (!empty($del)){
$delete = array();
foreach ($del as $val){
$topic = search_string(DATADIR."dataforum/topic$fid.dat", $val, 0);
if ($topic) {
// Удаление файла темы
if (file_exists(DATADIR.'dataforum/'.$fid.'-'.$topic[0].'.dat')) {
unlink (DATADIR.'dataforum/'.$fid.'-'.$topic[0].'.dat');
}
$delete[] = $topic['line'];
}
}
// Удаление записи в темах
delete_lines(DATADIR."dataforum/topic$fid.dat", $delete);
$_SESSION['note'] = 'Выбранные темы успешно удалены!';
redirect("forum.php?act=forum&fid=$fid&start=$start");
} else {show_error('Ошибка! Не выбраны темы для удаления!');}
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<a href="forum.php?act=forum&fid='.$fid.'&start='.$start.'">Вернуться</a><br>';
break;
############################################################################################
## Редактирование темы ##
############################################################################################
case "edittopic":
$config['newtitle'] = 'Редактирование темы';
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
$topic = search_string(DATADIR."dataforum/topic$fid.dat", $id, 0);
if ($topic) {
echo'<div class="form">';
echo'<form action="forum.php?act=changetopic&fid='.$fid.'&id='.$id.'&start='.$start.'&uid='.$_SESSION['token'].'" method="post">';
echo'Заголовок:<br>';
echo'<input type="text" name="title" size="50" maxlength="50" value="'.$topic[3].'"><br>';
echo'Автор темы:<br>';
echo'<input type="text" name="author" size="20" maxlength="20" value="'.$topic[2].'"><br>';
echo'Закрепить тему: ';
$checked = ($topic[5] == 1) ? ' checked="checked"' : '';
echo'<input name="locked" type="checkbox" value="1"'.$checked.'><br>';
echo'Закрыть тему: ';
$checked = ($topic[6] == 1) ? ' checked="checked"' : '';
echo'<input name="closed" type="checkbox" value="1"'.$checked.'><br>';
echo'<input value="Изменить тему" type="submit"></form></div><br>';
} else {show_error('Ошибка! Данной темы не существует!');}
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
echo'<a href="forum.php?act=forum&fid='.$fid.'&start='.$start.'">Вернуться</a><br>';
break;
############################################################################################
## Изменение темы ##
############################################################################################
case "changetopic":
$config['newtitle'] = 'Изменение темы';
$uid = check($_GET['uid']);
$title = check($_POST['title']);
$author = check($_POST['author']);
$locked = (empty($_POST['locked'])) ? 0 : 1;
$closed = (empty($_POST['closed'])) ? 0 : 1;
if ($uid==$_SESSION['token']){
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
$topic = search_string(DATADIR."dataforum/topic$fid.dat", $id, 0);
if ($topic) {
if (check_user($author)){
if (utf_strlen(trim($title))>=5 && utf_strlen($title)<=50){
$topictext = $topic[0].'|'.$topic[1].'|'.$author.'|'.$title.'|'.$topic[4].'|'.$locked.'|'.$closed.'|';
replace_lines(DATADIR."dataforum/topic$fid.dat", $topic['line'], no_br($topictext, '<br>'));
$_SESSION['note'] = 'Тема успешно изменена!';
redirect("forum.php?act=forum&fid=$fid&start=$start");
} else {show_error('Слишком длинный или короткий заголовок (Необходимо от 5 до 50 символов)');}
} else {show_error('Аккаунт пользователя '.$author.' не найден!');}
} else {show_error('Ошибка! Данной темы не существует!');}
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<a href="forum.php?act=edittopic&fid='.$fid.'&id='.$id.'&start='.$start.'">Вернуться</a><br>';
break;
############################################################################################
## Закрытие темы ##
############################################################################################
case "closedtopic":
$config['newtitle'] = 'Закрытие темы';
$uid = check($_GET['uid']);
if ($uid==$_SESSION['token']){
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
$topic = search_string(DATADIR."dataforum/topic$fid.dat", $id, 0);
if ($topic) {
$closed = (empty($topic[6])) ? 1 : 0;
$topictext = $topic[0].'|'.$topic[1].'|'.$topic[2].'|'.$topic[3].'|'.$topic[4].'|'.$topic[5].'|'.$closed.'|';
replace_lines(DATADIR."dataforum/topic$fid.dat", $topic['line'], no_br($topictext, '<br>'));
$_SESSION['note'] = 'Тема успешно изменена!';
redirect("forum.php?act=topic&fid=$fid&id=$id&start=$start");
} else {show_error('Ошибка! Данной темы не существует!');}
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<a href="forum.php?act=topic&fid='.$fid.'&id='.$id.'">Вернуться</a><br>';
break;
############################################################################################
## Закрепление темы ##
############################################################################################
case "lockedtopic":
$config['newtitle'] = 'Закрепление темы';
$uid = check($_GET['uid']);
if ($uid==$_SESSION['token']){
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
$topic = search_string(DATADIR."dataforum/topic$fid.dat", $id, 0);
if ($topic) {
$locked = (empty($topic[5])) ? 1 : 0;
$topictext = $topic[0].'|'.$topic[1].'|'.$topic[2].'|'.$topic[3].'|'.$topic[4].'|'.$locked.'|'.$topic[6].'|';
replace_lines(DATADIR."dataforum/topic$fid.dat", $topic['line'], no_br($topictext, '<br>'));
$_SESSION['note'] = 'Тема успешно изменена!';
redirect("forum.php?act=topic&fid=$fid&id=$id&start=$start");
} else {show_error('Ошибка! Данной темы не существует!');}
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<a href="forum.php?act=topic&fid='.$fid.'&id='.$id.'">Вернуться</a><br>';
break;
//--------------------------------- Сообщения Дневника -------------------------------------//
############################################################################################
## Удаление сообщений ##
############################################################################################
case "delpost":
$config['newtitle'] = 'Удаление сообщений';
$uid = check($_GET['uid']);
$del = (isset($_POST['del'])) ? intar($_POST['del']) : null;
if ($uid==$_SESSION['token']){
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
$topic = search_string(DATADIR."dataforum/topic$fid.dat", $id, 0);
if ($topic) {
if (!is_null($del)) {
delete_lines(DATADIR.'dataforum/'.$fid.'-'.$id.'.dat', $del);
$_SESSION['note'] = 'Выбранные сообщения успешно удалены!';
redirect("forum.php?act=topic&fid=$fid&id=$id&start=$start");
} else {show_error('Ошибка! Не выбраны сообщения для удаления!');}
} else {show_error('Ошибка! Данной темы не существует!');}
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}
echo'<a href="forum.php?act=topic&fid='.$fid.'&id='.$id.'&start='.$start.'">Вернуться</a><br>';
break;
############################################################################################
## Редактирование сообщения ##
############################################################################################
case "editpost":
$config['newtitle'] = 'Редактирование сообщения';
$post = (isset($_GET['post'])) ? abs(intval($_GET['post'])) : null;
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
$topic = search_string(DATADIR."dataforum/topic$fid.dat", $id, 0);
if ($topic) {
$data = read_string(DATADIR.'dataforum/'.$fid.'-'.$id.'.dat', $post);
if ($data){
$data[3] = str_replace("<br>","\r\n",nosmiles($data[3]));
echo'<div class="form" id="form">';
echo'<form action="forum.php?act=changepost&fid='.$fid.'&id='.$id.'&post='.$post.'&start='.$start.'&uid='.$_SESSION['token'].'" name="form" method="post">';
echo'Автор:<br>';
echo'<input type="text" name="author" size="20" maxlength="20" value="'.$data[2].'"><br>';
echo'Сообщение:<br>';
echo'<textarea cols="25" rows="10" name="msg">'.$data[3].'</textarea><br>';
quickpaste('msg');
quickcode();
quicksmiles();
echo'<input type="submit" value="Изменить"></form></div><br>';
} else {show_error('Ошибка! Данное сообщение не найдено!');}
} else {show_error('Ошибка! Данной темы не существует!');}
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
echo'<a href="forum.php?act=topic&fid='.$fid.'&id='.$id.'&start='.$start.'">Вернуться</a><br>';
break;
############################################################################################
## Изменение сообщения ##
############################################################################################
case "changepost":
$config['newtitle'] = 'Изменение сообщения';
$post = (isset($_GET['post'])) ? abs(intval($_GET['post'])) : null;
$msg = check($_POST['msg']);
$author = check($_POST['author']);
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
$topic = search_string(DATADIR."dataforum/topic$fid.dat", $id, 0);
if ($topic) {
$data = read_string(DATADIR.'dataforum/'.$fid.'-'.$id.'.dat', $post);
if ($data){
if (check_user($author)){
if (utf_strlen(trim($msg))>=5 && utf_strlen($msg)<=5000){
$msg = smiles($msg);
$posttext = $data[0].'|'.$data[1].'|'.$author.'|'.$msg.'|'.$data[4].'|'.$data[5].'|';
replace_lines(DATADIR.'dataforum/'.$fid.'-'.$id.'.dat', $post, no_br($posttext, '<br>'));
$_SESSION['note'] = 'Сообщение успешно изменено!';
redirect("forum.php?act=topic&fid=$fid&id=$id&start=$start");
} else {show_error('Слишком длинный или короткий текст сообщения (Необходимо от 5 до 5000 символов)');}
} else {show_error('Аккаунт пользователя '.$author.' не найден!');}
} else {show_error('Ошибка! Данное сообщение не найдено!');}
} else {show_error('Ошибка! Данной темы не существует!');}
} else {show_error('Ошибка! Данный раздел Дневника не найден!');}
echo'<a href="forum.php?act=editpost&fid='.$fid.'&id='.$id.'&post='.$post.'&start='.$start.'">Редактировать</a><br>';
break;
############################################################################################
## Переход к последней странице ##
############################################################################################
case "end":
$forum = search_string(DATADIR."dataforum/mainforum.dat", $fid, 0);
if ($forum) {
$topic = search_string(DATADIR."dataforum/topic$fid.dat", $id, 0);
if ($topic) {
$totpage = counter_string(DATADIR.'dataforum/'.$fid.'-'.$id.'.dat');
$lastpage = ceil($totpage/$config['forumpost']) * $config['forumpost'] - $config['forumpost'];
redirect("forum.php?act=topic&fid=$fid&id=$id&start=$lastpage");
} else {show_error('Ошибка! Данной темы не существует!');}
} else {show_error('Ошибка! Данного раздела не существует!');}
echo'<a href="forum.php">Вернуться</a><br>';
break;
default:
redirect("forum.php");
endswitch;
//----------------------- Концовка -------------------------//
echo'<a href="index.php">В админку</a><br>';
echo'
<a href="../index.php">Главъ</a><br>';
} else {redirect(BASEDIR.'index.php');}
include_once ("../themes/".$config['themes']."/niz.dat");
?>