<?php
#-----------------------------------------------------#
# ********* ROTORCMS ********* #
# Made by : VANTUZ #
# E-mail : [email protected] #
# Site : http://pizdec.ru #
# WAP-Site : http://visavi.net #
# ICQ : 36-44-66 #
# Вы не имеете право вносить изменения в код скрипта #
# для его дальнейшего распространения #
#-----------------------------------------------------#
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/' . $config['themes'] . '/index.php');
if (isset($_GET['act'])) {
$act = check($_GET['act']);
} else {
$act = 'index';
}
if (isset($_GET['start'])) {
$start = abs(intval($_GET['start']));
} else {
$start = 0;
}
if (isset($_GET['file'])) {
$file = check($_GET['file']);
} else {
$file = '';
}
if (is_admin(array(101)) && $log == $config['nickname']) {
show_title('menu.png', 'Редактирование страниц');
$config['newtitle'] = 'Редактирование страниц';
switch ($act):
# ###########################################################################################
# # Главная страница ##
# ###########################################################################################
case 'index':
$arrfiles = array();
$globfiles = glob(DATADIR . "main/*.dat");
foreach ($globfiles as $filename) {
$arrfiles[] = basename($filename);
}
$total = count($arrfiles);
if ($total > 0) {
if ($start < 0 || $start > $total) {
$start = 0;
}
if ($total < $start + $config['editfiles']) {
$end = $total;
} else {
$end = $start + $config['editfiles'];
}
for ($i = $start; $i < $end; $i++) {
$filename = str_replace('.dat', '', $arrfiles[$i]);
$size = formatsize(filesize(DATADIR . "main/$arrfiles[$i]"));
$strok = count(file(DATADIR . "main/$arrfiles[$i]"));
if ($arrfiles[$i] == 'index.dat') {
echo '<div class="b"><img src="../images/img/edit.gif" alt="image" /> ';
echo '<b><a href="../index.php?' . SID . '"><span style="color:#ff0000">' . $arrfiles[$i] . '</span></a></b> (' . $size . ')<br />';
echo '<a href="files.php?act=edit&file=' . $arrfiles[$i] . '&' . SID . '">Редактировать</a> | ';
echo '<a href="files.php?act=obzor&file=' . $arrfiles[$i] . '&' . SID . '">Просмотр</a></div>';
echo '<div>Кол. строк: ' . $strok . '<br />';
echo 'Изменен: ' . date_fixed(filemtime(DATADIR . "main/$arrfiles[$i]")) . '</div>';
} else {
echo '<div class="b"><img src="../images/img/edit.gif" alt="image" /> ';
echo '<b><a href="../pages/index.php?act=' . $filename . '&' . SID . '">' . $arrfiles[$i] . '</a></b> (' . $size . ')<br />';
echo '<a href="files.php?act=edit&file=' . $arrfiles[$i] . '&' . SID . '">Редактировать</a> | ';
echo '<a href="files.php?act=obzor&file=' . $arrfiles[$i] . '&' . SID . '">Просмотр</a> | ';
echo '<a href="files.php?act=poddel&file=' . $arrfiles[$i] . '&' . SID . '">Удалить</a></div>';
echo '<div>Кол. строк: ' . $strok . '<br />';
echo 'Изменен: ' . date_fixed(filemtime(DATADIR . "main/$arrfiles[$i]")) . '</div>';
}
}
page_strnavigation('files.php?', $config['editfiles'], $start, $total);
echo 'Всего файлов: <b>' . (int)$total . '</b><br /><br />';
} else {
show_error('Файлов еще нет!');
}
echo'<img src="../images/img/files.gif" alt="image" /> <a href="files.php?act=new&' . SID . '">Создать</a><br />';
echo'<img src="../images/img/faq.gif" alt="image" /> <a href="files.php?act=faq&' . SID . '">Помощь</a><br />';
break;
# ###########################################################################################
# # Обзор файла ##
# ###########################################################################################
case 'obzor':
if (preg_match('|^[a-z0-9_\.\-]+$|i', $file)) {
if (file_exists(DATADIR . "main/$file")) {
echo '<b>Просмотр файла ' . $file . '</b><br />';
$opis = file_get_contents(DATADIR . "main/$file");
$count = count(file(DATADIR . "main/$file"));
echo 'Строк: ' . (int)$count . '<br /><br />';
echo highlight_code(check($opis)) . '<br /><br />';
echo '<img src="../images/img/edit.gif" alt="image" /> <a href="files.php?act=edit&file=' . $file . '&' . SID . '">Редактировать</a><br />';
echo '<img src="../images/img/error.gif" alt="image" /> <a href="files.php?act=poddel&file=' . $file . '&' . SID . '">Удалить</a><br />';
} else {
show_error('Ошибка! Данного файла не существует!');
}
} else {
show_error('Ошибка! Недопустимое название страницы!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="files.php?' . SID . '">Вернуться</a><br />';
break;
# ###########################################################################################
# # Подготовка к редактированию ##
# ###########################################################################################
case 'edit':
if (preg_match('|^[a-z0-9_\.\-]+$|i', $file)) {
if (file_exists(DATADIR . "main/$file")) {
if (is_writeable(DATADIR . "main/$file")) {
$mainfile = file_get_contents(DATADIR . "main/$file");
$filename = str_replace(".dat", "", $file);
$mainfile = str_replace('&', '&', $mainfile);
echo '<div class="form" id="form">';
echo '<b>Редактирование файла ' . $file . '</b><br />';
echo '<form action="files.php?act=editfile&file=' . $file . '&uid=' . $_SESSION['token'] . '&' . SID . '" name="form" method="post">';
echo '<textarea cols="90" rows="20" name="msg">' . check($mainfile) . '</textarea><br />';
// ------------------------- Функция вывода админских тегов ------------------------//
function quicktags() {
echo 'Быстрые теги <br />';
echo '<a href="#form" onclick="javascript:tag(\'<a href="">\', \'</a>\');"><img src="' . BASEDIR . 'images/editor/a.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<img src="\', \'" alt="image" />\');"><img src="' . BASEDIR . 'images/editor/img.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<br />\', \'\');"><img src="' . BASEDIR . 'images/editor/br.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<hr />\', \'\');"><img src="' . BASEDIR . 'images/editor/hr.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<b>\', \'</b>\');"><img src="' . BASEDIR . 'images/editor/b.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<big>\', \'</big>\');"><img src="' . BASEDIR . 'images/editor/big.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<small>\', \'</small>\');"><img src="' . BASEDIR . 'images/editor/small.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<i>\', \'</i>\');"><img src="' . BASEDIR . 'images/editor/i.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<u>\', \'</u>\');"><img src="' . BASEDIR . 'images/editor/u.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<div style="text-align:left">\', \'</div>\');"><img src="' . BASEDIR . 'images/editor/left.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<div style="text-align:center">\', \'</div>\');"><img src="' . BASEDIR . 'images/editor/center.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<div style="text-align:right">\', \'</div>\');"><img src="' . BASEDIR . 'images/editor/right.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<span style="color:#ff0000">\', \'</span>\');"><img src="' . BASEDIR . 'images/editor/red.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<span style="color:#00ff00">\', \'</span>\');"><img src="' . BASEDIR . 'images/editor/green.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<span style="color:#0000ff">\', \'</span>\');"><img src="' . BASEDIR . 'images/editor/blue.gif" alt="image" /></a>';
echo '<a href="#form" onclick="javascript:tag(\'<span style="color:#ffff00">\', \'</span>\');"><img src="' . BASEDIR . 'images/editor/yellow.gif" alt="image" /></a>';
echo '<br />';
}
quickpaste('msg');
quicktags();
echo '<br /><input type="submit" value="Редактировать" /></form></div><br />';
} else {
show_error('Ошибка! Файл недоступен для записи!');
}
} else {
show_error('Ошибка! Данного файла не существует!');
}
} else {
show_error('Ошибка! Недопустимое название страницы!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="files.php?' . SID . '">Вернуться</a><br />';
echo '<img src="../images/img/online.gif" alt="image" /> <a href="../pages/index.php?act=' . $filename . '&' . SID . '">Просмотр</a><br />';
break;
# ###########################################################################################
# # Редактирование файла ##
# ###########################################################################################
case 'editfile':
$uid = check($_GET['uid']);
$msg = $_POST['msg'];
if ($uid == $_SESSION['token']) {
if (!empty($msg)) {
if (preg_match('|^[a-z0-9_\.\-]+$|i', $file)) {
if (file_exists(DATADIR . 'main/' . $file)) {
$msg = str_replace('&', '&', $msg);
$fp = fopen(DATADIR . 'main/' . $file, "a+");
flock ($fp, LOCK_EX);
ftruncate($fp, 0);
fputs ($fp, $msg);
fflush($fp);
flock ($fp, LOCK_UN);
fclose($fp);
$_SESSION['note'] = 'Файл успешно отредактирован!';
header ("Location: files.php?act=edit&file=$file&" . SID);
exit;
} else {
show_error('Ошибка! Данного файла не существует!');
}
} else {
show_error('Ошибка! Недопустимое название страницы!');
}
} else {
show_error('Ошибка! Вы не ввели текст для редактирования!');
}
} else {
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
echo '<br /><img src="../images/img/back.gif" alt="image" /> <a href="files.php?act=edit&file=' . $file . '&' . SID . '">Вернуться</a>';
break;
# ###########################################################################################
# # Помощь ##
# ###########################################################################################
case 'faq':
echo '<b>Сокрашенные коды RotorCMS</b><br /><br />';
echo '<img src="../images/editor/a.gif" alt="image" /> - Тег служит для создания гипертекста (ссылок). Гипертекст позволяет осуществлять мгновенный переход от одного фрагмента текста к другому.<br />';
echo '<img src="../images/editor/img.gif" alt="image" /> - Тег служит для внедрения графики на страницы. alt - Выводит текст к картинке. Полезно, если браузер не отображает графику на странице.<br />';
echo '<img src="../images/editor/br.gif" alt="image" /> - Тег служит для перевода текста на следующую строку<br />';
echo '<img src="../images/editor/hr.gif" alt="image" /> - Тег добавляет в HTML документ горизонтальную линию. Перед и после линии помещается пустая строка<br />';
echo '<img src="../images/editor/b.gif" alt="image" /> - Тег создает жирный текст<br />';
echo '<img src="../images/editor/big.gif" alt="image" /> - Тег выводит более крупный текст<br />';
echo '<img src="../images/editor/small.gif" alt="image" /> - Тег выводит более мелкий текст<br />';
echo '<img src="../images/editor/i.gif" alt="image" /> - Тег создает наклонный текст<br />';
echo '<img src="../images/editor/u.gif" alt="image" /> - Тег указывает, что текст должен быть подчеркнут<br />';
echo '<img src="../images/editor/right.gif" alt="image" /> - Тег создает новый блок. Текст выровнен по правому краю<br />';
echo '<img src="../images/editor/center.gif" alt="image" /> - Тег создает новый блок. Текст выровнен по центру<br />';
echo '<img src="../images/editor/left.gif" alt="image" /> - Тег создает новый блок. Текст выровнен по левому краю<br />';
echo '<img src="../images/editor/red.gif" alt="image" /> - Тег изменяет цвет текста на красный<br />';
echo '<img src="../images/editor/green.gif" alt="image" /> - Тег изменяет цвет текста на зеленый<br />';
echo '<img src="../images/editor/blue.gif" alt="image" /> - Тег изменяет цвет текста на синий<br />';
echo '<img src="../images/editor/yellow.gif" alt="image" /> - Тег изменяет цвет текста на желтый<br /><br />';
echo '<img src="../images/img/back.gif" alt="image" /> <a href="files.php?' . SID . '">Вернуться</a><br />';
break;
# ###########################################################################################
# # Подготовка к созданию файла ##
# ###########################################################################################
case 'new':
echo '<b>Создание нового файла</b><br /><br />';
if (is_writeable(DATADIR . "main")) {
echo '<div class="form"><form action="files.php?act=addnew&uid=' . $_SESSION['token'] . '&' . SID . '" method="post">';
echo 'Название файла:<br />';
echo '<input type="text" name="newfile" maxlength="20" /><br /><br />';
echo '<input value="Создать файл" type="submit" /></form></div>';
echo '<br />Разрешены латинские символы и цифры, а также знаки дефис и нижнее подчеркивание<br /><br />';
} else {
show_error('Директория недоступна для создания файлов!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="files.php?' . SID . '">Вернуться</a><br />';
break;
# ###########################################################################################
# # Создание файла ##
# ###########################################################################################
case 'addnew':
$uid = check($_GET['uid']);
$newfile = check($_POST['newfile']);
if ($uid == $_SESSION['token']) {
if (preg_match('|^[a-z0-9_\-]+$|i', $newfile)) {
if (!file_exists(DATADIR . 'main/' . $newfile . '.dat')) {
$fp = fopen(DATADIR . 'main/' . $newfile . '.dat', "a+");
flock ($fp, LOCK_EX);
fputs ($fp, '');
fflush($fp);
flock ($fp, LOCK_UN);
fclose($fp);
chmod(DATADIR . 'main/' . $newfile . '.dat', 0666);
$_SESSION['note'] = 'Новый файл успешно создан!';
header ('Location: files.php?act=edit&file=' . $newfile . '.dat&' . SID);
exit;
} else {
show_error('Ошибка! Файл с данным названием уже существует!');
}
} else {
show_error('Ошибка! Недопустимое название файла!');
}
} else {
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
echo '<br /><img src="../images/img/back.gif" alt="image" /> <a href="files.php?act=new&' . SID . '">Вернуться</a>';
break;
# ###########################################################################################
# # Подготовка к удалению ##
# ###########################################################################################
case 'poddel':
if (preg_match('|^[a-z0-9_\.\-]+$|i', $file)) {
if (file_exists(DATADIR . "main/$file")) {
echo 'Вы подтверждаете что хотите удалить файл <b>' . $file . '</b><br />';
echo '<img src="../images/img/error.gif" alt="image" /> <b><a href="files.php?act=del&file=' . $file . '&uid=' . $_SESSION['token'] . '&' . SID . '">Удалить</a></b><br /><br />';
} else {
show_error('Ошибка! Данного файла не существует!');
}
} else {
show_error('Ошибка! Недопустимое название страницы!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="files.php?' . SID . '">Вернуться</a><br />';
break;
# ###########################################################################################
# # Удаление файла ##
# ###########################################################################################
case 'del':
$uid = check($_GET['uid']);
if ($uid == $_SESSION['token']) {
if (preg_match('|^[a-z0-9_\.\-]+$|i', $file)) {
if (file_exists(DATADIR . "main/$file")) {
if ($file != 'index.dat') {
if (unlink (DATADIR . "main/$file")) {
$_SESSION['note'] = 'Файл успешно удален!';
header ("Location: files.php?" . SID);
exit;
} else {
show_error('Ошибка! Не удалось удалить файл!');
}
} else {
show_error('Ошибка! Запрещено удалять главный файл!');
}
} else {
show_error('Ошибка! Данного файла не существует!');
}
} else {
show_error('Ошибка! Недопустимое название страницы!');
}
} else {
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
echo '<img src="../images/img/back.gif" alt="image" /> <a href="files.php?' . SID . '">Вернуться</a><br />';
break;
default:
header("location: files.php?" . SID);
endswitch;
echo '<img src="../images/img/panel.gif" alt="image" /> <a href="index.php?' . SID . '">В админку</a><br />';
echo '<img src="../images/img/homepage.gif" alt="image" /> <a href="../index.php?' . SID . '">На главную</a>';
} else {
header ('Location: ' . BASEDIR . 'index.php?' . SID);
exit;
}
include_once ('../themes/' . $config['themes'] . '/foot.php');
?>