Аудиозаписи в профиле

dimka3210

Пользователь
Мод написан буквально за час.
Автор dimka3210.
Установка займёт около 7 минут.
Использует технологии ajax. Работает с БД.
+1 запрос на страницу профиля.

открыть usercp_viewprofile.php
PHP:
#найти
if (!bf($profiledata['user_opt'], 'user_opt', 'allow_dls') || (IS_AM || $profile_user_id))
PHP:
#Выше добавить
if($bb_cfg['module_audio'])
include(INC_DIR .'ucp/audio_userprofile.php');
открыть config.php
PHP:
# в самый низ добавить
// Module AUDIO
$bb_cfg['module_audio'] = true;
$bb_cfg['max_audio_size'] = 10*4194304;
$bb_cfg['max_user_track'] = 10;
открыть usercp_viewprofile .tpl
PHP:
# найти
<a name="torrent"></a>
<div class="spacer_8"></div>
PHP:
# ниже добавить
 
 
<!-- IF $bb_cfg['module_audio'] -->
<!-- IF GET -->
<table class="bordered w100">
<tr>
<th colspan="4" class="thHead">Аудиозаписи пользователя:</th>
</tr>
<!-- IF INPUT -->
<tr>
<td colspan="4" class="row2">
<form enctype="multipart/form-data" method="POST">
<div align="center">
<input type="file" name="audiofile" /><input type="text" name="audioname" onfocus="if(this.value=='Введите название...') this.value='';" onblur="if(this.value=='') this.value='Введите название...';" value="Введите название..." />
<input type="submit" value="Отправить" name="audio" />
</div>
</form>
</td>
</tr>
<!-- ENDIF -->
<!-- BEGIN audio -->
<tr id="tr{audio.II}">
<td colspan="3" class="row1" align="center" valign="center">
{audio.ECHO}
</td>
<td class="row1" align="center">Добавлено: {audio.DATETIME}
<hr />
<a href="{audio.DOWNLOAD}">Скачать <b>{audio.FILENAME}</b></a>
<!-- IF DELETE -->
<hr />
<a href="#tr{audio.II}" onclick="data_delete_user('tr{audio.II}'); ajax.exec({action: 'delete_user_audio_ajax', id: '{audio.ID}'});">Удалить</b></a>
<!-- ENDIF -->
</td>
</tr>
<!-- END audio -->
</table>
<!-- ENDIF -->
<!-- ENDIF -->
*
PHP:
# найти
$('#user-opt-save-btn').click(function(){
this.disabled = 1;
$('#user-opt-resp').html('&nbsp;');
ajax.change_user_opt();
});
});
PHP:
# ниже добавить
function data_delete_user(data){
document.getElementById(data).style.display='none';
}
ajax.php
PHP:
# в массив $valid_actions новую ячейку
'delete_user_audio_ajax'        => array('user'),
PHP:
# и перед последней фигурной скобкой
function delete_user_audio_ajax(){
$id = $this->request['id'];
$sql = "SELECT * FROM `bb__user_audio` WHERE `audio_id` = {$id}";
if($result = DB()->fetch_row($sql)){
DB()->query("DELETE FROM `bb__user_audio` WHERE `audio_id` = {$id}");
if(unlink($result['audio_file']))
$this->ajax_die("Файл успешно удалён");
else
$this->ajax_die("Файл не найден");
}
 
}

SQL-запрос!!!
PHP:
CREATE TABLE IF NOT EXISTS `bb__user_audio` (
`audio_id` mediumint(5) NOT NULL AUTO_INCREMENT,
`user_id` int(5) NOT NULL,
`audio_file` varchar(50) NOT NULL,
`audio_add_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`audio_title` varchar(50) NOT NULL,
PRIMARY KEY (`audio_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=35 ;

Создать в директории files директорию audio. Назначить права 777.
Файл приложеный в аттаче закинуть в /includes/ucp/
 

Вложения

  • audio_userprofile.rar
    1.5 KB · Просмотры: 45

s1ck1337

Пользователь
музыку на сервер грузить чтоли чтоб послушать?
а можно сделать так что просто в плэйере в том функция поиск, вводишь название и те любую музыку находит та что вконтакте то есть абсолютно любую .
и на серв не будет налегать и всем хорошо)
 

Lange

Пользователь
dimka3210, а можно сделать чтобы грузилось на поддомен например audio.site.ru?
PS Какую запись не добавляю, пишет Неверный формат файла!
 

Lange

Пользователь
У кого пишет неверный формат, поправьте
PHP:
if($_FILES['audiofile']['type'] !== 'audio/mpeg')
 
 
 
На
if($_FILES['audiofile']['type'] !== 'audio/mp3')
Удаление почему то тоже не работает.
 
Сверху