нашёл в сети интересную доработку к форуму, позволяющую воспроизводить на странице темы mp3 audio - файл, загруженный во вложения форума. решил поделиться этой доработкой и здесь.
19 ноября 2019 года. обновление.
немного переработал код, согласно текущим реалиям. теперь плеер использует ресурсы самого браузера и не создаёт проблем.
3 августа 2022 года. обновление.
добавил скрипт для установки уровня громкости по умолчанию. сейчас стоит 50%.
из характеристик мода:
загружаемый файл: .mp3
размер файла: настраиваемый (в админке)
автоматический ресайз размера файла: отсутствует
вывод воспроизведения: с помощью аудиоплеера браузера (html5)
настройки: стандартные, как у любого вложения на форуме
пример того, что получится в итоге (я установил эту доработку на сайт):
Вложение:
если заинтересовало - ставим (это несложно):
Редактируем файлы форума:
Открыть includes/acp/acp_attachments.php
Найти
Вставить после найденного
Код: Выделить всё
$cat_lang = array(
ATTACHMENT_CATEGORY_NONE => $user->lang['NO_FILE_CAT'],
ATTACHMENT_CATEGORY_IMAGE => $user->lang['CAT_IMAGES'],
ATTACHMENT_CATEGORY_WM => $user->lang['CAT_WM_FILES'],
ATTACHMENT_CATEGORY_RM => $user->lang['CAT_RM_FILES'],
ATTACHMENT_CATEGORY_FLASH => $user->lang['CAT_FLASH_FILES'],
ATTACHMENT_CATEGORY_QUICKTIME => $user->lang['CAT_QUICKTIME_FILES'],
Вставить после найденного
Код: Выделить всё
ATTACHMENT_CATEGORY_MP3 => $user->lang['CAT_MP3_FILES'],
Найти
Вставить после найденного
Код: Выделить всё
$types = array(
ATTACHMENT_CATEGORY_NONE => $user->lang['NO_FILE_CAT'],
ATTACHMENT_CATEGORY_IMAGE => $user->lang['CAT_IMAGES'],
ATTACHMENT_CATEGORY_WM => $user->lang['CAT_WM_FILES'],
ATTACHMENT_CATEGORY_RM => $user->lang['CAT_RM_FILES'],
ATTACHMENT_CATEGORY_FLASH => $user->lang['CAT_FLASH_FILES'],
ATTACHMENT_CATEGORY_QUICKTIME => $user->lang['CAT_QUICKTIME_FILES'],
Вставить после найденного
Код: Выделить всё
ATTACHMENT_CATEGORY_MP3 => $user->lang['CAT_MP3_FILES'],
Открыть includes/constants.php
Найти
Вставить после найденного
Код: Выделить всё
define('ATTACHMENT_CATEGORY_QUICKTIME', 6); // Quicktime/Mov files
Вставить после найденного
Код: Выделить всё
define('ATTACHMENT_CATEGORY_MP3', 7); // MP3 Files - Streaming
Открыть includes/functions_content.php
Найти
Вставить перед найденным
Код: Выделить всё
default:
$l_downloaded_viewed = 'DOWNLOAD_COUNT';
$block_array += array(
'S_FILE' => true,
);
break;
Вставить перед найденным
Код: Выделить всё
// MP3 Streams
case ATTACHMENT_CATEGORY_MP3:
$l_downloaded_viewed = 'VIEWED_COUNT';
$block_array += array(
'U_FORUM' => generate_board_url(),
'ATTACH_ID' => $attachment['attach_id'],
'S_MP3_FILE' => true,
);
// Viewed/Heared File ... update the download count
$update_count[] = $attachment['attach_id'];
break;
Открыть language/ru/acp/attachments.php
Найти
Добавить после найденного
Код: Выделить всё
'CAT_QUICKTIME_FILES' => 'Фильмы QuickTime',
Добавить после найденного
Код: Выделить всё
'CAT_MP3_FILES' => 'Файлы MP3',
Открыть language/en/acp/attachments.php
Найти
Вставить после найденного
Код: Выделить всё
'CAT_QUICKTIME_FILES' => 'Quicktime media files',
Вставить после найденного
Код: Выделить всё
'CAT_MP3_FILES' => 'MP3 files',
Открыть styles/prosilver/template/attachment.html
Найти
Вставить после найденного
Код: Выделить всё
<script type="text/javascript">
// <![CDATA[
if (document.rmstream_{_file.ATTACH_ID}.GetClipWidth)
{
while (!document.rmstream_{_file.ATTACH_ID}.GetClipWidth())
{
}
var width = document.rmstream_{_file.ATTACH_ID}.GetClipWidth();
var height = document.rmstream_{_file.ATTACH_ID}.GetClipHeight();
document.rmstream_{_file.ATTACH_ID}.width = width;
document.rmstream_{_file.ATTACH_ID}.height = height;
document.ctrls_{_file.ATTACH_ID}.width = width;
}
// ]]>
</script>
Вставить после найденного
Код: Выделить всё
<!-- ELSEIF _file.S_MP3_FILE -->
<audio preload="auto" controls>
<source src="{_file.U_DOWNLOAD_LINK}" />
</audio>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', () => {
let audio = document.querySelector('audio');
audio.volume = 0.5;
}, false);
</script>
Найти
Заменить найденное на
Код: Выделить всё
<!-- IF _file.S_WM_FILE or _file.S_RM_FILE or _file.S_FLASH_FILE or _file.S_QUICKTIME_FILE -->
Заменить найденное на
Код: Выделить всё
<!-- IF _file.S_WM_FILE or _file.S_RM_FILE or _file.S_FLASH_FILE or _file.S_QUICKTIME_FILE or _file.S_MP3_FILE -->
Открыть styles/subsilver2/template/attachment.html
Найти
Вставить после найденного
Код: Выделить всё
<script type="text/javascript">
// <![CDATA[
if (document.rmstream_{_file.ATTACH_ID}.GetClipWidth)
{
while (!document.rmstream_{_file.ATTACH_ID}.GetClipWidth())
{
}
var width = document.rmstream_{_file.ATTACH_ID}.GetClipWidth();
var height = document.rmstream_{_file.ATTACH_ID}.GetClipHeight();
document.rmstream_{_file.ATTACH_ID}.width = width;
document.rmstream_{_file.ATTACH_ID}.height = height;
document.ctrls_{_file.ATTACH_ID}.width = width;
}
// ]]>
</script>
Вставить после найденного
Код: Выделить всё
<!-- ELSEIF _file.S_MP3_FILE -->
<br />
<audio preload="auto" controls>
<source src="{_file.U_DOWNLOAD_LINK}" />
</audio>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', () => {
let audio = document.querySelector('audio');
audio.volume = 0.5;
}, false);
</script>
<br />
Найти
Заменить найденное на
Код: Выделить всё
<!-- IF _file.S_WM_FILE or _file.S_RM_FILE or _file.S_FLASH_FILE or _file.S_QUICKTIME_FILE -->
Заменить найденное на
Код: Выделить всё
<!-- IF _file.S_WM_FILE or _file.S_RM_FILE or _file.S_FLASH_FILE or _file.S_QUICKTIME_FILE or _file.S_MP3_FILE -->
Всё. с правками закончено. чистим кэш.
Теперь идём в административный раздел и создаём категорию для работы с MP3-файлами
Админка - Сообщения - Группы расширений - Создать группу.
вот скан того, что должно получиться:
Вложение:
(в поле "назначенные расширения" пока может ничего и не быть)
Теперь назначаем для группы расширений файлы
Админка - Сообщения - Расширения
файл mp3 уже есть в "скачиваемые файлы", надо просто переназначить группу. в выпадающем списке выбрать "файлы MP3".
скан того, как должно получиться:
Вложение:
жмём "отправить" и всё должно получиться. (можете ещё раз зайти в группу разрешений mp3 - там должен появится файл mp3 в поле "назначенные расширения").
Всё готово. теперь открываем страничку создания темы и для проверки загружаем во вложения mp3 audio файл.
Успешного применения.