3DM-студия
» » » Правильная интеграция Uppod в DLE 9.7 на основе AdequateBBcode

Правильная интеграция Uppod в DLE 9.7 на основе AdequateBBcode

Правильная интеграция Uppod в DLE 9.7 на основе AdequateBBcode


Нужно интегрировать Uppod плеер в DLE 9.7? Тогда эта статья для вас!
С установкой справится любой, при этом стандартный функционал DLE не изменится.

Интеграция представят из себя добавление специальной кнопки "uppod", которая имеет собственный обработчик и не нарушает стандартные теги video, media и mp3.
Для упрощения интеграции я взял за основу уже имеющийся, нормальный BBcode-редактор AdequateBBcode.

Версия DLE: 9.7
Автор модификации: ПафНутиЙ
Модификация: AdequateBBcode+Uppod
Официальный сайт плеера Uppod
Скачать необходимые файлы

Особенности реализации работы с плеером
Не портит существующий функционал (отдельная кнопка для вставки медиа через uppod).
Удобная кастомизация плеера (скины аудио и видео лежат в папке шаблона, и легко меняются на собственные).
Можно задавать размер плеера, название композиции, картинку-заглушку. Из обязательных параметров только ссылка на видео или аудио. Размер плеера по умолчанию задаётся в CSS.
Не нужно ставить два плеера для видео и аудио, музыка поддерживаемых плеером расширений (mp3, ogg, aac) определяется автоматически и подгружается нужный плеер.

Внешний вид
Небольшая видео-демонстраця (рекомендую смотреть в нормальном качестве):


Новая кнопка в форме добавления и редактирования новостей с сайта (справа от YouTube)
Правильная интеграция Uppod в DLE 9.7 на основе AdequateBBcode


Внешний вид видео и аудио в новости (из имеющихся в комплекте стилей плеера)
Правильная интеграция Uppod в DLE 9.7 на основе AdequateBBcode


Установка
Сделать резервную копию файлов engine/modules/bbcode.php, engine/ajax/bbcode.php, engine/classes/parce.class.php, language/Russian/website.lng, bbcodes/color.html.
Залить содержимое папки uploads из архива в корень сайта (если требутся - изменить название шаблона на свой).
Открыть main.tpl и перед прописать:
<link media="screen" href="{THEME}/style/bbcodes.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="{THEME}/js/tooltip.js"></script>

Открыть файл engine/classes/parce.class.php, найти:
$source = preg_replace( "#\[media=([^\]]+)\]#ies", "\$this->build_media('\\1')", $source );

Ниже вставить:
/*** Подключение uppod плеера by ПафНутиЙ ***/
$source = preg_replace( "#\[uppod=([^\]]+)\]#ies", "\$this->build_uppod('\\1')", $source );
/*** Подключение uppod плеера by ПафНутиЙ ***/

Далее найти:
$txt = preg_replace( "#<!--dle_media_begin:(.+?)-->(.+?)<!--dle_media_end-->#is", '[media=\\1]', $txt );

Ниже вставить:
/*** Подключение uppod плеера by ПафНутиЙ ***/
$txt = preg_replace( "#<!--dle_uppod_begin:(.+?)-->(.+?)<!--dle_uppod_end-->#is", '[uppod=\\1]', $txt );
/*** Подключение uppod плеера by ПафНутиЙ ***/

Далее найти:
function build_url($url = array()) {

ВЫШЕ вставить:
   /*** Подключение uppod плеера by ПафНутиЙ ***/
function build_uppod($url) {
global $config;
if (!count($this->video_config)) {
include (ENGINE_DIR . '/data/videoconfig.php');
$this->video_config = $video_config;
}

$get_size = explode( ",", trim( $url ) );
$sizes = array();

if (count($get_size) == 2) {
$url = $get_size[1];
$sizes = explode('x', trim( $get_size[0]));
$width = intval($sizes[0]) > 0 ? intval($sizes[0]) : $this->video_config['width'];
$height = intval($sizes[1]) > 0 ? intval($sizes[1]) : $this->video_config['height'];

if (substr($sizes[0], - 1, 1 ) == '%') $width = $width."%";
if (substr($sizes[1], - 1, 1 ) == '%') $height = $height."%";

} else {
$width = $this->video_config['width'];
$height = $this->video_config['height'];
}

if($url == '') return;

$option = explode('|', trim($url));

$url = $this->clear_url($option[0]);

$type = explode(".", $url);
$type = strtolower(end($type));

$decode_url = $url;

if($option[1] != '') {
$option[1] = htmlspecialchars(strip_tags( stripslashes($option[1])), ENT_QUOTES, $config['charset']);
$decode_url = $url.'|'.$option[1];
}
if ($option[2] != '') {
$option[2] = htmlspecialchars(strip_tags( stripslashes($option[2])), ENT_QUOTES, $config['charset']);
$decode_url = $url.'|'.$option[1].'|'.$option[2];
}

$uppod_size = '';
if ( count($sizes) == 2 ) {
$decode_url = $width.'x'.$height.','.$decode_url;
$uppod_size = 'style="width:'.$width.'px; height:'.$height.'px;"';
}

$preview = '';
if ($this->video_config['preview']) $preview = '&amp;poster={THEME}/uppod/preview.png';
if ($this->video_config['startframe']) $preview = '';
if($option[2] != '') $preview = '&amp;poster='.$option[2];

$uppod_name = 'Noname';
if($option[1] != '') $uppod_name = $option[1];

$id_player = md5( microtime() );

$player_type = '<param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" />';
$style_type = 'style_video';

if($type == 'ogg' or $type == 'mp3' or $type == 'aac') {
$player_type = '';
$style_type = 'style_audio';
$preview = '';
}

return '<!--dle_uppod_begin:'.$decode_url.'-->
<object class="uppod_'.$style_type.'" id="uppod_video_'.$id_player.'" type="application/x-shockwave-flash" data="{THEME}/uppod/uppod.swf" '.$uppod_size.'>
<param name="bgcolor" value="#000000" />
'.$player_type.'
<param name="movie" value="{THEME}/uppod/uppod.swf" />
<param name="flashvars" value="comment='.$uppod_name.'&amp;st={THEME}/uppod/'.$style_type.'.txt&amp;file='.$url.$preview.'" />
</object>
<!--dle_uppod_end-->';

}
/*** Подключение uppod плеера by ПафНутиЙ ***/

Открыть файл language/Russian/website.lng, найти:
'wysiwyg_language'        =>  "ru",

Ниже вставить:
// Подключение uppod плеера by ПафНутиЙ
'name_uppod' => "Введите название видео (оно будет отображаться в плеере, если это предусмотренно скином)",
'bb_t_uppod' => "Вставка видео или аудио через Uppod плеер",

Всё! Очищаем кеш браузера, кеш DLE и наслаждаемся )

Кастомизация плеера
Всё, что относится к плееру лежит в папке templates/YOUR_TEMPLATE/uppod (YOUR_TEMPLATE - заменить на имя своего шаблона)
Для изменения скина видео достаточно заменить содержимое файла uppodstyle_video.txt
Для изменения скина аудио достаточно заменить содержимое файла uppodstyle_audio.txt
В зависимости от типа плеера ему присваивается класс **uppod_style_video** или **uppod_style_audio** так что можно спокойно оформлять плеер через CSS.
Если не задана картинка-заглушка, то выведется деолтная uppod/preview.png (PSD этой картинки так же есть в архиве)

Важно!
Изменения редактора касаются только публичной части сайта, в админке редактор не изменится, но тег
[uppod=URL]

будет корректно обрабатываться и в админке.


Скачивание доступно только для зарегистрированных
НАШИ НОВОСТИ
Опубликовано 04 апрель 2014
Представляю вашему вниманию шаблон онлайн кинотеатра с глубокой настройкой под свои нужны OST-ARENA.RU Читать далее...
Опубликовано 18 март 2014
Представляю вашему вниманию, адаптивный новостной шаблон Reades News. Адаптивный дизайн подразумевает, что шаблон будет одинаково корректно отображаться во всех устройствах. Шаблон отлично подойдет для медийных новостей и не только. Обязательно посмотрите видеозапись работы Читать далее...
Опубликовано 16 март 2014
Дизайн Zerotheme, адаптирован для DLE 10.1 by Yurets. Шаблон zBoomMusic позиционируется как шаблон для музыкального портала или музыкального блога. Вверху шаблона расположен слайдер, под слайдером Топ новостей, далее последние добавленные новости. Читать далее...