Работа с протоколом UFS
Рассмотрим работу с протоколом UFS на примере реализации музыкального плеера на сайт с использованием xslt (Интернет Магазин).
Для начала скачаем плеер способный работать с данными в формате xml
Ссылка на оригинал [1] или Файл:OriginalMultipleMenu.zip
Из архива нам необходим сам плеер (OriginalMusicPlayerPlaylist.swf). Положим его в корень сайта.
Далее откроем основной файл шаблона, по умолчанию xsltTpls/layouts/default.xsl и в нужном нам месте разместим код плеера.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<div id="player-holder"></div>
<script type="text/javascript">
var options = {};
options.playlistXmlPath = "/playlist/";
var params = {};
params.allowScriptAccess = "always";
swfobject.embedSWF("/OriginalMusicPlayerPlaylist.swf", "player-holder", "180", "150", "1.0.0",false, options, params, {});
</script>
Плеер успешно установлен на сайт, но ещё необходимо сделать для него плейлист в формате xml. Для того чтобы не составлять его в ручную каждый раз при обновлении музыкальных файлов воспользуемся протоколом ufs.
В настройках модуля структура допишем новый шаблон. Указываете желаемое имя, и путь. Например layouts/playlist.xsl В структуре создадим страничку playlist и назначим для неё этот шаблон.
Теперь можно приступить к его созданию: Соответственно в папке xsltTpls/layouts/ создаем файл playlist.xsl В нём получим содержимое некоей папки которая будет в себе содержать музыку, и преобразуем эти данные в подходящие для нашего плеера. В скачанном архиве вы можете увидеть пример плейлиста, выглядит он следующим образом:
<playlist>
<item>
<title>Test Track 1</title>
<artist>Artist Name</artist>
<path>song.mp3</path>
</item>
</playlist>
Преобразуем данные получаемые по протоколу:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://i18n/constants.dtd:file">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xml:umi="http://www.umi-cms.ru/TR/umi">
<xsl:template match="result[@module= 'content']">
<playlist>
<xsl:apply-templates select="document('ufs://music')/udata/file" />
<!-- Где music это папка с содержанием ваших файлов формата mp3 -->
</playlist>
</xsl:template>
<xsl:template match="/udata/file">
<xsl:if test="@ext='mp3'"> <!-- Условие на формат mp3 -->
<item>
<title><xsl:value-of select="translate(./@name, '_.mp3', ' ')"/></title> <!-- Преобразование имени -->
<!-- <artist> </artist> -->
<path>/music/<xsl:value-of select="@name" /></path> <!-- Получение пути к файлу -->
</item>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Теперь при запросе http://domain.ru/playlist/.xml Мы будем видеть xml ответ который подходит для нашего плеера. Осталось только положить несколько файлов с музыкой в соответствующую папку.