Файл: CMS/core/admin/loads.php
Строк: 593
<?php
if (!defined('CMS')) { die('Access Denied!'); }
if (is_admin(array(101, 102))) {
include_once( dirname(__FILE__) . '/loads.inc.php' );
switch ($mod):
default:
show_header('Управление загрузками');
if (!empty($_SESSION[SP]['move'])) {
$cnt = count($_SESSION[SP]['move']);
echo '<div class="b">Выбрано ' . num2name($cnt, array('файлов','файла','файл')) . '.<br />';
echo 'Выберите папку для перемещения:<br /></div>';
}
$rows = $db->select("SELECT `c`.* FROM ?_downs_category `c`
WHERE `c`.`cats_user` = '' AND `c`.`cats_parent` = '0'
ORDER BY `cats_order` ASC;");
if (!empty($rows) && count($rows) > 0) {
foreach($rows as $row) {
echo '<div class="b"> ';
if (is_admin(array(101))) {
echo '<div class="right">';
echo '<a href="?m=load&edit_dir=' . $row['cats_id'] . '&' . RND . '#form">Ред.</a> | ';
echo '<a href="?m=del_cats&id=' . $row['cats_id'] . '&' . RND . '">Уд.</a> | ';
echo '<a href="?m=load&up=' . $row['cats_id'] . '&' . RND . '">Вверх</a> | ';
echo '<a href="?m=load&down=' . $row['cats_id'] . '&' . RND . '">Вниз</a></div>';
}
echo $row['cats_order'] . '. <a href="?m=cats&id=' . $row['cats_id'] . '&' . RND . '">' . $row['cats_name'] . '</a></b> ';
echo '(' . $row['cats_count'] . ')<br />';
if (!empty($row['cats_about'])) echo bb_code($row['cats_about']);
echo '</div>';
}
}
else show_error('Разделы загрузок еще не созданы!');
if (is_admin(array(101))) {
if (!empty($_GET['edit_dir'])) {
$cats = $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_id` = ? LIMIT 1", num($_GET['edit_dir']));
if (!empty($cats)) {
$form = new cmsForm('?m=load&id=' . num($cats['cats_id']) . '&rnd=' . $_SESSION['token'], 'post', ' id="form"');
$form->addCode('<b>Редактирование основной категории</b><br />');
$form->addText('Название :', 'name', $cats['cats_name']);
$form->addTextarea('Описание:', 'about', $cats['cats_about']);
$form->addTextarea('Расширения файлов (через запятую):', 'types', $cats['cats_ext']);
$form->addCheckBox('Загрузка разрешена: ', 'upload', $cats['cats_upload']);
echo $form->Submit(array('Изменить', 'Отмена'), array('edit_dir_one', 'cancel'));
unset($form);
}
else show_error('Ошибка! Папка не найдена!');
}
else if (!empty($_GET['add_dir'])) {
$form = new cmsForm('?m=load&rnd=' . $_SESSION['token'], 'post', ' id="form"');
$form->addCode('<b>Создание основной категории</b><br />');
$form->addText('Название :', 'name', request('name'));
$form->addTextarea('Описание:', 'about', request('about'));
$form->addTextarea('Расширения файлов (через запятую):', 'types', request('types'));
$form->addCheckBox('Загрузка разрешена: ', 'upload');
$form->addHidden('parrent', '0');
echo $form->Submit(array('Создать', 'Отмена'), array('add_dir_one', 'cancel'));
unset($form);
}
else {
echo '<div class="b">';
echo icon('add.png') . ' <a href="?m=load&add_dir=1#form">Создать папку</a><br />';
echo icon('mail.png') . ' <a href="?m=load&restatement=1&rnd=' . $_SESSION['token'] . '">Пересчитать</a><br />';
echo '</div>';
}
}
break;
case 'cats':
$cats = $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_id` = ? LIMIT 1;", $id);
if (!empty($cats)) {
show_header('Управление загрузками - ' . $cats['cats_name']);
if (!empty($_SESSION[SP]['move'])) {
$cnt = count($_SESSION[SP]['move']);
echo '<div class="b">Выбрано ' . num2name($cnt, array('файлов','файла','файл')) . '.<br />Выберите папку для перемещения и нажмите ';
echo '<a href="?m=cats&id=' . $id . '&act=selmove&rnd=' . $_SESSION['token'] . '">[Переместить сюда]</a> ';
echo 'или <a href="?m=cats&id=' . $id . '&act=cancel&rnd=' . $_SESSION['token'] . '">Отмена</a></div>';
}
else if ($select_files) {
echo '<div class="b">Выберите файлы для перемещения:<br /></div>';
}
$sub_cats = false;
$subs = $db->select("SELECT * FROM ?_downs_category WHERE `cats_parent` = ? ORDER BY `cats_order` ASC;", $id);
if (!empty($subs) && count($subs) > 0 && $page == 1) {
$sub_cats = true;
foreach($subs as $sub) {
echo '<div class="b"> ';
if (is_admin(array(101))) {
echo '<div class="right">';
echo '<a href="?m=cats&edit_dir=1&id=' . $sub['cats_id'] . '&' . RND . '#form">Ред.</a> | ';
echo '<a href="?m=del_cats&id=' . $sub['cats_id'] . '&' . RND . '">Уд.</a> | ';
echo '<a href="?m=cats&id=' . $id . '&up=' . $sub['cats_id'] . '&' . RND . '">Вверх</a> | ';
echo '<a href="?m=cats&id=' . $id . '&down=' . $sub['cats_id'] . '&' . RND . '">Вниз</a></div>';
}
echo $sub['cats_order'] . '. <a href="?m=cats&id=' . $sub['cats_id'] . '&' . RND . '">' . $sub['cats_name'] . '</a></b> ';
echo '(' . $sub['cats_count'] . ')<br />';
if (!empty($sub['cats_about'])) echo bb_code($sub['cats_about']);
echo '</div>';
}
}
$onpage = !empty($config['book_num']) ? num($config['book_num']) : 10;
if ($page > 1) $from = ($page - 1) * $onpage; else $from = 0;
$rows = $db->selectPage( $total, "SELECT * FROM ?_downs
WHERE `downs_cats_id` = ? ORDER BY `downs_time` DESC
LIMIT ?d, ?d", $id, $from, $onpage );
if (!empty($rows) && $total > 0) {
echo '<div class="b">';
echo '<img src="/images/icons/folder_star.png" class="icon" alt="" /> ';
echo '<b>' . $cats['cats_name'] . '</b></div>';
if ($select_files) {
echo '<form action="?m=load&id=' . $id . '&act=mm&' . RND . '" method="post" name="move">';
}
foreach($rows as $row) {
$filepath = ROOTPATH . DS . $config['files_folder'] . DS . $row['downs_id'] . DS . $row['downs_link'];
$filesize = !empty($row['downs_link']) ? read_file($filepath) : 0;
$file_ext = strtolower(substr(strrchr($row['downs_link'], '.'), 1));
echo '<div class="b" style="min-height: ' . $config['preview_size'] . 'px;">';
if (in_array($file_ext, array('jpg', 'jpeg', 'gif', 'png'))) {
echo '<div class="img">';
echo resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_link'], $config['preview_size'], $row['downs_title']);
echo '</div>';
}
else if (!empty($row['downs_screen'])) {
echo '<div class="img">';
echo resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_screen'], $config['preview_size'], $row['downs_title']);
echo '</div>';
}
else {
echo '<div class="img"><img src="/images/no_photos.png" align="center" alt="" /></div>';
}
echo '<img src="../images/icons/post_new.png.gif" class="" alt="" /> ';
echo '<b><a href="' . gen_uri('file', $row['downs_id'], RND) . '">' . $row['downs_title'] . '</a></b> ';
echo '<div class="right">(' . $filesize . ')</div>';
echo '<br />';
echo format_text($row['downs_text'],0,$config['substr_text'],'UTF-8') . '...<br />';
if ($select_files) echo '<input type="checkbox" name="move[]" value="' . num($row['downs_id']) . '" /> ';
echo '<a href="?m=edit_file&id=' . $row['downs_id'] . '&' . RND . '">Редактировать</a><br />';
echo '</div>';
}
echo show_pages(gen_uri('category', $id));
if ($select_files) {
echo '<div class="b">';
echo '<input type="checkbox" name="master_box" title="Отметить всё" onclick="javascript:ckeck_uncheck_all()">';
echo '<input type="submit" class="btns" value="Переместить файлы" /></form></div>';
echo <<<JSCRIPT
<script language='JavaScript' type="text/javascript">
<!--
function ckeck_uncheck_all() {
var frm = document.move;
if(frm.master_box.checked == true){ frm.master_box.checked = false; }
else{ frm.master_box.checked = true; }
for (var i=0;i<frm.elements.length;i++) {
var elmnt = frm.elements[i];
if (elmnt.type=='checkbox') {
if(frm.master_box.checked == true){ elmnt.checked=false; }
else{ elmnt.checked=true; }
}
}
}
-->
</script>
JSCRIPT;
}
}
else if (!$sub_cats) {
show_error('В данном разделе еще нет файлов!');
}
if (is_admin(array(101))) {
if (!empty($_GET['edit_dir'])) {
$form = new cmsForm('?m=cats&id=' . $id . '&rnd=' . $_SESSION['token'], 'post', ' id="form"');
$form->addCode('<b>Редактирование подкатегории ' . $cats['cats_name'] . '</b><br />');
$form->addText('Название :', 'name', $cats['cats_name']);
$form->addTextarea('Описание:', 'about', $cats['cats_about']);
$form->addTextarea('Расширения файлов (через запятую):', 'types', $cats['cats_ext']);
$form->addCheckBox('Загрузка разрешена: ', 'upload', $cats['cats_upload']);
echo $form->Submit(array('Изменить', 'Отмена'), array('edit_dir_one', 'cancel'));
unset($form);
}
else if (!empty($_GET['add_dir'])) {
$extc = !empty($cats['cats_ext']) ? $cats['cats_ext'] : '';
$form = new cmsForm('?m=cats&id=' . $id . '&rnd=' . $_SESSION['token'], 'post', ' id="form"');
$form->addCode('<b>Создание подкатегории в ' . $cats['cats_name'] . '</b><br />');
$form->addText('Название :', 'name', request('name'));
$form->addTextarea('Описание:', 'about', request('about'));
$form->addTextarea('Расширения файлов (через запятую):', 'types', request('types',$extc));
$form->addCheckBox('Загрузка разрешена: ', 'upload', request('upload',$cats['cats_upload']));
$form->addHidden('parrent', $id);
$form->addHidden('parrent_all', $cats['cats_parent_all']);
echo $form->Submit(array('Создать', 'Отмена'), array('add_dir_one', 'cancel'));
unset($form);
}
else {
echo '<div class="b">';
echo icon('add.png') . ' <a href="?m=cats&id=' . $id . '&add_dir=1#form">Создать папку</a> | ';
echo ' <a href="?m=cats&id=' . $id . '&edit_dir=1&' . RND . '">Редактировать</a> | ';
echo ' <a href="?m=new_file&id=' . $id . '&' . RND . '">Добавить файл</a>';
if ($total > 0) {
echo ' | <a href="?m=cats&act=mm&id=' . $id . '&' . RND . '">Переместить</a><br />';
}
echo '</div>';
}
}
echo '<div class="b">' . icon('return.png') . show_back_link($cats['cats_parent_all']) . '</div>';
}
else {
$inSes->addMessage('Ошибка! Данного раздела не существует!');
redirect('?m=load&' . RND);
}
break;
case 'del_cats':
if (is_admin(array(101)) && $log == $config['nickname']) {
$cats = $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_id` = ? LIMIT 1;", $id);
if (!empty($cats)) {
if (!empty($_POST['cancel'])) {
redirect('?m=load&' . RND);
}
if (!empty($_POST['del_dir'])) {
$del = intar($_POST['del']);
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (!empty($del)) {
$dels = is_array($del) ? $del : array($del);
$dell = implode(',', $dels);
if ( is_writeable( ROOTPATH . DS . $config['files_folder'] ) ) {
$files = $db->select("SELECT * FROM ?_downs WHERE `downs_cats_id` IN (" . $dell . ");");
if (!empty($files)) {
foreach($files as $file) {
deldir( ROOTPATH . DS . $config['files_folder'] . DS . $file['downs_id'], 1 );
$db->query("DELETE FROM ?_comments WHERE `comm_type` = 'load' AND `comm_post` = ?;", $file['downs_id']);
$db->query("DELETE FROM ?_downs WHERE `downs_id` = ?;", $file['downs_id']);
$db->query("DELETE FROM ?_downs_rated WHERE `rated_down` = ?;", $file['downs_id']);
}
}
$db->query("DELETE FROM ?_downs_category WHERE `cats_id` IN(" . $dell . ");");
$db->query("OPTIMIZE TABLE ?_downs, ?_downs_category, ?_downs_rated, ?_comments;");
$inSes->addmessage('Выбранные папки успешно удалены!!', 'ok');
redirect('?m=load&' . RND);
}
else $inSes->addmessage('Ошибка! Не установлены атрибуты доступа на дирекоторию с файлами!');
}
else $inSes->addmessage('Ошибка! Отсутствуют выбранные папки!');
}
else $inSes->addmessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
show_header('Удаление категории ' . $cats['cats_name']);
$dels = $db->select("SELECT * FROM ?_downs_category
WHERE (CONCAT(',',cats_parent_all,',') LIKE '%,$id,%' OR `cats_parent` = '$id')
ORDER BY `cats_order` ASC");
$form = new cmsForm('?m=del_cats&id=' . $id . '&rnd=' . $_SESSION['token'], 'post');
if (!empty($dels)) {
$code = blink('Внимание!') . ' Вместе с папкой <b>' . $cats['cats_name'] . '</b>, также будут удалены подпапки:<br />';
foreach($dels as $del) {
$form->addHidden('del[]',$del['cats_id']);
$code .= '- <a href="/load/' . gen_uri('category', $del['cats_id'], RND) . '">' . $del['cats_name'] . '</a><br />';
}
$code .= 'А также и все файлы, находящиеся в этих папках....<br />';
}
else {
$code = blink('Внимание!') . ' Вместе с папкой <b>' . $cats['cats_name'] . '</b>, ';
$code .= 'также будут удалены и все файлы, находящиеся в этой папке....<br />';
}
$form->addHidden('del[]',$cats['cats_id']);
$form->addCode($code . '<br />');
echo $form->Submit(array('Да, Удалить', 'Отмена'), array('del_dir', 'cancel'));
unset($form);
echo '<div class="b">' . blink('[!]') . ' После удаления необходимо обязательно пересчитать файлы!</div>';
}
else {
$inSes->addMessage('Ошибка! Данного раздела не существует!');
redirect('?m=load&' . RND);
}
}
else {
$inSes->addMessage('Ошибка! Удалять разделы могут только суперадмины!');
redirect('?m=load&' . RND);
}
break;
case 'new_file':
$row = $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_id` = ? LIMIT 1;", $id);
if (!empty($row)) {
if ($row['cats_upload'] == 1) {
$error = '';
$files_path = ROOTPATH . DS . $config['files_folder'];
if (!is_dir($files_path)) {
mkdir($files_path,0755);
}
if (!is_file($files_path . '/.htaccess')) {
file_put_contents($files_path . '/.htaccess', "php_flag engine offn<Files ~ ".(php|php3|php4|php5|pl|cgi|phtml)$">n Order allow,denyn Deny from alln</Files>");
@chmod($files_path . '/.htaccess', 0111);
}
$user_cats = $db->selectRow("SELECT * FROM ?_downs_category WHERE `cats_user` = ? AND `cats_parent` = '0' LIMIT 1;", $log);
if (empty($user_cats)) {
$user_cats['cats_id'] = (int) $db->query("INSERT INTO ?_downs_category SET `cats_name` = ?, `cats_user` = ?", 'Мои файлы', $log);
}
if (!empty($_POST['cancel'])) {
redirect('?m=cats&id=' . $id . '&' . RND);
}
if (!empty($_POST['upload'])) {
$name = !empty($_POST['name']) ? check($_POST['name']) : '';
$text = !empty($_POST['text']) ? check($_POST['text']) : '';
$sex = !empty($_POST['sex']) ? 1 : 0;
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (cms_strlen($name) >= 3 && cms_strlen($name) <= 100) {
if (cms_strlen($text) >= 5 && cms_strlen($text) <= 5000) {
if (is_uploaded_file($_FILES['loadfile']['tmp_name'])) {
$filename = check(strtolower($_FILES['loadfile']['name']));
$filename = tr(str_replace(' ', '', $filename), 1);
if (cms_strlen($filename) <= 50) {
if (preg_match('|^[a-z0-9_.-]+$|i', $filename)) {
$arrext = explode(',', $row['cats_ext']);
$ext = strtolower(substr(strrchr($filename, '.'), 1));
if (in_array($ext, $arrext) && $ext != 'php') {
if (!preg_match('/.(php|pl|cgi|phtml|htaccess)/i', $filename)) {
$lastid = (int) $db->query("INSERT INTO ?_downs SET `downs_title` = ?, `downs_text` = ?, `downs_user` = ?, `downs_user_cat` = ?, `downs_cats_id` = ?, `downs_time` = ?, `downs_user_sex` = ?", $name, $text, $log, $user_cats['cats_id'], $id, SITE_TIME, $sex);
if ($lastid > 0) {
if (!is_dir($files_path . DS . $lastid)) {
mkdir($files_path . DS . $lastid,0755);
}
$fpath = $files_path . DS . $lastid . DS . $filename;
move_uploaded_file($_FILES['loadfile']['tmp_name'], $fpath);
@chmod($files_path, 0644);
$db->query("UPDATE ?_downs SET `downs_link` = ? WHERE `downs_id` = ?", $filename, $lastid);
$db->query("UPDATE ?_downs_category SET `cats_count` = (`cats_count` + 1)
WHERE (`cats_id` IN(" . $row['cats_parent_all'] . ") OR `cats_id` = ?);", $id);
$inSes->addMessage('Файл успешно загружен!', 'ok');
redirect('?m=edit_file&id=' . $lastid . '&' . RND);
}
else $error = 'Произошла Ошибка! В данный момент не удалось загрузить файл!';
}
else $error = 'Ошибка! В названии файла присутствуют недопустимые расширения!';
}
else $error = 'Ошибка! Недопустимое расширение файла!';
}
else $error = 'Ошибка! В названии файла присутствуют недопустимые символы!';
}
else $error = 'Ошибка! Слишком длинное имя файла (не более 50 символов)!';
}
else $error = 'Ошибка! Не удалось загрузить файл!';
}
else $error = 'Ошибка! Слишком длинное или короткое описание к файлу (от 5 до 1000 символов)!';
}
else $error = 'Ошибка! Слишком длинный или короткий заголовок (от 3 до 100 символов)!';
}
else $error = 'Ошибка! Неверный идентификатор сессии, повторите действие!';
if (!empty($error)) $inSes->addMessage($error, 'error');
}
show_header('Добавление нового файла');
if (!empty($_GET['code'])) include( MODULES_PATH . 'code.inc.php' );
else if (!empty($_GET['smiles'])) include( MODULES_PATH . 'smiles.inc.php' );
$form = new cmsForm('?m=new_file&id=' . $id . '&rnd=' . $_SESSION['token'], 'post', 'name="form" id="add"');
$form->addCode('Категория: <a href="?m=cats&id=' . $id . '&' . RND . '"><b>' . $row['cats_name'] . '</b></a><br /><br />');
$form->addFile('Выберите файл:', 'loadfile', ' style="width:98%"');
$form->addText('Название: (Макс. 100 символов)', 'name', request('name'), ' style="width:98%"');
$form->addCode('Описание: ');
$form->addCode('<small>[<a href="?m=new_file&id=' . $id . '&smiles=1">Смайлы</a>] ');
$form->addCode('[<a href="?m=new_file&id=' . $id . '&code=1">ББ-коды</a>]</small>');
$form->addCode(' [<a href="#add" onclick="document.add.msg.rows += 5;">+</a>]');
$form->addCode(' [<a href="#add" onclick="document.add.msg.rows -= 5;">-</a>]');
$form->addTextarea('', 'text', request('text'), ' id="msg" style="width:98%;"');
$form->addCheckBox(array('', 'Файл для взрослых (18+)'), 'sex', request('sex'));
echo $form->Submit(array('Загрузить', 'Отмена'), array('upload', 'cancel'));
unset($form);
if (!empty($row['cats_ext'])) {
echo '<div class="b">' . blink('[!]');
echo ' Разрешается добавлять файлы с расширением ' . str_replace(',', ', ', $row['cats_ext']) . '<br /></div>';
}
else show_error('Ошибка! Для папки не установлены расширения допустимых файлов!');
echo '<div class="b">' . icon('return.png') . show_back_link($row['cats_parent_all']) . '</div>';
}
else {
$inSes->addMessage('Ошибка! В эту папку запрещена загрузка!');
redirect('?m=cats&id=' . $id . '&' . RND);
}
}
else {
$inSes->addMessage('Ошибка! Папка не найдена или ссылка неверна!');
redirect('?m=load&' . RND);
}
break;
case 'edit_file':
$row = $db->selectRow("SELECT ?_downs.*, ?_downs_category.*
FROM ?_downs LEFT JOIN ?_downs_category
ON ?_downs.`downs_cats_id` = ?_downs_category.`cats_id`
WHERE `downs_id` = ? LIMIT 1;", $id);
if (!empty($row)) {
if (!empty($_POST['cancel'])) {
redirect('?m=cats&id=' . $id . '&' . RND);
}
$files_path = ROOTPATH . DS . $config['files_folder'] . DS . $id . DS;
if (!empty($_GET['del_screen'])) {
if (!empty($row['downs_screen'])) {
unlink_screen($files_path, $row['downs_screen']);
$db->query("UPDATE ?_downs SET `downs_screen` = '' WHERE `downs_id` = ?", $id);
$inSes->addMessage('Скриншот успешно удалён!', 'ok');
}
else $inSes->addmessage('Ошибка! Скриншот к файлу не найден!');
redirect('?m=edit_file&id=' . $id . '&' . RND);
}
if (!empty($_POST['add_screen'])) {
if (!empty($_FILES['photo']['name'])) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (is_uploaded_file($_FILES['photo']['tmp_name'])) {
$photoname = check(strtolower($_FILES['photo']['name']));
$photoname = tr($photoname,1);
$photosize = getimagesize($_FILES['photo']['tmp_name']);
$ext = strtolower(substr(strrchr($photoname, '.'), 1));
if ($ext == 'jpg' || $ext == 'jpeg' || $ext == 'gif' || $ext == 'png') {
if ($_FILES['photo']['size'] > 0 && $_FILES['photo']['size'] <= $config['screen_file_size']) {
if ($photosize[0] <= $config['photos_max_size'] && $photosize[1] <= $config['photos_max_size'] && $photosize[0] >= 100 && $photosize[1] >= 100) {
require_once( ENGINE . '/classes/upload.class.php' );
$handle = new upload($_FILES['photo']);
if ($handle -> uploaded) {
$handle -> file_src_name = $photoname;
$handle -> image_resize = true;
$handle -> image_ratio = true;
$handle -> image_ratio_no_zoom_in = true;
$handle -> image_y = $config['photos_max_size'];
$handle -> image_x = $config['photos_max_size'];
$handle -> file_overwrite = true;
if (!empty($config['screen_watermark'])) {
$handle -> image_watermark = ROOTPATH . $config['screen_watermark'];
$handle -> image_watermark_position = 'BR';
}
if (!empty($row['downs_screen'])) {
unlink_screen($files_path, $row['downs_screen']);
$db->query("UPDATE ?_downs SET `downs_screen` = '' WHERE `downs_id` = ?", $id);
}
$handle -> process( $files_path );
if ($handle -> processed) {
$db->query("UPDATE ?_downs SET `downs_screen` = ?
WHERE `downs_id` = ?", $handle -> file_dst_name, $id);
$handle -> clean();
$inSes->addMessage('Скриншот успешно загружен!', 'ok');
redirect('?m=edit_file&id=' . $id . '&' . RND);
}
else $error = 'Произошла Ошибка! ' . $handle -> error;
}
else $error = 'Ошибка! Не удалось загрузить изображение!';
}
else $error = 'Ошибка! Размер изображение должен быть от 100 до ' . $config['photos_max_size'] . ' px';
}
else $error = 'Ошибка! Вес изображения должен быть не более ' . size($config['screen_file_size']);
}
else $error = 'Ошибка! Недопустимое расширение (Разрешено jpg, jpeg, gif и png)!';
}
else $error = 'Ошибка! Не удалось загрузить изображение!';
}
else $error = 'Ошибка! Неверный идентификатор сессии, повторите действие!';
}
else $error = 'Ошибка! Вы не выбрали изображение!';
if (!empty($error)) $inSes->addMessage($error, 'error');
}
show_header('Редактирование файла');
echo '<div class="b">' . icon('edit.png', 'icons') . '<a href="../load/' . gen_uri('file', $id, RND) . '">Обзор файла</a>';
if (empty($row['downs_link'])) {
echo '</div>';
$form = new cmsForm('?m=new_file&id=' . $id . '&rnd=' . $_SESSION['token'], 'post', 'name="form" id="add"');
$form->addCode('<b>Произошла Ошибка! Файл не найден. Попробуйте загрузить его снова..</b><br />');
$form->addCode('Категория: <a href="?m=cats&id=' . $id . '&' . RND . '"><b>' . $row['cats_name'] . '</b></a><br /><br />');
$form->addFile('Выберите файл:', 'loadfile', ' style="width:98%"');
$form->addHidden('name', $row['downs_title']);
$form->addHidden('text', $row['downs_text']);
$form->addHidden('sex', $row['downs_user_sex']);
echo $form->Submit(array('Загрузить', 'Отмена'), array('upload', 'cancel'));
unset($form);
/* Удаляем файл */
$db->query("UPDATE ?_downs_category SET `cats_count` = (`cats_count` - 1)
WHERE `cats_id` IN(" . $row['cats_parent_all'] . ");");
$db->query("DELETE FROM ?_downs WHERE `downs_id` = ?", $id);
$db->query("OPTIMIZE TABLE ?_downs, ?_downs_category;");
deldir( ROOTPATH . DS . $config['files_folder'] . DS . $id, 1 );
}
else {
$filepath = ROOTPATH . DS . $config['files_folder'] . DS . $row['downs_id'] . DS . $row['downs_link'];
$filesize = !empty($row['downs_link']) ? read_file($filepath) : 0;
$file_ext = strtolower(substr(strrchr($row['downs_link'], '.'), 1));
echo ' / <b>' . $row['downs_link'] . '</b> (' . $filesize . ') ';
echo '(<a href="?m=del_file&id=' . $id . '&' . RND . '">Удалить</a>)<br /></div>';
if ($file_ext != 'jpg' && $file_ext != 'jpeg' && $file_ext != 'gif' && $file_ext != 'png') {
if (empty($row['downs_screen'])) {
$form = new cmsForm('?m=edit_file&id=' . $id . '&rnd=' . $_SESSION['token'], 'post');
$form->addCode('<b>Загрузка скриншота</b><br />');
$form->addFile('Прикрепить скрин (jpg,jpeg,gif,png):', 'photo', ' accept="image/jpeg,image/gif,image/png"');
echo $form->Submit('Загрузить', 'add_screen');
unset($form);
}
else {
echo '<div class="b" style="min-height: ' . $config['preview_size'] . ';">';
echo '<table><tr><td>';
echo '<div class="img">' . resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_screen'], $config['preview_size'], $row['downs_title']) . '</div></td>';
echo '<td valign="top"> <b>' . $row['downs_screen'] . '</b> (' . read_file( ROOTPATH . DS . $config['files_folder'] . DS . $row['downs_id'] . DS . $row['downs_screen']) . ') (<a href="?m=edit_file&del_screen=1&id=' . $id . '&' . RND . '">Удалить</a>)<br />';
echo '</td></tr></table></div>';
}
}
}
if (!empty($_GET['code'])) include( MODULES_PATH . 'code.inc.php' );
else if (!empty($_GET['smiles'])) include( MODULES_PATH . 'smiles.inc.php' );
$form = new cmsForm('?m=edit_file&id=' . $id . '&rnd=' . $_SESSION['token'], 'post', 'name="form" id="edit"');
$form->addCode('<b>Редактирование</b><br />');
$form->addText('Название: (Макс. 100 символов)', 'name', $row['downs_title'], ' style="width:98%"');
$form->addCode('Описание: ');
$form->addCode('<small>[<a href="?m=edit_file&id=' . $id . '&smiles=1">Смайлы</a>] ');
$form->addCode('[<a href="?m=edit_file&id=' . $id . '&code=1">ББ-коды</a>]</small>');
$form->addCode(' [<a href="#edit" onclick="document.edit.msg.rows += 5;">+</a>]');
$form->addCode(' [<a href="#edit" onclick="document.edit.msg.rows -= 5;">-</a>]');
$form->addTextarea('', 'text', $row['downs_text'], ' id="msg" style="width:98%;"');
$form->addCheckBox(array('', 'Файл для взрослых <span style="color:red;">(18+)</span>'), 'sex', $row['downs_user_sex']);
echo $form->Submit(array('Изменить', 'Отмена'), array('submit', 'cancel'));
unset($form);
echo '<div class="b">' . icon('return.png') . show_back_link($row['cats_parent_all']) . '</div>';
}
else {
$inSes->addMessage('Ошибка! Данного файла не существует!');
redirect('?m=load&' . RND);
}
break;
case 'del_file':
$row = $db->selectRow("SELECT * FROM ?_downs WHERE `downs_id` = ? LIMIT 1;", $id);
if (!empty($row)) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if ( is_writeable( ROOTPATH . DS . $config['files_folder'] . DS . $id ) ) {
if (!empty($row['cats_parent_all'])) {
$db->query("UPDATE ?_downs_category SET `cats_count` = (`cats_count` - 1)
WHERE `cats_id` IN(" . $row['cats_parent_all'] . ");");
}
else {
$db->query("UPDATE ?_downs_category SET `cats_count` = (`cats_count` - 1)
WHERE `cats_id` = ?;", $id);
}
$db->query("DELETE FROM ?_downs WHERE `downs_id` = ?", $id);
$db->query("OPTIMIZE TABLE ?_downs, ?_downs_category;");
deldir( ROOTPATH . DS . $config['files_folder'] . DS . $id, 1 );
$inSes->addMessage('Файл успешно удален!', 'ok');
}
else $inSes->addmessage('Ошибка! Не установлены атрибуты доступа на дирекоторию с файлами!');
}
else $inSes->addmessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
else $inSes->addMessage('Ошибка! Данного файла не существует!');
redirect('?m=load&' . RND);
break;
case 'del_files':
if (!empty($_POST['del'])) {
$del = intar($_POST['del']);
if (is_admin(array(101)) && $log == $config['nickname']) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (!empty($del)) {
$dels = is_array($del) ? $del : array($del);
$dell = implode(',', $dels);
if ( is_writeable( ROOTPATH . DS . $config['files_folder'] ) ) {
$row = $db->selectRow("SELECT * FROM ?_downs WHERE `downs_id` = ? LIMIT 1;", $dels[0]);
$db->query("DELETE FROM ?_comments WHERE `comm_type` = 'load' AND `comm_post` IN (" . $dell . ");");
$deldowns = (int) $db->query("DELETE FROM ?_downs WHERE `downs_id` IN (" . $dell . ");");
// Обновление счетчиков
$db->query("UPDATE ?_downs_category SET `cats_count` = (`cats_count` - ?)
WHERE `cats_id` IN (" . $row['cats_parent_all'] . ");", $deldowns);
foreach ($dels as $delid) {
deldir( ROOTPATH . DS . $config['files_folder'] . DS . $delid, 1 );
}
$inSes->addmessage('Выбранные файлы успешно удалены!', 'ok');
}
else $inSes->addmessage('Ошибка! Не установлены атрибуты доступа на дирекоторию с файлами!');
}
else $inSes->addmessage('Ошибка! Отсутствуют выбранные файлы!');
}
else $inSes->addmessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
else $inSes->addmessage('Ошибка! Удалять файлы могут только суперадмины!');
}
else $inSes->addmessage('Ошибка! Отсутствуют выбранные файлы!');
redirect('?m=load&' . RND);
break;
case 'move_files':
if (!empty($id)) {
$row = '';
$row = $db->selectRow("SELECT ?_downs.*, ?_downs_category.*
FROM ?_downs LEFT JOIN ?_downs_category
ON ?_downs.`downs_cats_id` = ?_downs_category.`cats_id`
WHERE `downs_id` = ? LIMIT 1;", $id);
if (!empty($row)) {
show_header('Загрузки - ' . $cats['cats_name']);
echo '<div class="b">' . show_back_link($row['cats_parent_all'], $uz) . '</div>';
}
else {
$inSes->addMessage('Ошибка! Категория не найдена или ссылка неверна!');
gen_red('files', '', RND);
}
}
else {
$cats['cats_name'] = 'Мои файлы';
show_header($cats['cats_name']);
}
$subs = $db->select("SELECT * FROM ?_downs_category WHERE `cats_parent` = ?;", $id);
if (!empty($subs) && count($subs) > 0 && $page == 1) {
foreach($subs as $sub) {
echo '<div class="b"><img src="/images/icons/folder.png" class="icon" alt="" /> ';
echo '<a href="' . gen_uri('files', $sub['cats_id']) . '">' . $sub['cats_name'] . '</a></b> (' . $sub['cats_count'] . ')</div>';
}
}
else show_error('У Вас не создано папок, перемещение не');
break;
endswitch;
echo '<div class="b">' . icon('return.png') . ' <a href="?' . RND . '">В админку</a><br /></div>';
show_footer();
}
else {
redirect('/?' . RND);
}
?>