Документ взят из кэша поисковой машины. Адрес оригинального документа : http://osa.phys.msu.ru/a_materials.php
Дата изменения: Sun Nov 23 17:02:18 2008
Дата индексирования: Sat Apr 9 22:25:59 2016
Кодировка: Windows-1251
include "lib.php";
include "a.php";

function fext($url) {
return strtolower(substr($url, strrpos($url, '.')+1));
}

function drawfile($id) {
global $dscs;
global $lang;
if (isset($dscs[$id])) {
$s = '
';
if (fext($dscs[$id]['url']) == 'jpg') {
$s .= '';
}
$s .= '

'. ($lang=='en'?'Download...':'Скачать...') .'

';
if ($lang == 'en') {
block($dscs[$id]['encap'], date('Y/m/d h:i A', $dscs[$id]['time']).' | edit | delete', $s);
} else {
block($dscs[$id]['rucap'], date('d.m.Y H:i', $dscs[$id]['time']).' | правка | удалить', $s);
}
}
}

function drawfolder($id) {
global $flds;
global $lang;
if (isset($flds[$id])) {
$s = '

'. ($lang=='en'?'Open':'Открыть') .'

';
if ($lang == 'en') {
block($flds[$id]['encap'], date('Y/m/d h:i A', $flds[$id]['time']).' | edit | delete', $s);
} else {
block($flds[$id]['rucap'], date('d.m.Y H:i', $flds[$id]['time']).' | правка | удалить', $s);
}
}
}


function drawparent($id) {
global $flds;
global $lang;
if (isset($flds[$flds[$id]['parent']])) {
$s = '

'. ($lang=='en'?'To '.$flds[$flds[$id]['parent']]['encap'].' folder':'В папку '.$flds[$flds[$id]['parent']]['rucap']) .'

';
block('(..)', '', $s);
} elseif ($flds[$id]['parent'] == '' && $id != '') {
$s = '
'. ($lang=='en'?'To root folder':'В корневую папку').'
';
block('(..)', '', $s);
}
}


function childrenfiles($f) {
global $flds;
global $dscs;
$a = array();
foreach ($dscs as $i => $ff) {
if ($ff['parent'] == $f) {
$a[] = $ff;
}
}
return $a;
}

function childrenfolders($f) {
global $flds;
global $dscs;
$a = array();
foreach ($flds as $i => $ff) {
if ($ff['parent'] == $f) {
$a[] = $ff;
}
}
return $a;
}

function depth($f) {
global $flds;
if ($f == '') return 0;
$j = $f;
$d = 0;
while ($flds[$j]['parent'] != '') {
$j = $flds[$j]['parent'];
$d++;
}
return $d + 1;
}

function sortfolders($vn, $f) {
global $flds;
$GLOBALS[$vn][] = $flds[$f];
?>[] foreach(childrenfolders($f) as $i => $j) {
sortfolders($vn, $j['id']);
}
}

function folderoptions($sel) {
global $flds;
global $lang;
global $rfldoppp;
$rfldoppp = array( );
sortfolders('rfldoppp', '');
$rfldoppp[0] = array(
'id' => '',
'rucap' => 'Корневая папка',
'encap' => 'Root folder'
);
foreach($rfldoppp as $i => $j) {

?> }
}

if (isset($_GET['rmrfp'])) {
$flds = _read('folders.dat');
if (isset($flds[$_GET['rmrfp']])) {
unset($flds[$_GET['rmrfp']]);
_write($flds, 'folders.dat');
header("Location: a_materials.php");
}
}

if (isset($_GET['rmrff'])) {
$flds = _read('files.dat');
if (isset($flds[$_GET['rmrff']])) {
unset($flds[$_GET['rmrff']]);
_write($flds, 'files.dat');
header("Location: a_materials.php");
}
}

caption('materials');

if (isset($_POST['ruwritefld']) || isset($_POST['enwritefld'])) {
$flds = _read('folders.dat');
if (isset($_POST['fldid'])) {
$fldid = $_POST['fldid'];
} else {
end($flds);
$fldid = key($flds) + 1;
}

$ruwritefld = $_POST['ruwritefld'];
$enwritefld = $_POST['enwritefld'];

if (($ruwritefld == '') && ($enwritefld != '')) {
$ruwritefld = $enwritefld;
say('Внимание!', 'Не указан русский заголовок папки, вместо него будет использован английский.');
} elseif (($ruwritefld != '') && ($enwritefld == '')) {
$enwritefld = $ruwritefld;
say('Внимание!', 'Не указан английский заголовок папки, вместо него будет использован русский.');
} elseif (($ruwritefld == '') && ($enwritefld == '')) {
say('Внимание!', 'Не указан ни один заголовок папки! Запись добавлена не будет!');
$stop = true;
}

if (isset($flds[$fldid]['parent']) && !isset($_POST['parent'])) {
$par = $flds[$fldid]['parent'];
} else {
$par = /*isset($_POST['parent']) ?*/ $_POST['parent']; //: '';
}
$flds[$fldid] = array(
'id' => $fldid,
'rucap' => $ruwritefld,
'encap' => $enwritefld,
'time' => time(),
'parent' => $par
);
_write($flds, 'folders.dat');
say('OK', 'Папка создана');
}

if (isset($_POST['ruwritefile']) || isset($_POST['enwritefile'])) {
$stop = false;
$dscs = _read('files.dat');

$ruwritefile = $_POST['ruwritefile'];
$enwritefile = $_POST['enwritefile'];

if (($ruwritefile == '') && ($enwritefile != '')) {
$ruwritefile = $enwritefile;
say('Внимание!', 'Не указан русский заголовок файла, вместо него будет использован английский.');
} elseif (($ruwritefile != '') && ($enwritefile == '')) {
$enwritefile = $ruwritefile;
say('Внимание!', 'Не указан английский заголовок файла, вместо него будет использован русский.');
} elseif (($ruwritefile == '') && ($enwritefile == '')) {
say('Внимание!', 'Не указан ни один заголовок файла! Запись добавлена не будет!');
$stop = true;
}

if (isset($_POST['filid'])) {
$filid = $_POST['filid'];
} else {
end($dscs);
$filid = key($dscs) + 1;
}

if (isset($dscs[$filid]['parent']) && !isset($_POST['parent'])) {
$par = $dscs[$filid]['parent'];
} else {
$par = isset($_POST['parent']) ? $_POST['parent'] : '';
}

if (isset($_FILES['loadfile'])) {
if (!move_uploaded_file($_FILES['loadfile']['tmp_name'], 'files/'.$filid.'.'.fext($_FILES['loadfile']['name']))) {
say('Загрузка не удалась', 'Пришлось прерваться на середине');
$stop = true;
}
} elseif (!isset($dscs[$filid])) {
say('Файл не загружен', 'Не удалось загрузить файл, файл в архиве материалов создан не будет');
$stop = true;
} else {
say('Вы редактируете существующий файл', 'Ничего нового в архив не загружается');
}

if (!$stop) {
$dscs[$filid] = array(
'id' => $filid,
'rucap' => $ruwritefile,
'encap' => $enwritefile,
'time' => time(),
'parent' => $par,
'url' => 'files/'.$filid.'.'.fext($_FILES['loadfile']['name'])
);
_write($dscs, 'files.dat');
say('ОК!', 'Файл был загружен');
}
}

$flds = _read('folders.dat');
$dscs = _read('files.dat');

block('Создать папку', '', '');
?>

' : '')?>





Родительская папка:
Русский заголовок:
Английский заголовок:



block('Загрузить файл', '', '');
?>

' : '')?>






Родительская папка:
Русский заголовок:
Английский заголовок:
Файл:':'')?>





if (isset($_GET['folder'])) {
$fldrid = $_GET['folder'];
} else {
$fldrid = '';
}

drawparent($fldrid);

foreach(childrenfolders($fldrid) as $i => $f) {
drawfolder($f['id']);
}

foreach(childrenfiles($fldrid) as $i => $f) {
drawfile($f['id']);
}

?>