Пример показа подобной "галереи" из макета(или шаблона страницы):
<?
$InformationSystem = new InformationSystem();
$external_propertys = array();
$external_propertys['ОтображатьСсылкуНаАрхив'] = 0;
$external_propertys['Интервал'] = 2000;
$InformationSystem->ShowInformationSystem(24, false, 'ВыводЕдиницыИнформационнойСистемыГалерея', 100, false, $external_propertys);
?>
Код XSL-шаблона "ВыводЕдиницыИнформационнойСистемыГалерея":
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />
<xsl:template match="/">
<SCRIPT>
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[
var ClientMasImg = new Array();
var ClientMasText = new Array();
]]>
</xsl:text>
</xsl:comment>
</SCRIPT>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/document">
<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
<xsl:variable name="parent_group_id" select="blocks/parent_group_id" />
<!-- Если в находимся корне - выводим название информационной системы -->
<xsl:if test="blocks/parent_group_id=0">
<xsl:value-of disable-output-escaping="yes" select="blocks/name" />
</xsl:if>
<!-- Отображение записи информационного блока -->
<SCRIPT>
<xsl:comment>
<xsl:apply-templates select="blocks/items/item[item_status=1]" />
</xsl:comment>
</SCRIPT>
<xsl:call-template name="print_from_mass" />
<div align="right" style="padding-right: 25px;">
<br/>
<br/>
<xsl:if test="ОтображатьСсылкуНаАрхив=1">
<table>
<tr>
<!-- Ссылка на архив -->
<td><a href="{blocks/url}">Все новости</a></td>
<td><img alt="" src="/images/a.gif" hspace="0" vspace="0" border="0" align="left" style="margin-right:8px; margin-top:2px"/></td>
</tr>
</table>
</xsl:if>
</div>
</xsl:template>
<!-- ======================== -->
<!-- Данные об инф. элементах -->
<!-- ======================== -->
<xsl:template match="blocks/items/item">
<xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property[@xml_name='ref']/value"/>
ClientMasImg[<xsl:value-of select="position() - 1" />] = "/<xsl:value-of select="item_small_image"/>";
<xsl:variable name="replace_item"><xsl:value-of disable-output-escaping="yes" select="item_description"/></xsl:variable>
ClientMasText[<xsl:value-of select="position() - 1" />] = '<xsl:value-of select="translate($replace_item, '
', '')"/>';
</xsl:template>
<xsl:template name="print_from_mass">
<div id="content">
<xsl:if test="/document/Интервал/node()">
<SCRIPT>
<xsl:comment>
interval = <xsl:value-of select="/document/Интервал"/>;
<xsl:text disable-output-escaping="yes">
<![CDATA[
]]>
</xsl:text>
</xsl:comment>
</SCRIPT>
</xsl:if>
<SCRIPT>
<xsl:comment>
var count = <xsl:value-of select="blocks/count_all_items"/>;
<xsl:text disable-output-escaping="yes">
<![CDATA[
function getrandom(max_random)
{
var min_random = 0;
max_random++;
var range = max_random - min_random;
var n=Math.floor(Math.random()*range) + min_random;
return n;
}
var i = getrandom(count);
var img = '<table border="0" cellpadding="0" cellspacing="0" width="90%" style="margin-left: 0px; margin-top:15px"><tr><td height="85px" align="center" valign="middle"><img border="0" src="' + ClientMasImg[i] + ' " alt="" ></td></tr><tr><td align="left" valign="middle" style="padding-top: 5px">';
var text = ClientMasText[i] + '</td></tr></table>';
document.all.content.innerHTML = img + text;
showing(i,count);
function showing(i,count)
{
var stop_showing = setInterval("showingItemsIS(++i,count)",interval);
}
function showingItemsIS(i,count)
{
if (i < count)
{
j = i;
}
else
{
j = (i % count);
}
var img = '<table border="0" cellpadding="0" cellspacing="0" width="90%" style="margin-left: 0px; margin-top:15px"><tr><td height="85px" align="center" valign="middle"><img border="0" src="' + ClientMasImg[j] + ' " alt="" ></td></tr><tr><td align="left" valign="middle" style="padding-top: 5px">';
var text = ClientMasText[j] + '</td></tr></table>';
document.all.content.innerHTML = img + text;
}
]]>
</xsl:text>
</xsl:comment>
</SCRIPT>
</div>
</xsl:template>
</xsl:stylesheet>