View file ä󿪫¬/modules/groups/news/files/file_mus_edit.php

File size: 19.68Kb
<?php
/* Mixanza Production
 * Дата последнего редактирования 21.05.2018
 * Модифицировал Mixanza
 */

foreach (array('start', 'sess', 'settings', 'db_connect', 'ipua', 'fnc') as $inc) {
    require_once "../../../../sys/inc/$inc.php";
}








include_once H . 'sys/inc/user.php';
only_reg();

$set['title'] = 'Прикрепить музыку';
require_once H . 'sys/inc/thead.php';

aut();
err();

if ($df['vigruzka'] == 0 || access('adm_mysql')){


if ($pdo->query(("SELECT COUNT(*) FROM `disk` WHERE `id_user` = '".$user['id']."' AND `status` = '1' LIMIT 1"), 0)->fetchColumn()){
$disk = 62914560;
}else{
if ($user['rating'] >= 0 && $user['rating'] <= 19){
$disk = 5242880;
}

if ($user['rating'] >= 20 && $user['rating'] <= 49){
$disk = 20971520;
}

if ($user['rating'] >= 50 && $user['rating'] <= 119){
$disk = 31457280;
}

if ($user['rating'] >= 120 && $user['rating'] <= 999999999999999999999){
$disk = 31457280;
}
}

?>
<style>
.progress-bar {
 background-color: #555A5E;
 height: 34px;
 padding: 5px;
 width: 100%;
 margin-top: 3px;
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;
 border-radius: 5px;
 -moz-box-shadow: 0 1px 5px #000 inset, 0 1px 0 #444;
 -webkit-box-shadow: 0 1px 5px #000 inset, 0 1px 0 #444;
 box-shadow: 0 1px 5px #000 inset, 0 1px 0 #444;
}

.progress-bar span {
 display: inline-block;
 height: 25px;
 width: 200px;
 -moz-border-radius: 3px;
 -webkit-border-radius: 3px;
 border-radius: 3px;
 -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset;
 -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset;
 box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset;
 -webkit-transition: width .4s ease-in-out;
 -moz-transition: width .4s ease-in-out;
 -ms-transition: width .4s ease-in-out;
 -o-transition: width .4s ease-in-out;
 transition: width .4s ease-in-out;
} 

.blue span {
 background-color: #34c2e3;
}

.orange span {
 background-color: #fecf23;
 background-image: -webkit-gradient(linear, left top, left bottom, from(#fecf23), to(#fd9215));
 background-image: -webkit-linear-gradient(top, #fecf23, #fd9215);
 background-image: -moz-linear-gradient(top, #fecf23, #fd9215);
 background-image: -ms-linear-gradient(top, #fecf23, #fd9215);
 background-image: -o-linear-gradient(top, #fecf23, #fd9215);
 background-image: linear-gradient(top, #fecf23, #fd9215);
}       

.green span {
 background-color: #a5df41;
 background-image: -webkit-gradient(linear, left top, left bottom, from(#a5df41), to(#4ca916));
 background-image: -webkit-linear-gradient(top, #a5df41, #4ca916);
 background-image: -moz-linear-gradient(top, #a5df41, #4ca916);
 background-image: -ms-linear-gradient(top, #a5df41, #4ca916);
 background-image: -o-linear-gradient(top, #a5df41, #4ca916);
 background-image: linear-gradient(top, #a5df41, #4ca916);
}

.stripes span {
 -webkit-background-size: 30px 30px;
 -moz-background-size: 30px 30px;
 background-size: 30px 30px;
 background-image: -webkit-gradient(linear, left top, right bottom,
 color-stop(.25, rgba(255, 255, 255, .15)), color-stop(.25, transparent),
 color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .15)),
 color-stop(.75, rgba(255, 255, 255, .15)), color-stop(.75, transparent),
 to(transparent));
 background-image: -webkit-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
 transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
 transparent 75%, transparent);
 background-image: -moz-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
 transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
 transparent 75%, transparent);
 background-image: -ms-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
 transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
 transparent 75%, transparent);
 background-image: -o-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
 transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
 transparent 75%, transparent);
 background-image: linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
 transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
 transparent 75%, transparent);            

 -webkit-animation: animate-stripes 3s linear infinite;
 -moz-animation: animate-stripes 3s linear infinite;
}

@-webkit-keyframes animate-stripes {
 0% {background-position: 0 0;} 100% {background-position: 60px 0;}
}

@-moz-keyframes animate-stripes {
 0% {background-position: 0 0;} 100% {background-position: 60px 0;}
}

.urt {
    border-radius: 4px;
    background: #3BA340;
    text-align: center;
    border-left: 2px #3BA340 solid;
    border-right: 2px #3BA340 solid;
}

.urv {
    border-radius: 4px;
    background: #E9473C;
    text-align: center;
    border-left: 2px #E9473C solid;
    border-right: 2px #E9473C solid;

}

.urp {
    border-radius: 4px;
    background: #F0B92D;
    text-align: center;
    border-left: 2px #F0B92D solid;
    border-right: 2px #F0B92D solid;
}

.urx {
    border-radius: 4px;
    background: #AC8BF1;
    text-align: center;
    border-left: 2px #AC8BF1 solid;
    border-right: 2px #AC8BF1 solid;
}
    
</style>
<?

$ban_f = $pdo->query("SELECT * FROM `ban_files` WHERE `id_user` = '$user[id]' AND `status` = '1' AND `type` = 'music' LIMIT 1")->fetch(PDO::FETCH_ASSOC);

if ($ban_f['status']==1)
{
header('location: /modules/foto/admin/ban_user.php');
}
#Навигация
echo "<div class='card-header'>";
echo "<a href='/' data-toggle='tooltip' data-placement='right' title='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='/info.php?id=$user[id]'>$user[nick]</a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='/modules/blogs/user.php?id=$user[id]'>" . lang('блог') . "</a> <i class='fa fa-angle-right fa-fw'></i> Прикрепить музыку</div>";





    
    
$news = $pdo->query("select * from `soo_news` where `id` = '".intval($_GET['post'])."'")->fetch(PDO::FETCH_BOTH);
    
 if($news['avtor']==$user['id'])  {
 

if(isset($_GET['add'])){
$fl = $pdo->query("SELECT * FROM `user_music` WHERE `id_user` = '$user[id]' AND `id` = '".intval($_GET['id_files'])."' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
$pdo->query("INSERT INTO `soo_news_foto` (`id_news`, `type`, `name`, `id_foto`, `id_user`, `time`, `id_file`) values('$news[id]', 'music', '$fl[name]', '0', '$fl[id_user]', '$time', '".intval($_GET['id_files'])."')");
$_SESSION['message'] = 'Музыка успешно добавлена';
header("Location: /modules/groups/news/edit.php?id=".htmlspecialchars($_GET['id'])."&edit=$news[id]");
}


///////////////////////////////////////////////////////////




$dir_id=$pdo->query("SELECT * FROM `user_dirm` WHERE `id_user` = '$user[id]' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
if ($dir_id['id_user']==$user['id']){

if (isset($_GET['ok'])){
if (!isset($_FILES['file']))$err='Ошибка при выгрузке музыки';
elseif (!isset($_FILES['file']['tmp_name']) || filesize($_FILES['file']['tmp_name'])>$disk)$err[]='Размер музыки превышает установленные ограничения';
else
{
$id_dir = intval($_POST['id_dir']);    
$file=htmlspecialchars($_FILES['file']['name']);
$file=htmlspecialchars(preg_replace('(\#|\?)', NULL, $file));
$name=htmlspecialchars(preg_replace('#\.[^\.]*$#', NULL, $file)); // имя файла без расширения
$ras=htmlspecialchars(strtolower(preg_replace('#^.*\.#', NULL, $file)));
$imya=htmlspecialchars($name);
$size=htmlspecialchars(filesize($_FILES['file']['tmp_name']));
$rasss=explode(';', $dir_id['ras']);
$ras_ok=false;
for($i=0;$i<count($rasss);$i++)
{
if ($rasss[$i]!=NULL && $ras==$rasss[$i])$ras_ok=true;
}

if (!$ras_ok)$err='Неверный формат музыки';}

if (isset($_POST['metka']) && ($_POST['metka'] == '0' || $_POST['metka'] == '1'))$metka = $_POST['metka'];
else $metka = 0;

$opis=NULL;
if (isset($_POST['msg']))
$opis=stripslashes(htmlspecialchars($_POST['msg']));

if (utf8_strlen($opis)>300){$err='Описание не может превышать больше 300 символов';}


$id_dir = intval($_POST['id_dir']);
$file=htmlspecialchars($_FILES['file']['name']);
$file=htmlspecialchars(preg_replace('(\#|\?)', NULL, $file));
$name=htmlspecialchars(preg_replace('#\.[^\.]*$#', NULL, $file)); // имя файла без расширения
$ras=htmlspecialchars(strtolower(preg_replace('#^.*\.#', NULL, $file)));
$imya=htmlspecialchars($name);

if ($pdo->query(("SELECT COUNT(*) FROM `user_music` WHERE `dir` = '$id_dir' AND `name` = '$imya'"),0)->fetchColumn()!=0)
$err='Музыка с таким названием уже есть в этой папке';
if (!isset($err)){
$pdo->query("INSERT INTO `user_music` (`metka`, `dir`, `name`, `ras`, `size`, `time`, `id_user`, `opis` )
VALUES ('$metka', '$id_dir', '$imya', '$ras', '$size', '$time', '$user[id]', '$opis' )");
$id_file = $pdo->lastInsertId();

if (!@copy($_FILES['file']['tmp_name'], H."files/user_music/$id_file.mp3"))
{
$pdo->query("DELETE FROM `user_music` WHERE `id` = '$id_file' LIMIT 1");
$err[]='Ошибка при выгрузке музыки';
}

///////////////////////////////////////работа с файлом///////////////////////////
if ($df['rezjim']==0){
msg('Файл успешно загружен. Теперь вы можете его прикрепить к записи');

}else{
$path_get = 'music'; //путь к папке на сервере 2
$ras_get = $ras; //расширение файла
$id_get = $id_file; //идентификатор файла
$dir_get = 'http://facefree.ru/files/user_music/'; //путь к файлу на сервере 1


if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, ''.$df['name'].'/receiver.php?id='.$id_get.'&path='.$path_get.'&ras='.$ras_get.'&dir='.$dir_get.'&key='.$df['key'].'');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$out = curl_exec($curl);

if ($out == '0'){

$pdo->query("DELETE FROM `user_music` WHERE `id` = '$id_file' LIMIT 1");
unlink(htmlspecialchars($_SERVER['DOCUMENT_ROOT']).'/files/user_music/'.$id_get.'.'.$ras_get.'');
msg('Что-то пошло не так. Попробуйте ещё раз');
}elseif ($out == '1'){
 
$pdo->query("DELETE FROM `user_music` WHERE `id` = '$id_file' LIMIT 1");
unlink(htmlspecialchars($_SERVER['DOCUMENT_ROOT']).'/files/user_music/'.$id_get.'.'.$ras_get.'');
msg('Недопустимый формат файла');

}elseif ($out == '2'){
unlink(htmlspecialchars($_SERVER['DOCUMENT_ROOT']).'/files/user_music/'.$id_get.'.'.$ras_get.'');    
msg('Файл успешно загружен. Теперь вы можете его прикрепить к записи');
   
}else{
 msg('Неизвестная ошибка. Файловый сервер временно не может принять выгрузку файлов'); 
$pdo->query("DELETE FROM `user_music` WHERE `id` = '$id_file' LIMIT 1");
unlink(htmlspecialchars($_SERVER['DOCUMENT_ROOT']).'/files/user_music/'.$id_get.'.'.$ras_get.''); 
}

curl_close($curl);
}
}
/////////////////////////////////////////////////////////////////////////////////



}}}
///////////////////////////////////////////












?>
<link rel="stylesheet" href="style/css/email.css" type="text/css" />
<?php
if (isset($_GET['category_id'])) {
    $category_id = (int) $_GET['category_id'];
    $set['p_str'] = 7;
    $k_post = $pdo->query(("SELECT COUNT(*) FROM `user_music` WHERE `id_user` = '$user[id]'"), 0)->fetchColumn();
    $k_page = k_page($k_post, $set['p_str']);
    $page = page($k_page);
    $start = $set['p_str'] * $page - $set['p_str'];

    if ($k_post == 0) {
        $doc->NoResult();
    }

    $q = $pdo->query("SELECT * FROM `user_music` WHERE `id_user` = '$user[id]' ORDER BY `id` DESC LIMIT $start, $set[p_str]");

    echo "<div class='list-group-item'>";

    while ($post = $q->fetch(PDO::FETCH_ASSOC)) {
    
        
        
        echo "<a href='?post=$news[id]&id=".htmlspecialchars($_GET['id'])."&amp;id_files=$post[id]&amp;add'><font color=#E66A44><i class='fa fa-music'></i></font> <b><font color=black>$post[name].$post[ras]</font></b> </a>";
    }

    echo "</div>";

    if ($k_page > 1) {
        echo "<div class='list-group-item'>";
        str('?post='.$news['id'].'&id='.htmlspecialchars($_GET['id']).'&type=file&dir='.$dir_id['id'].'&amp;category_id=' . $category_id . '&amp;', $k_page, $page);
        echo "</div>";
    }

    $urlBack = '?id='.$notes['id'].'&type=file&dir='.$dir_id['id'].'&amp;category';
} elseif (isset($_GET['category'])) {
    $k_post = $pdo->query(("SELECT COUNT(*) FROM `user_music` WHERE `id_user` = '$user[id]'"), 0)->fetchColumn();
    $k_page = k_page($k_post, $set['p_str']);
    $page = page($k_page);
    $start = $set['p_str'] * $page - $set['p_str'];

    if ($k_post == 0) {
        $doc->NoResult();
    }

    $q = $pdo->query("SELECT * FROM `user_music` WHERE `id_user` = '$user[id]' ORDER BY `id` DESC LIMIT $start, $set[p_str]");

    while ($post = $q->fetch(PDO::FETCH_ASSOC)) {
        $count = $pdo->query(("SELECT COUNT(*) FROM `user_music` WHERE `id_user` = '$user[id]'"), 0)->fetchColumn();

        echo "<div class='list-group-item'>";
        echo "<a href='?post=$news[id]&id=".htmlspecialchars($_GET['id'])."&amp;id_files=$post[id]&amp;add'><font color=#E66A44><i class='fa fa-music'></i></font> <b><font color=black>$post[name].$post[ras]</font></b> </a>";
      echo "</div>";
    }

    if ($k_page > 1) {
        echo "<div class='list-group-item'>";
        str('?post='.$news['id'].'&id='.htmlspecialchars($_GET['id']).'&type=file&dir='.$dir_id['id'].'&amp;category&amp;', $k_page, $page);
        echo "</div>";
    }

    $urlBack = '?type=file';
} else {
    $q = $pdo->query("SELECT * FROM `user_music` WHERE `id_user` = '$user[id]' ORDER BY `id` DESC LIMIT 5");

    if ($q->rowCount() > 0) {
       

        while ($post = $q->fetch(PDO::FETCH_ASSOC)) {
        echo "<div class='list-group-item'>";     
                echo "<a href='?post=$news[id]&id=".htmlspecialchars($_GET['id'])."&amp;id_files=$post[id]&amp;add'><font color=#E66A44><i class='fa fa-music'></i></font> <b><font color=black>$post[name].$post[ras]</font></b> </a>";
     
   echo "</div>";          
        }
       
        echo "<div class='list-group-item'>";
        echo "<a href='?post=$news[id]&id=".htmlspecialchars($_GET['id'])."&type=file&dir=".$dir_id['id']."&amp;category'>" . lang('Показать всю музыку') . "</a>";
        echo "</div>";
    } else {
        echo "<div class='alert alert-info'>" . lang('У вас еще нет на сайте загруженной музыки, но вы можете воспользоваться формой ниже') . ".</div>";
    }









echo "<form class='list-group-item' enctype=\"multipart/form-data\" action='file_mus_edit.php?post=$news[id]&id=".htmlspecialchars($_GET['id'])."&type=file&dir=".$dir_id['id']."&ok' name='message' method=\"post\">";
	
echo "<font color='#D59435'><i class='fa fa-folder fa-lg'></i></font> <b>Выберите папку для выгрузки музыки:</b><br/>";

echo "<select name='id_dir' class='form-control' style='width: 50%;'>\n";

$k_post = $pdo->query(("SELECT COUNT(*) FROM `user_dirm` WHERE `id_user` = '$user[id]' "),0)->fetchColumn();
if ($k_post==0)
{
echo "<br>У Вас нет папок для выгрузки музыки. Пожалуйста, создайте папку.<br><br><a class='knopka' href='/user/music/edit.php?id=0&act=new'><font color=white>Создать папку</font></a>";
}

$q = $pdo->query("SELECT * FROM `user_dirm` WHERE `id_user` = '$user[id]' ORDER BY `id` DESC");

while ($post = $q->fetch(PDO::FETCH_ASSOC))
{
echo "<option value='$post[id]'".($id_dir == $post['id']?" selected='selected'" : null).">" . text($post['name']) . "</option>\n";
}

echo "</select>\n";



echo "<br/><b>Выберите музыку</b> <font color='gray'><small>(Не более ".size_file($disk).")</small></font> :<br />
<input class='form-control' style='width:50%;' name='file' type='file'/><br />
<b>Описание</b> <font color='gray'><small>(300 символов)</small></font> :<br />
<textarea class='form-control' name='msg'></textarea><br />";

echo "<label><input type='checkbox' name='metka' value='1' /> Метка <font color=red>18+</font></label><br /><br />

<button class='knopka' name=''><i class='fa fa-upload fa-fw'></i>  Загрузить</button><br /><br />";

 echo "</form>";



}
echo "<div class='list-group-item'><b>Допустимый размер выгружаемых файлов:</b><br><br>";

if ($pdo->query(("SELECT COUNT(*) FROM `disk` WHERE `id_user` = '".$user['id']."' AND `status` = '1' LIMIT 1"), 0)->fetchColumn()){
?>
 <span style="width: 10%; color: gray;"><small><b><font color=orange>60MB</font> / 60MB</b></small></span> 
<div class="progress-bar blue stripes">
<span style="width: 100%"></span>
</div><br>
<?
}else{
if ($user['rating'] >= 0 && $user['rating'] <= 19){
?>
 <span style="width: 10%; color: gray;"><small><b><font color=green>5MB</font> / 60MB</b></small> <span class='urt'><span style='position: relative;bottom: 2px;'><font color='white'><font size='-2px'>3 уровень</font></font></span></span></span> 
<div class="progress-bar blue stripes">
<span style="width: 10%"></span>
</div><br>
<?
}

if ($user['rating'] >= 20 && $user['rating'] <= 49){
?>
 <span style="width: 10%; color: gray;"><small><b><font color=green>20MB</font> / 60MB</b></small> <span class='urv'><span style='position: relative;bottom: 2px;'><font color='white'><font size='-2px'>2 уровень</font></font></span></span></span> 
<div class="progress-bar blue stripes">
<span style="width: 25%"></span>
</div><br>
<?
}

if ($user['rating'] >= 50 && $user['rating'] <= 119){
?>
 <span style="width: 10%; color: gray;"><small><b><font color=green>30MB</font> / 60MB</b></small> <span class='urp'><span style='position: relative;bottom: 2px;'><font color='white'><font size='-2px'>1 уровень</font></font></span></span></span> 
<div class="progress-bar blue stripes">
<span style="width: 50%"></span>
</div><br>
<?
}

if ($user['rating'] >= 120 && $user['rating'] <= 999999999999999999999){
?>
 <span style="width: 10%; color: gray;"><small><b><font color=green>30MB</font> / 60MB</b></small></span> 
<div class="progress-bar blue stripes">
<span style="width: 50%"></span>
</div><br>
<?
}
}
echo "<small>Объем дискового пространства: <b>не ограничен</b></small><BR><BR>";

echo "<small>Для 3 уровня аккаунтов доступно - <b>5MB</b><BR>";
echo "Для достигших 2 уровень доступно - <b>20MB</b><BR>";
echo "Для достигших 1 уровень доступно - <b>30MB</b><BR>";
echo "Для аккаунтов подключивших услугу <b>Размер выгружаемых файлов</b> доступно - <font color=orange><b>60MB</b></font> / <a href='/modules/shop/disk.php'>Подключить услугу</a></small><BR><BR>";

echo "<div class='mess'>" . lang('Разрешается выгружать музыку в формате mp3') . ".</div></div>";
}
    
    
}else{
echo "<div class='list-group-item'><div class='err'>Выгрузка файлов временно недоступна по техническим причинам</div></div>";
}
include_once H . 'sys/inc/tfoot.php';