Работа с протоколом UFS

Материал из Umicms
Версия от 11:11, 5 июня 2013; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Актуально для версии 2.9

Рассмотрим работу с протоколом 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 ответ который подходит для нашего плеера.

Осталось только положить несколько файлов с музыкой в соответствующую папку.