А возможно вернуть как нить ИС Каталог товаров?

#
Re: А возможно вернуть как нить ИС Каталог товаров?
ferdinant, сообщите адрес сайта, адрес страницы с проблемой и данные доступа к разделу администрирования на адрес службы поддержки.
#
Re: А возможно вернуть как нить ИС Каталог товаров?
Отправил http://ovruch.com.ua/im-pulse/katalog_tovarov/ вот страничка
Skype:ferdinant1988 ICQ:311960596 E-mail: ferdinant@i.ua
#
Re: А возможно вернуть как нить ИС Каталог товаров?
natalya,
а можно XSL шаблон?)
#
Re: А возможно вернуть как нить ИС Каталог товаров?
хотелось взглянуть на рабочий xls шаблон так же, возможно мне очень даже пригодится.

уважаемые сотрудники hostcms не могли бы вы выложить на форум?

спасибо
ку
#
Re: А возможно вернуть как нить ИС Каталог товаров?
Ниже приведены коды XSL-шаблонов "СписокТоваров" и "ВыводПодробнойИнформацииОТоваре", используемых в версии 4.1.

"СписокТоваров":
<?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/>
</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">
      <h1><xsl:value-of disable-output-escaping="yes" select="blocks/name"/></h1>
      <xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
   </xsl:if>
   
   <!-- Если в находимся в группе - выводим название группы -->
   <xsl:if test="blocks/parent_group_id!=0">
      <h1><xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/name"/></h1>

      <!-- Путь к группе -->
      <p><xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path"/></p>
   </xsl:if>

   <!-- Отображение подгрупп данной группы -->
   <ul>
      <xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
   </ul>

   <!-- ======================================================== -->
   <!-- Отображение записи информационного блока -->
   <!-- ======================================================== -->

   <!-- если есть элементы для отображения -->
   <xsl:if test="count(blocks/items/item[item_status=1]) > 0">

      <table border="0" cellspacing="0" cellpadding="5" class="news_table">
      <tr>
      <td style="background-color: #eeeeee;"><b>Название</b></td>
      <td style="background-color: #eeeeee;"><b>Изображение</b></td>
      <td style="background-color: #eeeeee;"><b>Цена</b></td>
      </tr>
            <xsl:apply-templates select="blocks/items/item[item_status=1]" />
      </table>
   </xsl:if>

   <p>
   <!-- Строка ссылок на другие страницы информационного блока -->
   <xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
      <xsl:call-template name="for">
        <xsl:with-param name="items_on_page" select="blocks/items/items_on_page" />
        <xsl:with-param name="current_page" select="blocks/items/current_page" />
        <xsl:with-param name="count_items" select="blocks/items/count_items" />
      </xsl:call-template>
   </xsl:if>
   </p>

   <!-- ======================================================== -->
   <!-- Ссылка на архив -->
   <!-- ======================================================== -->
   <xsl:if test="ОтображатьСсылкуНаАрхив=1">
           <p><a href="{blocks/url}">Архив "<xsl:value-of disable-output-escaping="yes" select="blocks/name"/>"</a></p>
   </xsl:if>
   </xsl:template>


<!-- ======================================================== -->
<!-- Шаблон вывода записей -->
<!-- ======================================================== -->
<xsl:template match="blocks/items/item">

   <!-- определение стиля для черезстрочного выведения фона -->
   <xsl:variable name="style"><xsl:choose>
      <xsl:when test="position() mod 2 = 0">background-color: #eeeeee;</xsl:when>
      <xsl:otherwise></xsl:otherwise>
   </xsl:choose></xsl:variable>

   <tr>
   <!-- Первая ячейка - название и описание товара -->
   <td style="{$style}">
      <strong><a href="{item_path}"><xsl:value-of disable-output-escaping="yes" select="item_name"/></a></strong>

      <!-- описание товара -->
      <br />
      <xsl:value-of disable-output-escaping="yes" select="item_description"/><br/>
   </td>

   <!-- Вторая ячейка - изображение товара -->
   <td style="{$style}">
      <xsl:if test="item_small_image!=''">
         <a href="{item_path}"><img style="padding-right:10px; padding-bottom:10px;" src="/{item_small_image}"/></a>
      </xsl:if>
   </td>

   <!-- Третья ячейка - цена товара -->
   <td style="{$style}">
      <!-- Валюта (дополнительное свойство) -->
      <xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/currency"/>

      <!-- Сама цена (дополнительное свойство) -->
      <xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/price"/>
   </td>
</tr>
</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/blocks/url}"><xsl:value-of disable-output-escaping="yes" select="/document/blocks/name"/></a>
   </xsl:if>

   <span class="path_arrow">&#8594;</span> <a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:template>

<!-- ======================================================== -->
<!-- Шаблон выводит ссылки подгруппы информационного элемента -->
<!-- ======================================================== -->
<xsl:template match="group" mode="groups">
   <li>
      <xsl:if test="small_image!=''">
         <a href="{/document/blocks/url}{fullpath}" target="_blank"><img src="/upload/{small_image}"/></a>&#xA0;
      </xsl:if>
      <a href="{/document/blocks/url}{fullpath}"><b><xsl:value-of disable-output-escaping="yes" select="name"/></b></a>
   </li>
</xsl:template>

<!-- Цикл для вывода строк ссылок -->
<xsl:template name="for">
   <xsl:param name="i" select="0" />
   <xsl:param name="items_on_page" />
   <xsl:param name="current_page" />
   <xsl:param name="count_items" />
   
   <xsl:variable name="n" select="$count_items div $items_on_page" />
   
   <xsl:if test="$count_items > $items_on_page and $n > $i">

      <!-- Разделитель ссылок -->
      <!--
      <xsl:if test="$i != 0 and $n > $current_page"> - </xsl:if>
      -->

      <!-- Ставим ссылку на страницу-->
      <xsl:if test="$i != $current_page">

         <!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
         <xsl:variable name="parent_group_id" select="/document/blocks/parent_group_id" />

         <!-- Определяем группу для формирования адреса ссылки -->
         <xsl:variable name="group_link"><xsl:choose>
            <!-- Если группа не корневая (!=0) -->
            <xsl:when test="$parent_group_id != 0"><xsl:value-of select="/document/blocks//group[@id = $parent_group_id]/fullpath" /></xsl:when>
            <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
            <xsl:otherwise></xsl:otherwise>
         </xsl:choose></xsl:variable>

         <!-- Определяем адрес ссылки -->
         <xsl:variable name="number_link"><xsl:choose>
            <!-- Если не нулевой уровень -->
            <xsl:when test="$i != 0">page-<xsl:value-of select="$i + 1" />/</xsl:when>
            <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
            <xsl:otherwise></xsl:otherwise>
         </xsl:choose></xsl:variable>

         <a href="{/document/blocks/url}{$group_link}{$number_link}" class="page_link"><xsl:value-of select="$i + 1" /></a>
      </xsl:if>
      
      <!-- Не ставим ссылку на страницу-->
      <xsl:if test="$i = $current_page">
         <span class="current"><xsl:value-of select="$i+1" /></span>
      </xsl:if>

      <!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
      <xsl:call-template name="for">
         <xsl:with-param name="i" select="$i + 1" />
         <xsl:with-param name="items_on_page" select="$items_on_page" />
         <xsl:with-param name="current_page" select="$current_page" />
         <xsl:with-param name="count_items" select="$count_items" />
      </xsl:call-template>

   </xsl:if>
</xsl:template>

</xsl:stylesheet>


"ВыводПодробнойИнформацииОТоваре":
<?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">

   <SCRIPT>
      <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>"+title+"</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>
   </SCRIPT>
   
   <!-- Получаем 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"/>

<p/>

<!-- Изображение для записи со ссылкой на большой файл -->
<table border="0">
<tr>
<td align="center">

<xsl:if test="item_small_image!=''">

<!-- Проверяем задан ли путь к файлу большого изображения -->
<xsl:if test="item_image!=''">
   <xsl:variable name="srcpath" select="item_image" />
   <a href="JavaScript:void(0)" onclick="ShowImgWindow('{item_name}','/{$srcpath}', {item_image/@width}, {item_image/@height})"><img src="/{item_small_image}" style="padding-right:10px; padding-bottom:10px;"/></a>
</xsl:if>

<xsl:if test="item_image =''">
   <img  src="/{item_small_image}" style="padding-right:10px; padding-bottom:10px;"/>
</xsl:if>

</xsl:if>

</td>

<td>

<font size="3">

<b>Цена:

<!-- Валюта (дополнительное свойство) -->
<xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/currency"/>

<!-- Цена (дополнительное свойство) -->
<xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/price"/>


</b>

</font>

<p/>

</td>
</tr>
</table>

<br/>

<!-- Текст элемента информационного блока -->
<xsl:value-of disable-output-escaping="yes" select="item_text"/>

<br/>

</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>

   <span class="path_arrow">&#8594;</span>

   <a href="{/document/information_system/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:template>

</xsl:stylesheet>
#
Re: А возможно вернуть как нить ИС Каталог товаров?
ясно все - ничего сверхестественного там =)
понятное дело что если нужно больше чем просто представить каталог товаров - надо копать модуль интернет магазина.
ку
Авторизация