# .................................................................................
#
# Скрипт: Manlix Dirs Viewer, версия: 3.1
# Автор: Manlix (http://manlix.ru)
# .................................................................................
if(phpversion()<4.1){exit("Версия PHP интерпретатора должна быть 4.1.0 или выше, но никак не ниже (ваша версия интерпретатора: ".phpversion().")");}
unset($manlix);
extract($_POST);
extract($_GET);
function error($error,$file){exit(''.$error.' ['.htmlspecialchars($file).']');}
$manlix=parse_ini_file("/usr/local/www/apache22/data/joomla_ifon.npu.edu.ua_kph/www/!e-book/clasik/viewer/inc/config.inc.dat",true) or error("не могу загрузить основной файл конфигурации","./inc/config.inc.dat");
if(!is_dir($manlix['dir']['path']."/".$manlix['dir']['inc'])) {error("не найдена системная папка скрипта",$manlix['dir']['path']."/".$manlix['dir']['inc']);}
elseif(!is_dir($manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[dir][templates])) {error("не найдена папка, в которой должны храниться все шаблоны скрипта",$manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[dir][templates]);}
elseif(!is_dir($manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[dir][templates]."/".$manlix[template][parse])) {error("не найдена папка, в которой должны находиться шаблонные файлы",$manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[dir][templates]."/".$manlix[template][parse]);}
if(!is_readable($manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[dir][templates]."/".$manlix[template][parse]."/config.inc.dat")){error("не могу загрузить специальный файл конфигурации для шаблона",$manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[dir][templates]."/".$manlix[template][parse]."/config.inc.dat");}
else{$manlix=array_merge($manlix,parse_ini_file($manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[dir][templates]."/".$manlix[template][parse]."/config.inc.dat",true));}
while(list(,$file)=each($manlix[templates]))
{
if(file_exists($manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[dir][templates]."/".$manlix[template][parse]."/".$file))
{
if(!is_readable($manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[dir][templates]."/".$manlix[template][parse]."/".$file))
{error("не могу прочитать один из шаблонов",$manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[dir][templates]."/".$manlix[template][parse]."/".$file);}
}
else{error("не найден один из шаблонов /файл не существует/",$manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[dir][templates]."/".$manlix[template][parse]."/".$file);}
}
if(!include($manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[file][functions])){error("не могу загрузить файл с функциями",$manlix[dir][path]."/".$manlix[dir][inc]."/".$manlix[file][functions]);}
parse_template($manlix[templates][top]);
$first=manlix_time();
if($get=ereg_replace("^\.$","",ereg_replace("\.+",".",stripslashes(stripslashes(addslashes($get))))))
{
if(substr($get,0,1)=="/") $get=substr($get,1,strlen($get)-1);
$manlix[other][dir].=chr(47).$get;
}
if(!is_dir($manlix[other][dir])) {$manlix[other][error]="не найдена указаная Вами папка
".htmlspecialchars($get)."
...вернуться к корню"; parse_template($manlix[templates][error]); }
elseif(!is_readable($manlix[other][dir])) {$manlix[other][error]="нет прав для чтения указаной папки
".htmlspecialchars($get)."
...вернуться к корню"; parse_template($manlix[templates][error]); }
else
{
if($manlix[search]=stripslashes(stripslashes(addslashes(strtolower($_GET[search])))))
{
if(!eregi("^[a-zа-я0-9_]+$",$manlix[search])) {$manlix[other][error]="ввести нужно часть имени файла или папки, оно должно
содержать: латинские и русские буквы, цифры и знак подчёркивания
...вернуться к корню"; parse_template($manlix[templates][error]);}
else search($manlix[other][dir]);
}
else
{
if($OpenDir=opendir($manlix[other][dir]))
{
while(($file=readdir($OpenDir))!==false)
{
if($file!="."&&$file!="..")
{
$image=$manlix[other][images].chr(47);
eregi("\.([a-z0-9_]+)$",$file,$img);
if(is_dir($manlix[other][dir].chr(47).$file))
{
$manlix[dirs][]=array(
name => $file,
image => $image.="dir.gif",
link => "?get=".rawurlencode($get).rawurlencode($file).chr(47),
modification => filemtime($manlix[other][dir].chr(47).$file),
created => filectime($manlix[other][dir].chr(47).$file)
);
}
elseif(file_exists($manlix[dir][path].chr(47).$manlix[dir][images].chr(47).strtolower($img[1]).".gif"))
{
$filesize=filesize($manlix[other][dir].chr(47).$file);
$manlix[files][]=array(
name => $file,
image => $image.=$img[1].".gif",
link => $manlix[other][url].chr(47).rawurlencode($get).rawurlencode($file),
modification => filemtime($manlix[other][dir].chr(47).$file),
size => $filesize=($filesize>1024)?manlix_normal_numeric("".round($filesize/1024).""):round(($filesize/1024),3)
);
}
else
{
$filesize=filesize($manlix[other][dir].chr(47).$file);
$manlix[files][]=array(
name => $file,
image => $image.="unknown.gif",
link => $manlix[other][url].chr(47).rawurlencode($get).rawurlencode($file),
modification => filemtime($manlix[other][dir].chr(47).$file),
size => $filesize=($filesize>1024)?manlix_normal_numeric("".round($filesize/1024).""):round(($filesize/1024),3)
);
}
}
}
closedir($OpenDir);
}
}
$paths=explode(chr(47),$get);
for($i=0;$i".$paths[$i]."/";
}
$manlix[other][path]="КОРІНЬ/".$new_path."".$paths[count($paths)-2];
$manlix[other][back]=back($get);
if($get) parse_template($manlix[templates][flash]);
$manlix[other][sizes]=0;
if(count($manlix[dirs]))
{
parse_template($manlix[templates][dir_section]);
while(list($num,$array)=each($manlix[dirs]))
{
$manlix[other][bgcolor]=(strstr(($num/2),"."))?$manlix[color][uneven]:$manlix[color][even];
$manlix[other][num]="$num";
$manlix[other][image]=$array[image];
$manlix[other][link]=eregi_replace("%2f","/",$array[link]);
$manlix[other][name]=$array[name];
$manlix[other][created]=date("d.m.Y (H:i:s)",$array[created]);
$manlix[other][changed]=date("d.m.Y (H:i:s)",$array[modification]);
parse_template($manlix[templates][dir]);
}
}
if(count($manlix[files]))
{
parse_template($manlix[templates][file_section]);
while(list($num,$array)=each($manlix[files]))
{
$manlix[other][bgcolor]=(strstr(($num/2),"."))?$manlix[color][uneven]:$manlix[color][even];
$manlix[other][num]="$num";
$manlix[other][image]=$array[image];
$manlix[other][link]=eregi_replace("%2f","/",$array[link]);
$manlix[other][name]=$array[name];
$manlix[other][changed]=date("d.m.Y (H:i:s)",$array[modification]);
$manlix[other][size]="$array[size]";
$manlix[other][sizes]+=$manlix[other][size];
parse_template($manlix[templates][file]);
}
}
if(!count($manlix[dirs])&&!count($manlix[files])) parse_template($manlix[templates][empty_dir]);
}
$manlix[other][dirs]="".count($manlix[dirs])."";
$manlix[other][files]="".count($manlix[files])."";
$manlix[other][time]="".round(manlix_time()-$first,3)."";
if(strstr($manlix[other][sizes],"."))
{
list($a,$b)=explode(".",$manlix[other][sizes]);
$a=manlix_normal_numeric($a);
$manlix[other][sizes]=$a.".".$b;
}
else{$manlix[other][sizes]="".$manlix[other][sizes]."";}
parse_template($manlix[templates][bottom]);
?>