Настройка сайта
Как убрать поля добавить коментарий из всех разделов и как вывести определнный раздел фотогалереи на страницу раздела каталог, полсе описания товара.
Для полей добавления коменнтария необходимо в соответствующих XSL-шаблонах удалить разделы, отвечающие за отображение комментариев и формы добавления комментария. Например, в стандартном 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="/">
<xsl:apply-templates select="/document/item"/>
</xsl:template>
<xsl:template match="/document/item">
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[
function ShowImgWindow(title, src, width, height)
{
obj = window.open("", "", "scrollbars=0,dialog=0,minimizable=1,modal=1,width="+width+",height="+height+",resizable=0"
;
obj.document.write("<html>" ) ;
obj.document.write("<head>" ) ;
obj.document.write(""+title+"" ) ;
obj.document.write("</head>" ) ;
obj.document.write("<body topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>" ) ;
obj.document.write("<img src=\""+src+"\" />" ) ;
obj.document.write("</body>" ) ;
obj.document.write("</html>" ) ;
}
]]>
</xsl:text>
</xsl:comment>
<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
<xsl:variable name="parent_group_id" select="/document/information_system/parent_group_id"/>
<h1><xsl:value-of disable-output-escaping="yes" select="item_name"/></h1>
<!-- ============= -->
<!-- Путь к гурппе -->
<!-- ============= -->
<xsl:apply-templates select="//group[@id=$parent_group_id]" mode="goup_path"/>
<!-- Фотогафия к информационному элементу -->
<xsl:if test="item_small_image!=''">
<!-- Проверяем задан ли путь к файлу большого изображения -->
<xsl:if test="item_image!=''">
<xsl:variable name="srcpath" select="item_image" />
<a href="nojavascript...void(0)" onclick="ShowImgWindow('{item_name}','/{$srcpath}', {item_image/@width}, {item_image/@height})"><img align="left" src="/{item_small_image}" style="padding-right: 10px; padding-bottom: 10px"/></a>
</xsl:if>
<xsl:if test="item_image =''">
<img align="left" src="/{item_small_image}" style="padding-right: 10px; padding-bottom: 10px"/>
</xsl:if>
</xsl:if>
<!-- Текст информационного элемента -->
<p><xsl:value-of disable-output-escaping="yes" select="item_text"/></p>
<!-- Дата информационного элемента -->
<p><xsl:value-of disable-output-escaping="yes" select="item_date"/></p>
<!-- Если указано отображать комментарии -->
<xsl:if test="/document/show_comments/node() and /document/show_comments = 1">
<!-- Отображение комментариев -->
<xsl:if test="count(item_comments/comment) > 0">
<p class="title">Комментарии</p>
<ul>
<xsl:apply-templates select="item_comments/comment" />
</ul>
</xsl:if>
<p class="title">Добавить комментарий</p>
<!--Отображение формы добавления комментария-->
<form action="{/document/url}" method="post">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td>ФИО: </td>
<td><input type="text" size="50" name="comment_autor" value=""/></td>
</tr>
<tr>
<td>E-mail: </td>
<td><input type="text" size="50" name="comment_email" value=""/></td>
</tr>
<tr>
<td>Тема: </td>
<td><input type="text" size="50" name="comment_subject" value=""/></td>
</tr>
<tr>
<td>Комментарий: </td>
<td><textarea name="comment_text" cols="50" rows="10"></textarea></td>
</tr>
<!-- Обработка CAPTCHA -->
<xsl:if test="//captcha_key != 0">
<tr>
<td>Код подтверждения:</td>
<td>
<div style="float: left">
<img style="border: 1px solid #777777" src="/captcha.php?get_captcha={//captcha_key}&height=16" title="Код подтверждения"/>
</div>
<div style="float: left; margin-left: 10px">
<input type="hidden" name="captcha_key" value="{//captcha_key}"/>
<input type="text" name="captcha_keystring" size="15" />
</div>
</td>
</tr>
</xsl:if>
<tr>
<td></td>
<td><input type="submit" name="add_comment" value="Добавить комментарий"/></td>
</tr>
</table>
</form>
</xsl:if>
</xsl:template>
<!-- ======================================================== -->
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<!-- ======================================================== -->
<xsl:template match="group" mode="goup_path">
<xsl:variable name="parent_id" select="@parent_id"/>
<!-- Выбираем рекурсивно вышестоящую группу -->
<xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path" />
<xsl:if test="@parent_id=0">
<a href="{/document/information_system/url}"><xsl:value-of disable-output-escaping="yes" select="/document/information_system/name"/></a>
</xsl:if>
<img src="/images/arrow_path.gif" class="arrow_path"/>
<a href="{/document/information_system/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:template>
<!-- Отображение комментариев -->
<xsl:template match="item_comments/comment">
<li>
<xsl:value-of disable-output-escaping="yes" select="comment_subject"/><br/>Автор: <a href="mailto:{comment_email}"><xsl:value-of disable-output-escaping="yes" select="comment_fio"/></a>  ·  <b><xsl:value-of disable-output-escaping="yes" select="comment_date"/></b><br/>
<xsl:value-of disable-output-escaping="yes" select="comment_text"/>
</li>
</xsl:template>
</xsl:stylesheet>
Для того, чтобы вывести определенный раздел фотогалереи после описания товара, необходимо в коде динамической или типовой динамической страницы (в зависимости от того, какой механизм используется для отображения узла структуры, связанного с каталогом)
вызвать метод отображения инфосистемы ShowInformationSystem, указав в качестве идентификатора инфосистемы идентификатор фотогалереи, а в качестве идентификатора группы - идентификатор нужного раздела фотогалереи и остальные необходимые параметры.
<?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="/">
<xsl:apply-templates select="/document/item"/>
</xsl:template>
<xsl:template match="/document/item">
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[
function ShowImgWindow(title, src, width, height)
{
obj = window.open("", "", "scrollbars=0,dialog=0,minimizable=1,modal=1,width="+width+",height="+height+",resizable=0"
;obj.document.write("<html>" ) ;
obj.document.write("<head>" ) ;
obj.document.write(""+title+"" ) ;
obj.document.write("</head>" ) ;
obj.document.write("<body topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>" ) ;
obj.document.write("<img src=\""+src+"\" />" ) ;
obj.document.write("</body>" ) ;
obj.document.write("</html>" ) ;
}
]]>
</xsl:text>
</xsl:comment>
<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
<xsl:variable name="parent_group_id" select="/document/information_system/parent_group_id"/>
<h1><xsl:value-of disable-output-escaping="yes" select="item_name"/></h1>
<!-- ============= -->
<!-- Путь к гурппе -->
<!-- ============= -->
<xsl:apply-templates select="//group[@id=$parent_group_id]" mode="goup_path"/>
<!-- Фотогафия к информационному элементу -->
<xsl:if test="item_small_image!=''">
<!-- Проверяем задан ли путь к файлу большого изображения -->
<xsl:if test="item_image!=''">
<xsl:variable name="srcpath" select="item_image" />
<a href="nojavascript...void(0)" onclick="ShowImgWindow('{item_name}','/{$srcpath}', {item_image/@width}, {item_image/@height})"><img align="left" src="/{item_small_image}" style="padding-right: 10px; padding-bottom: 10px"/></a>
</xsl:if>
<xsl:if test="item_image =''">
<img align="left" src="/{item_small_image}" style="padding-right: 10px; padding-bottom: 10px"/>
</xsl:if>
</xsl:if>
<!-- Текст информационного элемента -->
<p><xsl:value-of disable-output-escaping="yes" select="item_text"/></p>
<!-- Дата информационного элемента -->
<p><xsl:value-of disable-output-escaping="yes" select="item_date"/></p>
<!-- Если указано отображать комментарии -->
<xsl:if test="/document/show_comments/node() and /document/show_comments = 1">
<!-- Отображение комментариев -->
<xsl:if test="count(item_comments/comment) > 0">
<p class="title">Комментарии</p>
<ul>
<xsl:apply-templates select="item_comments/comment" />
</ul>
</xsl:if>
<p class="title">Добавить комментарий</p>
<!--Отображение формы добавления комментария-->
<form action="{/document/url}" method="post">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td>ФИО: </td>
<td><input type="text" size="50" name="comment_autor" value=""/></td>
</tr>
<tr>
<td>E-mail: </td>
<td><input type="text" size="50" name="comment_email" value=""/></td>
</tr>
<tr>
<td>Тема: </td>
<td><input type="text" size="50" name="comment_subject" value=""/></td>
</tr>
<tr>
<td>Комментарий: </td>
<td><textarea name="comment_text" cols="50" rows="10"></textarea></td>
</tr>
<!-- Обработка CAPTCHA -->
<xsl:if test="//captcha_key != 0">
<tr>
<td>Код подтверждения:</td>
<td>
<div style="float: left">
<img style="border: 1px solid #777777" src="/captcha.php?get_captcha={//captcha_key}&height=16" title="Код подтверждения"/>
</div>
<div style="float: left; margin-left: 10px">
<input type="hidden" name="captcha_key" value="{//captcha_key}"/>
<input type="text" name="captcha_keystring" size="15" />
</div>
</td>
</tr>
</xsl:if>
<tr>
<td></td>
<td><input type="submit" name="add_comment" value="Добавить комментарий"/></td>
</tr>
</table>
</form>
</xsl:if>
</xsl:template>
<!-- ======================================================== -->
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<!-- ======================================================== -->
<xsl:template match="group" mode="goup_path">
<xsl:variable name="parent_id" select="@parent_id"/>
<!-- Выбираем рекурсивно вышестоящую группу -->
<xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path" />
<xsl:if test="@parent_id=0">
<a href="{/document/information_system/url}"><xsl:value-of disable-output-escaping="yes" select="/document/information_system/name"/></a>
</xsl:if>
<img src="/images/arrow_path.gif" class="arrow_path"/>
<a href="{/document/information_system/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:template>
<!-- Отображение комментариев -->
<xsl:template match="item_comments/comment">
<li>
<xsl:value-of disable-output-escaping="yes" select="comment_subject"/><br/>Автор: <a href="mailto:{comment_email}"><xsl:value-of disable-output-escaping="yes" select="comment_fio"/></a>  ·  <b><xsl:value-of disable-output-escaping="yes" select="comment_date"/></b><br/>
<xsl:value-of disable-output-escaping="yes" select="comment_text"/>
</li>
</xsl:template>
</xsl:stylesheet>
Для того, чтобы вывести определенный раздел фотогалереи после описания товара, необходимо в коде динамической или типовой динамической страницы (в зависимости от того, какой механизм используется для отображения узла структуры, связанного с каталогом)
вызвать метод отображения инфосистемы ShowInformationSystem, указав в качестве идентификатора инфосистемы идентификатор фотогалереи, а в качестве идентификатора группы - идентификатор нужного раздела фотогалереи и остальные необходимые параметры.
Авторизация