Просмотр файла adminp/files.php

Размер файла: 10.7Kb
<?php

require_once ("../includes/start.php");
require_once ("../includes/functions.php");
require_once ("../includes/header.php");
include_once ("../themes/".$config['themes']."/verh.dat");

if (isset($_GET['start'])) {$start = (int)$_GET['start'];} else {$start = 0;}
if (isset($_GET['action'])) {$action = check($_GET['action']);} else {$action = "";}
if (isset($_GET['file'])) {$file = check($_GET['file']);} else {$file = "";}

if (is_admin(array(101)) && $log==$config['nickname']){

show_title('Редактирование страниц');

############################################################################################
##                                    Главная страница                                    ##
############################################################################################
if ($action==""){

$arrfiles = array();
$globfiles = glob(DATADIR."datamain/*.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."datamain/$arrfiles[$i]"));
$strok = count(file(DATADIR."datamain/$arrfiles[$i]"));

if ($arrfiles[$i]=='index.dat'){

echo '<div class="b">';
echo '<b><a href="../index.php"><span style="color:#330000">'.$arrfiles[$i].'</span></a></b> ('.$size.')<br>';
echo '<a href="files.php?action=edit&amp;file='.$arrfiles[$i].'">Редактировать</a> | ';
echo '<a href="files.php?action=obzor&amp;file='.$arrfiles[$i].'">Просмотр</a></div>';
echo '<div>Кол. строк: '.$strok.'<br>';
echo 'Изменен: '.date_fixed(filemtime(DATADIR."datamain/$arrfiles[$i]")).'</div>';
} else {

echo '<div class="b">';
echo '<b><a href="../pages/index.php?action='.$filename.'">'.$arrfiles[$i].'</a></b> ('.$size.')<br>';
echo '<a href="files.php?action=edit&amp;file='.$arrfiles[$i].'">Редактировать</a> | ';
echo '<a href="files.php?action=obzor&amp;file='.$arrfiles[$i].'">Просмотр</a> | ';
echo '<a href="files.php?action=poddel&amp;file='.$arrfiles[$i].'">Удалить</a></div>';
echo '<div>Кол. строк: '.$strok.'<br>';
echo 'Изменен: '.date_fixed(filemtime(DATADIR."datamain/$arrfiles[$i]")).'</div>';
}}

page_jumpnavigation('files.php?', $config['editfiles'], $start, $total);
page_strnavigation('files.php?', $config['editfiles'], $start, $total);

echo '<br><br>Всего файлов: <b>'.(int)$total.'</b><br>';

} else {show_error('Файлов еще нет!');}

echo'<br><a href="files.php?action=new">Создать</a><br>';
}


############################################################################################
##                                      Обзор файла                                       ##
############################################################################################
if ($action=="obzor"){

if (preg_match('|^[a-z0-9_\.\-]+$|i', $file)){
if (file_exists(DATADIR."datamain/$file")){

echo '<b>Просмотр файла '.$file.'</b><br>';

$opis = file_get_contents(DATADIR."datamain/$file");
$count = count($opis);

echo 'Строчек: '.(int)$count.'<br><br>';

echo highlight_code(check($opis)).'<br>';

echo '<br><a href="files.php?action=edit&amp;file='.$file.'">Редактировать</a><br>';
echo '<a href="files.php?action=poddel&amp;file='.$file.'">Удалить</a>';

} else {show_error('Ошибка! Данного файла не существует!');}
} else {show_error('Ошибка! Недопустимое название страницы!');}

echo '<br><a href="files.php">Вернуться</a>';
}

############################################################################################
##                             Подготовка к редактированию                                ##
############################################################################################
if ($action=="edit"){

if (preg_match('|^[a-z0-9_\.\-]+$|i', $file)){
if (file_exists(DATADIR."datamain/$file")){
if (is_writeable(DATADIR."datamain/$file")){

$datamainfile = file_get_contents(DATADIR."datamain/$file");
$filename = str_replace(".dat","",$file);
$datamainfile = str_replace('&amp;','&',$datamainfile);

echo '<div class="form" id="form">';
echo '<b>Редактирование файла '.$file.'</b><br>';

echo '<form action="files.php?action=editfile&amp;file='.$file.'&amp;uid='.$_SESSION['token'].'" name="form" method="post">';

echo '<textarea cols="90" rows="20" name="msg">'.check($datamainfile).'</textarea><br>';

quickpaste('msg');
quicktags();

echo '<br><input type="submit" value="Редактировать"></form></div>';

} else {show_error('Ошибка! Файл недоступен для записи!');}
} else {show_error('Ошибка! Данного файла не существует!');}
} else {show_error('Ошибка! Недопустимое название страницы!');}

echo '<br><a href="files.php">Вернуться</a><br>';
echo '<a href="../pages/index.php?action='.$filename.'">Просмотр</a>';
}

############################################################################################
##                                  Редактирование файла                                  ##
############################################################################################
if ($action=="editfile"){

$uid = check($_GET['uid']);
$msg = $_POST['msg'];

if ($uid==$_SESSION['token']){
if ($msg!=""){
if (preg_match('|^[a-z0-9_\.\-]+$|i', $file)){
if (file_exists(DATADIR."datamain/$file")){

$msg = str_replace('&','&amp;',$msg);

write_files(DATADIR."datamain/$file", $msg, 1);

header ("Location: files.php?action=edit&file=$file&isset=mp_editfiles"); exit;

} else {show_error('Ошибка! Данного файла не существует!');}
} else {show_error('Ошибка! Недопустимое название страницы!');}
} else {show_error('Ошибка! Вы не ввели текст для редактирования!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}

echo '<br><a href="files.php?action=edit&amp;file='.$file.'">Вернуться</a>';
}

############################################################################################
##                             Подготовка к созданию файла                                ##
############################################################################################
if($action=="new"){

echo '<b>Создание нового файла</b><br><br>';

if (is_writeable(DATADIR."datamain")){

echo '<div class="form"><form action="files.php?action=addnew&amp;uid='.$_SESSION['token'].'" method="post">';
echo 'Название файла:<br>';
echo '<input type="text" name="newfile" maxlength="20"><br><br>';
echo '<input value="Создать файл" type="submit"></form></div>';
echo '<br>Разрешены латинские символы и цифры, а также знаки дефис и нижнее подчеркивание<br>';

} else {show_error('Директория недоступна для создания файлов!');}

echo '<br><a href="files.php">Вернуться</a>';
}

############################################################################################
##                                      Создание файла                                    ##
############################################################################################
if ($action=="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.'datamain/'.$newfile.'.dat')){

write_files(DATADIR.'datamain/'.$newfile.'.dat', '', 1, 0666);

header ('Location: files.php?action=edit&file='.$newfile.'.dat&isset=mp_newfiles');

} else {show_error('Ошибка! Файл с данным названием уже существует!');}
} else {show_error('Ошибка! Недопустимое название файла!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}

echo '<br><a href="files.php?action=new">Вернуться</a>';
}

############################################################################################
##                                  Подготовка к удалению                                 ##
############################################################################################
if ($action=="poddel"){

if (preg_match('|^[a-z0-9_\.\-]+$|i', $file)){
if (file_exists(DATADIR."datamain/$file")){

echo 'Вы подтверждаете что хотите удалить файл <b>'.$file.'</b><br>';
echo '<b><a href="files.php?action=del&amp;file='.$file.'&amp;uid='.$_SESSION['token'].'">Удалить</a></b><br>';

} else {show_error('Ошибка! Данного файла не существует!');}
} else {show_error('Ошибка! Недопустимое название страницы!');}

echo '<br><a href="files.php">Вернуться</a>';
}

############################################################################################
##                                     Удаление файла                                     ##
############################################################################################
if($action=="del"){

$uid = check($_GET['uid']);

if ($uid==$_SESSION['token']){
if (preg_match('|^[a-z0-9_\.\-]+$|i', $file)){
if (file_exists(DATADIR."datamain/$file")){
if ($file!='index.dat'){

if (unlink (DATADIR."datamain/$file")){

header ("Location: files.php?isset=mp_delfiles"); exit;

} else {show_error('Ошибка! Не удалось удалить файл!');}
} else {show_error('Ошибка! Запрещено удалять главный файл!');}
} else {show_error('Ошибка! Данного файла не существует!');}
} else {show_error('Ошибка! Недопустимое название страницы!');}
} else {show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');}

echo '<br><a href="files.php">Вернуться</a>';
}

echo'<br><a href="index.php">В админку</a><br>';
echo'<a href="../index.php">На главную</a><br>';

} else {header ("Location: ../index.php?isset=404"); exit;}

include_once ("../themes/".$config['themes']."/niz.dat");
?>