View file admin/files.php

File size: 8.71Kb
<?php
/***************************************************************************
 *                                mides.ru
 *                            -------------------
 ***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = '../';
include($phpbb_root_path . 'extension.inc');
include('pagestart.'.$phpEx);



//////////права доступа
function permissions($filez){
$filez = decoct(fileperms($filez)) % 1000;
return $filez;
}
//////////
//--------------- Функция листинга всех файлов и папок ---------------//
function scan_dir($dirname){
GLOBAL $array_check,$totalfiles_check,$totalsize_check,$totalfolders_check,$config_nocheck;
$no_check = explode(',',$config_nocheck);

$dir = opendir($dirname);
while (($file = readdir($dir)) !== false){
if($file != "." && $file != ".."){
	
if(is_file("$dirname/$file")){
	
$ext = strtolower(substr($file, strrpos($file, '.') + 1));

if (!in_array($ext, $no_check)){
$array_check[] = $dirname."/".$file." - ".date("d.m.y / H:i",filemtime($dirname."/".$file))." - ".formatsize(filesize($dirname."/".$file));
$totalfiles_check++;
$totalsize_check+= filesize($dirname."/".$file);
}
}

if(is_dir("$dirname/$file")){
	
$array_check[] = "$dirname/$file";
$totalfolders_check++;
scan_dir("$dirname/$file");
}

}}
closedir($dir);
}

// $file = check($file);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

echo'<div class="header">Редактирование страниц</div>';

$act = $HTTP_GET_VARS['act'];

if(!isset($act)){

echo '<div class="s1">Список файлов</div><div class="s2">';

$config_editfiles = 10;

$dir = opendir ("../templates/");
while ($file = readdir ($dir)) {
if (!eregi("[^a-z0-9_.-]",$file) && ereg("\.tpl$", $file)) {$a[]=$file;}}
closedir ($dir);
sort($a);

$total = count($a);

$start = (int)$_GET['start'];
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","",$a[$i]);
$siz= filesize("../templates/$a[$i]");
$strok= count(file("../templates/$a[$i]"));
$siz= round($siz/1024,2);


echo '<a href="../pages/?view='.$filename.'&amp;">'.$a[$i].'</a></b> ('.$siz.' kb) ';
echo '<a href="files.php?act=edit&file='.$a[$i].'">(изм</a>/<a href="files.php?act=poddel&amp;file='.$a[$i].'&amp;">уд)</a><br/>';

}

echo '</div><div class="s1" style="text-align: left">Навигация</div><div class="s2" style="text-align: left">';


if ($start != 0) {echo '<a href="files.php?start='.($start - $config_editfiles).'&amp;">&lt;пред.</a>';}else{echo'&lt;пред.';}
echo'|';
if ($total > $start + $config_editfiles) {echo '<a href="files.php?start='.($start + $config_editfiles).'&amp;">след.&gt;</a>';}else{echo'след.&gt;';}

if($total>0){

$ba=ceil($total/$config_editfiles);
$ba2=$ba*$config_editfiles-$config_editfiles;

echo '<br>';
$asd=$start-($config_editfiles*3);
$asd2=$start+($config_editfiles*4);

if($asd<$total && $asd>0){echo ' <a href="files.php?start=0&amp;">1</a> ';}

for($i=$asd; $i<$asd2;)
{
if($i<$total && $i>=0){
$ii=floor(1+$i/$config_editfiles);

if ($start==$i) {
echo ' <u>'.$ii.'</u>';
} else {
echo ' <a href="files.php?start='.$i.'&amp;">'.$ii.'</a>';
}}


$i=$i+$config_editfiles;}
if($asd2<$total){echo ' <a href="files.php?start='.$ba2.'&amp;">'.$ba.'</a>';}
}


echo'<br/><a href="files.php?act=new&amp;">cоздать</a>';
}

//---------------------- Подготовка к редактированию файла -----------------------------//
if($act=="edit"){
if(file_exists("../templates/$file")){
if(!eregi("[^a-z0-9_@+\.-]",$file)){
if($file!=""){


$tplmainfile=file_get_contents("../templates/$file");
$tplmainper=permissions("../templates/$file");
$filename = str_replace(".tpl","",$file);

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

echo 'Редактирование файла '.$file.'<br>';
echo 'Права доступа CHMOD '.$datamainper.'<br>';

if(is_writeable("../templates/$file")){
echo '<font color="#00FF00">Файл доступен для записи</font></div>';
}else{
echo '<font color="#FF0000">Файл недоступен для записи</font></div>';}

echo '<div class=body><form action="files.php?action=editfile&amp;file='.$file.'&amp;'.SID.'" name="form" method="POST">';

echo '<textarea cols="110" rows="20" name="text_files">';
echo check($datamainfile);
echo '</textarea><br>';

echo '<input type="submit" value="Сохранить"></form></div>';

}else{ echo 'Произошла ошибка, не выбран файл<br>';}
}else{ echo 'Недопустимое название файла!<br>';}
}else{ echo 'Произошла ошибка, файл '.check($file).' не найден<br>';}
echo '<div class=btm><img src="../images/img/plus.gif" alt=""> <a href="files.php?'.SID.'">Вернуться</a><br>';
echo '<img src="../images/img/plus.gif" alt=""> <a href="../pages/index.php?action='.$filename.'&amp;'.SID.'">Просмотр</a>';
}
//---------------------- Редактирование файла -----------------------------//
if($act=="editfile"){
if($file!="" && $text_files!=""){

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

$fp = fopen("../templates/$file","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
fputs($fp,$text_files);
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);

}

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

//---------------------- Подготовка к созданию нового файла -----------------------------//
if($act=="new"){
$tplmainper=permissions("../templates");
echo '<div class=tpanel>Создание нового файла<br>';
echo 'Права доступа директории CHMOD '.$datamainper.'<br>';
if(is_writeable("../templates")){
echo '<font color="#00FF00">Директория доступна для создания файлов</font></div>';


echo '<div class=body><form method="post" action="files.php?act=addnew&amp;">';
echo 'Название файла [A-z-_0-9]:<br>';
echo '<input type="text" name="newfile" maxlength="20" /><br>';
echo '<input value="Создать файл" type="submit" /></form></div>';

}else{
echo '<font color="#FF0000">Директория недоступна для создания файлов</font><br>Необходимо войти по FTP и поставить права разрешающие запись в папку templates (CHMOD-777)<br><br>';}
echo '<div class=btm><img src="../images/img/plus.gif" alt=""> <a href="files.php?'.SID.'">Вернуться</a>';
}


//---------------------- Создание нового файла -----------------------------//
if($act=="addnew"){
if(!eregi("[^a-z0-9_-]",$newfile) && $newfile!=""){

$newfiles="$newfile.tpl";

if(!file_exists("../templates/$newfiles")){

$allfile = fopen("../templates/$newfiles", "a+");
fclose($allfile);
chmod ($allfile, 0666);
chmod ("../templates/$newfiles", 0666);
}else{header ("Location: files.php?action=new&isset=mp_noyesfiles&".SID); exit;}
}else{header ("Location: files.php?action=new&isset=mp_nonewfiles&".SID); exit;}
header ("Location: files.php?action=edit&file=$newfiles&isset=mp_newfiles&".SID);
}


//---------------------- Подготовка к удалению файла -----------------------------//
if($act=="poddel"){
if($file!=""){
if($file!="index.tpl"){
echo '<div class=body>Вы подтверждаете что хотите удалить файл <b>'.$file.'</b><br>';
echo '- <b><a href="files.php?act=del&amp;file='.$file.'&amp;">Удалить</a></b></div>';
}else{echo 'Ошибка! Файл index.tpl удалять нельзя, это главная страница сайта!</div>';}
}else{echo 'Ошибка! Не выбран файл для удаления</div>';}
echo '<div class=btm><img src="../images/img/plus.gif" alt=""> <a href="files.php?'.SID.'">Вернуться</a>';
}

//---------------------- Удаление файла -----------------------------//
if($act=="del"){
if(file_exists("../templates/$file") && $file!="index.tpl"){
unlink ("../templates/$file");
}else{header ("Location: files.php?isset=mp_nodelfiles&".SID); exit;}
header ("Location: files.php?isset=mp_delfiles&".SID);
}




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

include('./page_footer_admin.'.$phpEx);
?>