<?php
/*
------------------------------------------------
3020.ru - скрипты тут
------------------------------------------------
*/
FOREACH (ARRAY('config', 'connect', 'users') AS $connect) {
INCLUDE_ONCE ("../../system/connections/global/$connect.php");
}
ACCESS('users');
IF (ISSET($_FILES['file']) && AJAX() == TRUE){
IF (GET('type') == 'blogs'){
$ts = "BLOGS";
}ELSEIF (GET('type') == 'news'){
$ts = "NEWS";
}ELSEIF (GET('type') == 'forum'){
$ts = "FORUM";
}ELSE{
$ts = "COMMENTS";
}
//Максимальный размер для выгрузки
$MaxFileSize = CONFIG('MAXFILESIZE');
//Разрешенные форматы для выгрузки
$AllowFileExtension = ARRAY('mp3');
//Оригинальное название аудио
$FileNameExp = $_FILES['file']['name'];
//Оригинальное название аудио без расширения
$FileName = TEXT_PROCESSING(PREG_REPLACE('#\.[^\.]*$#', NULL, $FileNameExp));
//Расширение аудио
$Exp = STRTOLOWER(PREG_REPLACE('#^.*\.#', NULL, $FileNameExp));
//Временный файл
$TempName = $_FILES['file']['tmp_name'];
//Папка куда будут загружаться аудио
$UploadDir = ROOT."/files/upload/music/source/";
//Проверка расширения аудио
$FileExtension = PATHINFO(STRTOLOWER($FileNameExp), PATHINFO_EXTENSION);
$err_data = 0;
IF (DB::GET_COLUMN("SELECT COUNT(*) FROM `ATTACHMENTS` WHERE `".$ts."` = '1' AND `USER_ID` = '".$user['ID']."' AND `ACT` = '0' LIMIT 1") >= 3){
$error = "Нельзя прикреплять более 3 файлов к 1 объекту";
$err_data = 1;
}
//Настройки музыки
$music_settings = @PARSE_INI_FILE(ROOT."/system/config/music.ini", FALSE);
IF (DB::GET_COLUMN("SELECT COUNT(*) FROM `MUSIC` WHERE `USER_ID` = '".$user['ID']."'") >= $music_settings['MUSIC_LIMIT']){
$error = "Вы исчерпали лимит на добавление аудио";
$err_data = 1;
}
IF (CONFIG('FILE_ACCESS') == 0) {
$error = "Выгрузка файлов на сайте приостановлена администрацией";
$err_data = 1;
}
IF (!IN_ARRAY($FileExtension, $AllowFileExtension)) {
$error = "Неверный формат аудио";
$err_data = 1;
}
//Проверка размера аудио
IF (FILESIZE($TempName) > $MaxFileSize) {
$error = "Размер загружаемого аудио превышает установленные ограничения";
$err_data = 1;
}
IF (STR($FileName) < 1) {
$error = "Имя загружаемого аудио не должно быть менее 1 символа";
$err_data = 1;
}
IF (STR($FileName) > 200) {
$error = "Имя загружаемого аудио не должно быть более 200 символов";
$err_data = 1;
}
IF ($err_data == 1){
ECHO "<div class='file-upload-progress' style='color: red;'><i class='fa fa-exclamation-triangle fa-fw'></i> ".LG($error)."</div>";
}ELSE{
$dir = DB::GET_STRING("SELECT `ID` FROM `MUSIC_DIR` WHERE `USER_ID` = '".$user['ID']."' AND `NAME` = 'Вложения' AND `PRIVATE` = '3' LIMIT 1");
$ID = DB::GET_ADD("INSERT INTO `MUSIC` (`FACT_NAME`, `USER_ID`, `EXT`, `SIZE`, `TIME`, `ID_DIR`) VALUES ('".$FileName."', '".$user['ID']."', '".$Exp."', '".FILESIZE($TempName)."', '".TIME()."', '".$dir['ID']."')");
//Сохраняем аудио если все хорошо
$CopyFile = COPY($TempName, "".$UploadDir."".$ID.".".$Exp."");
IF (!$CopyFile) {
ECHO "<div class='file-upload-progress' style='color: red;'><i class='fa fa-exclamation-triangle fa-fw'></i> ".LG('Неизвестная ошибка')."</div>";
DB::GET_SET("DELETE FROM `MUSIC` WHERE `ID` = '".$ID."' LIMIT 1");
}ELSE{
$file = ROOT.'/files/upload/music/source/'.$ID.'.mp3';
$ID3 = NEW ID3;
$aTags = $ID3->getTagsInfo($file);
$id3_name2 = ADSL($aTags['Title']);
$id3_artist2 = ADSL($aTags['Author']);
$id3_genre2 = ADSL($aTags['Genre']);
$id3_album2 = ADSL($aTags['Album']);
IF (STR($id3_name2) == 0){ $id3_name = "Неизвестная композиция"; }ELSE{ $id3_name = $id3_name2; }
IF (STR($id3_artist2) == 0){ $id3_artist = "Неизвестный"; }ELSE{ $id3_artist = $id3_artist2; }
IF (STR($id3_genre2) == 0){ $id3_genre = "Неизвестный жанр"; }ELSE{ $id3_genre = $id3_genre2; }
IF (STR($id3_album2) == 0){ $id3_album = "Без альбома"; }ELSE{ $id3_album = $id3_album2; }
DB::GET_SET("UPDATE `MUSIC` SET `NAME` = '".$id3_name."', `ARTIST` = '".$id3_artist."', `GENRE` = '".$id3_genre."' WHERE `ID` = '".$ID."' LIMIT 1");
DB::GET_ADD("INSERT INTO `ATTACHMENTS` (`USER_ID`, `OBJECT_ID`, `TYPE`, `TIME`, `".$ts."`, `ID_POST`) VALUES ('".$user['ID']."', '".$ID."', 'music', '".TIME()."', '1', '0')");
//Отправляем запрос на обновление листа если успешно
$url = BASE64_DECODE(GET('url'));
?>
<script>
var data = "<?=$url?>";
var toLoad = data+' #atcom-upgrade';
open_modal = 0;
$("#atcom-upgrade").load(toLoad);
$("#at_comment").removeClass("open");
setTimeout( function(){
$("#at_comment").parents(".overlay").removeClass("open");
}, 5);
$('#upgrade-optima2').html('');
</script>
<?
}
}
}ELSE{
ECHO LG('Не удалось установить соединение с ресивером.');
}
?>