← Форум / Плагины / Сниппет для генерации плейлистов для MODX CMF (Evo/Revo)
I. Описание.
Сниппет позволяет формировать плейлисты для плеера Uppod из ряда ресурсов-ссылок. В каждом ресурсе должны быть заполнены поля "Заголовок" и "ссылка".
Установка.
1. Создаём новый сниппет через панель управления сайтом.
2. Называем его uppodPlayList.
3. Вставляем код. Сохраняем.
Код сниппета для MODX Evolution:
<?php
// Returns UPPOD playlist
$id = isset($_GET['album'])?intval($_GET['album']):intval($modx->getPlaceholder('id'));
$items = $modx->getActiveChildren($id,'menuindex','ASC','pagetitle,content');
$_RET = '{"playlist":[';
foreach($items as $val){
$_RET.= '{"comment":"'.$val['pagetitle'].'","file":"'.$val['content'].'"}';
}
$_RET.= ']}';
return str_replace('}{','},{',$_RET);
?>
Код сниппета для MODX Revolution:
<?php
$_getFrom = 0;
if (isset($getFrom)) if (intval($getFrom) > 0) $_getFrom = intval($getFrom);
if ($_getFrom==0) if (isset($_GET['album'])) $_getFrom = intval($_GET['album']);
if ($_getFrom!=0) {
$ret = '{"playlist":[';
$q = $modx->newQuery('modResource');
$q->where(array('parent'=>$_getFrom));
$r = $modx->getCollection('modResource',$q);
foreach($r as $song) {
$ret.= '{"comment":"'.$song->get('pagetitle').'","file":"'.$song->get('content').'"}';
}
$ret.= ']}';
} else { $ret = '{"error":"404"}'; }
return str_replace('}{','},{',$ret);
4. PROFIT!
Использование.
1. Создаём новый ресурс. Важно! Из всех флагов оставить только "публиковать" и "очистить кэш"!
2. Тип содержимого — text/plain для Evolution или JSON для Revolution
2. Устанавливаем шаблон "_blank" (пустой).
3. Содержимым ресурса должен быть следующий код:
Для Evolution
Для Revolution
4. Сохраняем файл.
Параметров сниппет не содержит. ID ресурса-папки со ссылками передаётся через GET-массив при помощи параметра plfolder. То есть, если генератором плейлистов является ресурс getplaylist.js в корне сайта, тогда адресом плейлиста для папки с ID 23 будет строка
Пример загрузки плейлиста в шаблоне документа-папки (для MODX Evolution):
<div id="audioplayer"></div>
<script type="text/javascript">
var flashvars = {
"st":"http://yoursite.com/assets/uppod/style.txt",
"pl":"http://yoursite.com/getplaylist.js?album=[*id*]"
};
var params = {
bgcolor:"#41000",
wmode:'transparent',
allowScriptAccess:"always",
id:"audioplayer"
};
new swfobject.embedSWF("http://yoursite.com/assets/uppod/player.swf","audioplayer","250","244","9.0.115.0",false,flashvars,params);
</script>
Естественно папка uppod, содержащая плеер и стили должна быть в этом случае в папке assets.
Пример прямого вывода плейлиста в шаблоне документа-папки:
<div id="audioplayer"></div>
<script type="text/javascript">
var flashvars = {
"st":"http://yoursite.com/assets/uppod/style.txt",
"pl":"[!uppodPlayList!]"
};
var params = {
bgcolor:"#41000",
wmode:'transparent',
allowScriptAccess:"always",
id:"audioplayer"
};
new swfobject.embedSWF("http://yoursite.com/assets/uppod/player.swf","audioplayer","250","244","9.0.115.0",false,flashvars,params);
</script>
Сниппет позволяет формировать плейлисты для плеера Uppod из ряда ресурсов-ссылок. В каждом ресурсе должны быть заполнены поля "Заголовок" и "ссылка".
Установка.
1. Создаём новый сниппет через панель управления сайтом.
2. Называем его uppodPlayList.
3. Вставляем код. Сохраняем.
Код сниппета для MODX Evolution:
<?php
// Returns UPPOD playlist
$id = isset($_GET['album'])?intval($_GET['album']):intval($modx->getPlaceholder('id'));
$items = $modx->getActiveChildren($id,'menuindex','ASC','pagetitle,content');
$_RET = '{"playlist":[';
foreach($items as $val){
$_RET.= '{"comment":"'.$val['pagetitle'].'","file":"'.$val['content'].'"}';
}
$_RET.= ']}';
return str_replace('}{','},{',$_RET);
?>
Код сниппета для MODX Revolution:
<?php
$_getFrom = 0;
if (isset($getFrom)) if (intval($getFrom) > 0) $_getFrom = intval($getFrom);
if ($_getFrom==0) if (isset($_GET['album'])) $_getFrom = intval($_GET['album']);
if ($_getFrom!=0) {
$ret = '{"playlist":[';
$q = $modx->newQuery('modResource');
$q->where(array('parent'=>$_getFrom));
$r = $modx->getCollection('modResource',$q);
foreach($r as $song) {
$ret.= '{"comment":"'.$song->get('pagetitle').'","file":"'.$song->get('content').'"}';
}
$ret.= ']}';
} else { $ret = '{"error":"404"}'; }
return str_replace('}{','},{',$ret);
4. PROFIT!
Использование.
1. Создаём новый ресурс. Важно! Из всех флагов оставить только "публиковать" и "очистить кэш"!
2. Тип содержимого — text/plain для Evolution или JSON для Revolution
2. Устанавливаем шаблон "_blank" (пустой).
3. Содержимым ресурса должен быть следующий код:
Для Evolution
[!uppodPlayList!]
Для Revolution
[[!uppodPlayList]]
4. Сохраняем файл.
Параметров сниппет не содержит. ID ресурса-папки со ссылками передаётся через GET-массив при помощи параметра plfolder. То есть, если генератором плейлистов является ресурс getplaylist.js в корне сайта, тогда адресом плейлиста для папки с ID 23 будет строка
/getplaylist.js?album=23
Пример загрузки плейлиста в шаблоне документа-папки (для MODX Evolution):
<div id="audioplayer"></div>
<script type="text/javascript">
var flashvars = {
"st":"http://yoursite.com/assets/uppod/style.txt",
"pl":"http://yoursite.com/getplaylist.js?album=[*id*]"
};
var params = {
bgcolor:"#41000",
wmode:'transparent',
allowScriptAccess:"always",
id:"audioplayer"
};
new swfobject.embedSWF("http://yoursite.com/assets/uppod/player.swf","audioplayer","250","244","9.0.115.0",false,flashvars,params);
</script>
Естественно папка uppod, содержащая плеер и стили должна быть в этом случае в папке assets.
Пример прямого вывода плейлиста в шаблоне документа-папки:
<div id="audioplayer"></div>
<script type="text/javascript">
var flashvars = {
"st":"http://yoursite.com/assets/uppod/style.txt",
"pl":"[!uppodPlayList!]"
};
var params = {
bgcolor:"#41000",
wmode:'transparent',
allowScriptAccess:"always",
id:"audioplayer"
};
new swfobject.embedSWF("http://yoursite.com/assets/uppod/player.swf","audioplayer","250","244","9.0.115.0",false,flashvars,params);
</script>
XanderBass | Ссылка на пост (Смотрели 10935) | 16.02.12 21:08 Ответить |
Если в итоге тупо выводится плеер с плейлистом составленный из ресурсов то, можно было и без сниппета обойтись.