Вход Регистрация
Файл: CMS/comm/comm_file.php
Строк: 306
<?php

if (!defined('CMS')) { die('Access Denied!'); }

$data = array();
$data = $db->selectRow("SELECT ?_comm_comm.*, ?_comm_category.*
                       FROM ?_comm_comm LEFT JOIN ?_comm_category 
                       ON ?_comm_comm.`comm_cats_id` = ?_comm_category.`cats_id` 
                       WHERE `comm_url` = ? LIMIT 1;"
, $soo);


if (empty(
$data) || !is_array($data)) {

    
$inSes->addMessage('Ошибка! Сообщество не найдено или ссылка неверна!');
    
gen_red('index', '', RND);
}

if (empty(
$data['comm_obmen'])) {

    
$inSes->addMessage('Ошибка! Обменник не найден или ссылка неверна!');
    
gen_red('index', '', RND);
}

$users      = array();
$arr_admins = @explode(',', $data['comm_admins']);

if (
$is_logged) {

    
$users = $db->selectRow("SELECT * FROM ?_comm_users WHERE `cu_comm` = ? AND `cu_user` = ? LIMIT 1;", $data['comm_id'], $log);

    if (
$data['comm_user'] == $log) {

        
$is_admin_soo = true;
        
$is_moder_soo = true;
    }

    if (
in_array($log, $arr_admins) && $users['cu_admin'] == 1) {

        
$is_moder_soo = true;
    }
}

if (
$data['comm_status'] == 1 && empty($users)) {

    
$inSes->addMessage('Файлы доступны только участникам сообщества!');
    
gen_red('index', '', RND);
}

$prs = parse_url($_SERVER['REQUEST_URI']);
$row = array();
$row = $db->selectRow("SELECT `f`.*, `d`.*, `c`.*, `u`.`users_gender`,
                      (SELECT COUNT(1) FROM ?_users_bookmarks WHERE `book_path` = ?) AS `bookmarks`
                       FROM ?_comm_files `f`
                       LEFT JOIN ?_downs `d` ON `f`.`files_downs` = `d`.`downs_id`
                       LEFT JOIN ?_comm_files_category `c` ON `f`.`files_cats_id` = `c`.`cats_id`
                       LEFT JOIN ?_users `u` ON `d`.`downs_user` = `u`.`users_login`
                       WHERE `f`.`files_comm` = ? 
                       AND `f`.`files_id` = ?"
, $prs['path'], $data['comm_id'], $id);


if (empty(
$row) || !is_array($row)) {

    
$inSes->addMessage('Ошибка! Файл не найден или ссылка неверна!');
    
gen_red('files', '', RND);
}

# Действия создателя сообщества
if ($is_admin_soo) {

    if (!empty(
$_POST['move_file'])) {

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            
$new_cat = !empty($_POST['new_cat'])  ? num($_POST['new_cat']) : 0;

            if (
$new_cat > 0) {

                
$is_cat = (int) $db->selectCell("SELECT `cats_id` FROM ?_comm_files_category
                                                 WHERE `cats_comm` = ? AND `cats_id` = ?"
, $data['comm_id'], $new_cat);

                if (
$is_cat > 0) {

                    
$db->query("UPDATE ?_comm_files SET `files_cats_id` = ?
                                WHERE `files_comm` = ? AND `files_id` = ?"
, $new_cat, $data['comm_id'], $id);

                    
$db->query("UPDATE ?_comm_files_category SET `cats_count` = (SELECT COUNT(*) FROM ?_comm_files WHERE ?_comm_files_category.`cats_id` = ?_comm_files.`files_cats_id` AND ?_comm_files.`files_comm` = ?);", $data['comm_id']);


                    
$inSes->addMessage('Файл успешно перемещён!', 'ok');

                    
gen_red('files', $new_cat, RND);
                }
                else 
$inSes->addMessage('Ошибка! Запрашиваемая категория не найдена!');
            }
            else {

                
$db->query("UPDATE ?_comm_files SET `files_cats_id` = '0'
                            WHERE `files_comm` = ? AND `files_id` = ?"
, $data['comm_id'], $id);

                
$db->query("UPDATE ?_comm_files_category SET `cats_count` = (SELECT COUNT(*) FROM ?_comm_files WHERE ?_comm_files_category.`cats_id` = ?_comm_files.`files_cats_id` AND ?_comm_files.`files_comm` = ?);", $data['comm_id']);

                
$inSes->addMessage('Файл успешно перемещён!', 'ok');

                
gen_red('files', '', RND);
            }
        }
        else 
$inSes->addMessage('Неверный идентификатор сессии, повторите действие!');
    }

    if (!empty(
$_GET['del_file'])) {

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            
$db->query("DELETE FROM ?_comm_files WHERE `files_comm` = ? AND `files_id` = ?", $data['comm_id'], $id);

            
$db->query("UPDATE ?_comm_files_category SET `cats_count` = (SELECT COUNT(*) FROM ?_comm_files WHERE ?_comm_files_category.`cats_id` = ?_comm_files.`files_cats_id` AND ?_comm_files.`files_comm` = ?);", $data['comm_id']);

            
$inSes->addMessage('Файл успешно удалён!', 'ok');

            
gen_red('files', '', RND);
        }
        else 
$inSes->addMessage('Неверный идентификатор сессии, повторите действие!');
    }
}

# Удаление комментов
if ($is_moder_soo) {

    if (!empty(
$_POST['del'])) {

        
$del = intar($_POST['del']);

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            if (!empty(
$del)) {

                
$del = is_array($del) ? $del : array($del);

                
$del = implode(',', $del);

                
$db->query("DELETE FROM ?_comments WHERE `comm_id` IN(" . $del . ") AND `comm_type` = 'soo_files' AND `comm_post` = ?", $id);

                
$db->query("OPTIMIZE TABLE ?_comments;");

                
$inSes->addMessage('Выбранные комментарии успешно удалены!', 'ok');
            }
            else 
$inSes->addMessage('Ошибка! Отстутствуют выбранные комментарии для удаления!');
        }
        else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');

        
gen_red('file', $id, RND);
    }
}

# Добавление комментария
if (!empty($_POST['submit'])) {

    
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';

    if (
$is_logged) {

      if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

        if (
cms_strlen(trim($msg)) >= 5 && cms_strlen($msg) < 1000) {

          if (
is_quarantine($log)) {

            if (
is_flood($log)) {

                
$msg  = antimat($msg);
                
$msg  = smiles($msg);
                
$date = date('Y-m-d H:i:s', SITE_TIME);

                
$db->query("INSERT INTO ?_comments SET `comm_post` = ?, `comm_text` = ?, `comm_author` = ?, `comm_type` = 'soo_files', `comm_date` = ?, `comm_ip` = ?, `comm_ua` = ?", $id, $msg, $log, $date, $ip, $brow);

                
//$db->query("UPDATE ?_downs SET `downs_comments` = (`downs_comments` + 1) WHERE `downs_id` = ?;", $id);

                
$db->query("UPDATE ?_users SET `users_allcomments` = (`users_allcomments` + 1), `users_point` = (`users_point` + ?), `users_money` = (`users_money` + ?) WHERE `users_login` = ?", $config['comm_add_point'], $config['comm_add_money'], $log);

                
$inSes->addMessage('Ваш комментарий успешно добавлен!', 'ok');

                
gen_red('file', $id, RND);

            }
            else 
$inSes->addMessage('Антифлуд! Разрешается добавлять комментарии раз в ' . flood_period() . ' секунд!');
          }
          else 
$inSes->addMessage('Карантин! Вы не можете писать в течении ' . round($config['karantin'] / 3600) . ' часов!');
        }
        else 
$inSes->addMessage('Ошибка! Слишком длинный или короткий комментарий!');
      }
      else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
    }
    else 
$inSes->addMessage('Ошибка! Комментировать могут только зарегистрированные пользователи сайта!');
}

show_header($row['downs_title'], $row['downs_text'], $row['downs_text']);

if (!empty(
$row['downs_user_sex'])) echo show_xxx_form($row['cats_id']);

$filepath = ROOTPATH . DS . $config['files_folder'] . DS . $row['downs_id'] . DS;

$is_java = false; $jad_url = '';

if (!
is_file($filepath . $row['downs_link'])) {

    
show_error('Ошибка! Файл не найден или ссылка неверна!');
}
else {

    
$file_url = $config['site_url'] . DS . $config['files_folder'] . DS . $row['downs_id'] . DS . $row['downs_link'];
    
$filesize = read_file($filepath . $row['downs_link']);
    
$file_ext = strtolower(substr(strrchr($row['downs_link'], '.'), 1));

    if (
in_array($file_ext, array('jpg', 'jpeg', 'gif', 'png'))) {

        echo 
'<div class="b"><a href="' . $file_url . '">';
        echo 
resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_link'], $config['preview_size'], $row['downs_title']) . '</a><br /></div>';
    }
    else if (
$file_ext == 'flv' || $file_ext == 'mp4') {

        echo 
video_player($file_url);
    }
    else {

        if (!empty(
$row['downs_screen'])) {

            echo 
'<div class="b" style="min-height: ' . $config['preview_size'] . ';"><table><tr><td>';
            echo 
'<div class="img"><a href="' . DS . $config['files_folder'] . DS . $row['downs_id'] . DS . $row['downs_screen'] . '">';
            echo 
resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, $row['downs_screen'], $config['preview_size'], $row['downs_title']) . '</a></div></td>';
        }
        else {

            echo 
'<div class="b" style="min-height: ' . $config['preview_size'] . ';"><table><tr><td>';
            echo 
'<div class="img"><img src="/images/no_photos.png" align="center" alt="" /></div></td>';
        }
        echo 
'</tr></table></div>';

        if (
$file_ext == 'jar') {

            
$is_java = (bool) get_jad($filepath . $row['downs_link'], $config['site_url'] . $file_url);
            
$jad_url = $config['site_url'] . str_ireplace('.jar', '.jad', $file_url);
        }
    }

    if (!empty(
$row['downs_text'])) echo '<div class="b">' . nl2br(bb_code($row['downs_text']));
    else echo 
'<div class="b">Описание к файлу не найдено!';
    echo 
'<br /></div>';

    if (!empty(
$config['allow_downs_nav'])) {

        echo 
'<div class="c">';

        
$next = $db->selectRow("SELECT `downs_id` FROM ?_downs 
                                WHERE `downs_user` = ? AND `downs_id` > ? ORDER BY `downs_id` LIMIT 1"
, $uz, $row['downs_id']);

        
$prev = $db->selectRow("SELECT `downs_id` FROM ?_downs 
                                WHERE `downs_user` = ? AND `downs_id` < ? ORDER BY `downs_id` DESC LIMIT 1"
, $uz, $row['downs_id']);

        if (!empty(
$prev['downs_id'])) {

            echo 
'<a href="' . gen_uri('file', $prev['downs_id'], RND) . '">&lt;&lt; Назад</a>';
        }
        else echo 
'&lt;&lt; Назад';

        echo 
' | ';

        if (!empty(
$next['downs_id'])) {

            echo 
'<a href="' . gen_uri('file', $next['downs_id'], RND) . '">Далее &gt;&gt;</a>';
        }
        else echo 
'Далее &gt;&gt;';

        echo 
'</div>';
    }

    if (
$file_ext == 'mp3') {

        
$TaggingFormat = 'UTF-8';

        require_once( 
ENGINE . '/getid3/getid3.php' );
            
        
$getID3 = new getID3; $v = array();
        
$getID3->setOption(array('encoding'=>$TaggingFormat));

        
$info = $getID3->analyze($filepath . $row['downs_link']);

        if (!empty(
$info['tags']['id3v1']['title'][0]) || !empty($info['tags']['id3v2']['title'][0])) {

            
$v[] = !empty($info['tags']['id3v1']['title'][0]) ? '- Название: ' . check($info['tags']['id3v1']['title'][0]) : 
                                                                
'- Название: ' . check($info['tags']['id3v2']['title'][0]);
        }
        if (!empty(
$info['tags']['id3v1']['artist'][0]) || !empty($info['tags']['id3v2']['artist'][0])) {

            
$v[] = !empty($info['tags']['id3v1']['artist'][0]) ? '- Исполнитель: ' . check($info['tags']['id3v1']['artist'][0]) : 
                                                                 
'- Исполнитель: ' . check($info['tags']['id3v2']['artist'][0]);
        }
        if (!empty(
$info['tags']['id3v1']['album'][0]) || !empty($info['tags']['id3v2']['album'][0])) {

            
$v[] = !empty($info['tags']['id3v1']['album'][0]) ? '- Альбом: ' . check($info['tags']['id3v1']['album'][0]) : 
                                                                
'- Альбом: ' . check($info['tags']['id3v2']['album'][0]);
        }
        if (!empty(
$info['tags']['id3v1']['year'][0]) || !empty($info['tags']['id3v2']['year'][0])) {

            
$v[] = !empty($info['tags']['id3v1']['year'][0]) ? '- Год: ' . check($info['tags']['id3v1']['year'][0]) : 
                                                               
'- Год: ' . check($info['tags']['id3v2']['year'][0]);
        }
        if (!empty(
$info['tags']['id3v1']['genre'][0]) || !empty($info['tags']['id3v2']['genre'][0])) {

             
$v[] = !empty($info['tags']['id3v1']['genre'][0]) ? '- Жандр: ' . check($info['tags']['id3v1']['genre'][0]) : 
                                                                 
'- Жандр: ' . check($info['tags']['id3v2']['genre'][0]);
        }
        
$v[] = !empty($info['bitrate']) ? '- Битрейт: ' . substr($info['bitrate'],0,3) : '-';
        
$v[] = !empty($info['playtime_string']) ? '- Длина: ' . $info['playtime_string'] : '-';

        if (
count($v) > 0) echo '<div class="b"><b>Инфа о треке</b><br />' . implode('<br />',$v) . '</div>';
        echo 
mp3_player($file_url);

    }
    echo 
'<div class="b">';
    echo 
icon('dload.png', 'icons');
    echo 
'<a href="/load/' . gen_uri('download', $row['downs_id'], RND) . '">Скачать</a> (' . $filesize . ')<br />';

    if (
$is_java && $jad_url) {

        echo 
icon('dload.png', 'icons');
        echo 
'<a href="' . $jad_url . '">Скачать jad-файл</a><br />';
    }
    else if (
$file_ext == 'txt') {

        echo 
icon('post_new.png', 'icons');
        echo 
'<a href="' . gen_uri('read', $id, RND) . '">Читать онлайн</a><br />';
    }

    echo 
'</div>';
    echo 
'<div class="b">';
    echo 
'<b>Закачек:</b> ' . num($row['downs_load']) . '<br />';
    echo 
'Файл добавлен обитателем: ' . user_visit_icon($row['downs_user'], $row['users_gender']);
    echo 
' ' . users_anketa($row['downs_user']) . ' (' . get_date($row['downs_time']) . ')<br />';

    if (!empty(
$row['cats_id']) && !empty($row['cats_name'])) {

        echo 
'В папку: ' . icon('folder.png', 'icons');
        echo 
'<a href="' . gen_uri('files', $row['cats_id'], RND) . '">' . $row['cats_name'] . '</a></div>';
    }
    else {

        echo 
icon('folder.png', 'icons');
        echo 
'<a href="' . gen_uri('files', '', RND) . '">Файлы сообщества</a></div>';
    }

    if (
$is_admin_soo) {

        if (!empty(
$_GET['move'])) {

            
$arr_cat    = array();
            
$arr_cats   = $db->select("SELECT * FROM ?_comm_files_category WHERE `cats_comm` = ?", $data['comm_id']);
            
$arr_cat[0] = 'Корневая';

            if (!empty(
$arr_cats)) {

                foreach(
$arr_cats as $cat) {
                    
$arr_cat[$cat['cats_id']] = $cat['cats_name'];
                }
            }
            if (!empty(
$arr_cat[$row['files_cats_id']])) unset($arr_cat[$row['files_cats_id']]);
            
$form = new cmsForm(gen_uri('file', $id, 'rnd=' . $_SESSION['token']), 'post', ' id="move"');
            
$form->addSelect('<b>Выберите папку:</b>', 'new_cat', '', $arr_cat);
            echo 
$form->Submit(array('Переместить','Отмена'), array('move_file','cancel'));
            unset(
$form);
            
        }
        else {

            echo 
'<div class="b">';
            echo 
' [<a href="' . gen_uri('file', $id, 'move=1&amp;' . RND . '#move') . '">Переместить</a> | ';
            echo 
' [<a href="' . gen_uri('file', $id, 'del_file=1&amp;rnd=' . $_SESSION['token']) . '">Удалить</a>]</div>';
        }
    }

    echo 
show_bookmarks($row['downs_title'], '', $row['bookmarks']);
    echo 
'<div class="b">' . icon('email_send.png', 'icons');
    echo 
'<a href="' . gen_uri('send_link', $row['downs_id'], RND) . '">Отправить другу</a><br />';
    echo 
'</div>';

    
$comm_type = 'soo_files';
    
$comm_url = 'file'; 
    
// Подключили комменты
    
include( dirname(__FILE__) . '/comm_comments.php' );

    if (
$is_logged) {

        
$form = new cmsForm(gen_uri('file', $row['files_id'], 'rnd=' . $_SESSION['token']), 'post');
        
$form->addTextarea('Напишите комментарий:', 'text', request('text'));
        echo 
$form->Submit('Добавить', 'submit');
        unset(
$form);
    }
    else {

        
show_login('Вы не авторизованы, для комментирования, необходимо');
    }
}

    echo 
'<div class="b">' . icon('return.png');
    echo 
'<a href="../' . gen_uri('index', '', RND) . '">Сообщества</a> | ';
    echo 
'<a href="../' . gen_uri('cats', $data['cats_id'], RND) . '">' . $data['cats_name'] . '</a> | ';
    echo 
'<a href="' . gen_uri('index', '', RND) . '">' . $data['comm_name'] . '</a> | ';
    echo 
'<a href="' . gen_uri('files', '', RND) . '">Файлы</a>';

    if (!empty(
$row['cats_id']) && !empty($row['cats_name'])) {

        echo 
' | <a href="' . gen_uri('files', $id, 'cat=' . $row['cats_id'] . '&amp;' . RND) . '">' . $row['cats_name'] . '</a>';
    }
    echo 
'</div>';

?>
Онлайн: 0
Реклама