Файл: CMS/core/modules/users_file.php
Строк: 333
<?php
if (!defined('CMS')) { die('Access Denied!'); }
include( dirname(__FILE__) . '/users_files.inc.php' );
if ($id < 1) {
$inSes->addMessage('Ошибка! Файл не найден или ссылка неверна!');
gen_red('files', '', RND);
}
$prs = parse_url($_SERVER['REQUEST_URI']);
$prs['path'] = '/load/' . basename($prs['path']);
$row = array();
$row = $db->selectRow("SELECT ?_downs.*, ?_downs_category.*,
(SELECT COUNT(1) FROM ?_users_bookmarks WHERE `book_path` = ?) AS `bookmarks`
FROM ?_downs LEFT JOIN ?_downs_category
ON ?_downs.`downs_user_cat` = ?_downs_category.`cats_id`
WHERE `downs_id` = ? LIMIT 1;", $prs['path'], $id);
if (empty($row) || !is_array($row)) {
$inSes->addMessage('Ошибка! Файл не найден или ссылка неверна!');
gen_red('files', '', RND);
}
if ($is_logged && $row['downs_user_comm'] == 1) { // Комм-ты только для друзей
$arr_friends = $db->selectCol("SELECT `friends_login` FROM ?_friends WHERE `users_login` = ?", $data['users_login']);
}
else $arr_friends = array();
# Добавление комментария
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 (
($row['downs_user_comm'] == 2 && $row['downs_user'] == $log) ||
($row['downs_user_comm'] == 1 && in_array($log,$arr_friends) ||
($row['downs_user_comm'] == 0))) {
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` = 'load', `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('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
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']);
if ($row['cats_user_type'] == 3 && !empty($row['cats_user_pass'])) {
show_auth_form($row['cats_id'], $row['cats_user_pass']);
}
else if ($row['cats_user_type'] == 2 && $row['cats_user'] <> $log) {
if ($is_logged) { // Убрали запрос на проверку друзей
$arr_friends = $db->selectCol("SELECT `friends_login` FROM ?_friends WHERE `users_login` = ?", $row['cats_user']);
if (!in_array($log,$arr_friends)) {
show_error('Файл доступен только для друзей пользователя ' . users_anketa($row['cats_user']));
show_footer();
exit();
}
}
else {
show_error('Файл доступен только для друзей пользователя ' . users_anketa($row['cats_user']));
show_footer();
exit();
}
}
else if ($row['cats_user_type'] == 1 && $row['cats_user'] <> $log) {
show_error('Файл доступен только для пользователя ' . users_anketa($row['cats_user']));
show_footer();
exit();
}
$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="' . $config['site_url'] . 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 {
if ($file_ext == '3gp') {
$gp = screen_3gp($filepath . $row['downs_link'], 50, $filepath . 'screen.gif');
if ($gp == 'ok') {
$db->query("UPDATE ?_downs SET `downs_screen` = ?
WHERE `downs_user` = ? AND `downs_id` = ?", 'screen.gif', $row['cats_user'], $id);
echo '<div class="b" style="min-height: ' . $config['preview_size'] . ';"><table><tr><td>';
echo '<div class="img"><a href="' . $config['site_url'] . DS . $config['files_folder'] . DS . $row['downs_id'] . DS . 'screen.gif">';
echo resize_screen($config['files_folder'] . DS . $row['downs_id'] . DS, 'screen.gif', $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="' . $config['site_url'] . '/images/no_photos.png" align="center" alt="" /></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>';
}
}
if ($is_logged && $log == $row['downs_user']) {
echo '<td valign="top"><a href="' . gen_uri('add_screen', $row['downs_id'], RND) . '">Изменить</a><br /></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", $data['users_login'], $row['downs_id']);
$prev = $db->selectRow("SELECT `downs_id` FROM ?_downs
WHERE `downs_user` = ? AND `downs_id` < ? ORDER BY `downs_id` DESC LIMIT 1", $data['users_login'], $row['downs_id']);
if (!empty($prev['downs_id'])) {
echo '<a href="' . gen_uri('file', $prev['downs_id'], RND) . '"><< Назад</a>';
}
else echo '<< Назад';
echo ' | ';
if (!empty($next['downs_id'])) {
echo '<a href="' . gen_uri('file', $next['downs_id'], RND) . '">Далее >></a>';
}
else echo 'Далее >>';
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="' . 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 />';
}
else if ($file_ext == 'zip') {
echo icon('post_new.png', 'icons');
echo '<a href="' . gen_uri('zip', $id, RND) . '">Просмотр архива</a><br />';
}
//else if ($file_ext == 'rar' && function_exists('rar_open')) {
//echo icon('post_new.png', 'icons');
//echo '<a href="' . gen_uri('rar', $id, RND) . '">Просмотр архива</a><br />';
//}
echo '</div>';
echo '<div class="b">';
echo '<b>Закачек:</b> ' . num($row['downs_load']) . '<br />';
echo 'Файл добавлен обитателем: ' . user_visit_icon($data['users_login'], $data['users_gender']);
echo ' ' . users_anketa($data['users_login']) . ' (' . get_date($row['downs_time']) . ')<br />';
echo 'В папку: <img src="/images/icons/folder.png" class="icon" alt="" /> ';
echo '<a href="' . gen_uri('files', $row['cats_id'], RND) . '">' . $row['cats_name'] . '</a>';
if ($is_logged && $log == $row['downs_user']) {
echo ' [<a href="' . gen_uri('files', '', 'act=mm&move=' . $row['downs_id'] . '&' . RND) . '">Переместить</a>]<br /></div>';
echo '<div class="b">' . icon('folder_edit.png', 'icons');
echo '<a href="' . gen_uri('edit_file', $row['downs_id'], RND) . '">Редактировать</a><br />';
if (empty($row['downs_cats_id'])) {
echo icon('arrow-circle-315.png', 'icons');
echo '<a href="' . gen_uri('in_zone', $row['downs_id'], RND) . '">В зону</a><br />';
}
echo '</div>';
}
else {
echo '<br /></div>' . 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 = 'load';
$comm_url = 'file';
// Подключили комменты
include( MODULES_PATH . 'comments.inc.php' );
if ($is_logged) {
//$comm_types = array('0' => 'Все', '1' => 'Только друзья', '2' => 'Только я');
if ($row['downs_user_comm'] == 2 && $row['downs_user'] <> $log) {
show_error('Комментирование только для владельца!');
}
else if ($row['downs_user_comm'] == 1) {
if ((!empty($arr_friends) && in_array($log,$arr_friends)) || $row['downs_user'] == $log) {
$form = new cmsForm(gen_uri('file', $id, 'rnd=' . $_SESSION['token']), 'post');
$form->addTextarea('Напишите комментарий:', 'text', request('text'));
echo $form->Submit('Добавить', 'submit');
unset($form);
}
else {
show_error('Комментирование только для друзей владельца!');
}
}
else {
$form = new cmsForm(gen_uri('file', $id, 'rnd=' . $_SESSION['token']), 'post');
$form->addTextarea('Напишите комментарий:', 'text', request('text'));
echo $form->Submit('Добавить', 'submit');
unset($form);
}
}
else {
show_login('Вы не авторизованы, для комментирования, необходимо');
}
}
echo '<div class="b">' . show_back_link($row['cats_parent_all'] . ',' . $row['cats_id'], $data['users_login']) . '</div>';
?>