Прайс в интернет-магазине

Модератор
#
Re: Прайс в интернет-магазине
mj23 писал(а):
методом тыка получилось вывести Артикул и краткое описание

Не нужен метод тыка, XSL выводи то, что находится в XML. Откройте XML и посмотрите, как называются нужные Вам тэги, в которых размещена информация.

mj23 писал(а):
но так выводится название товара и под ним ссылка (путь), а как просто вывести ссылку в виде пути

Элементарно, переносим содержимое href просто в вывод информации:

<xsl:value-of disable-output-escaping="yes" select="{/shop/path}{fullpath}{path}/"/>
#
Re: Прайс в интернет-магазине
HostCMS писал(а):
Элементарно, переносим содержимое href просто в вывод информации:

и тогда вылазят ошибки
ПРЕДУПРЕЖЕДЕНИЕ: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: Invalid expression в файле /modules/Xsl/Xsl.class.php (строка 267)
ПРЕДУПРЕЖЕДЕНИЕ: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: compilation error: file  line 81 element value-of в файле /modules/Xsl/Xsl.class.php (строка 267)
ПРЕДУПРЕЖЕДЕНИЕ: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: xsl:value-of : could not compile select expression '{/shop/path}{fullpath}{path}/' в файле /modules/Xsl/Xsl.class.php (строка 267)
ПРЕДУПРЕЖЕДЕНИЕ: XSLTProcessor::transformToDoc() [xsltprocessor.transformtodoc]: No stylesheet associated to this object в файле /modules/Xsl/Xsl.class.php (строка 271)
Модератор
#
Re: Прайс в интернет-магазине
mj23,
показываем что написали ...
#
Re: Прайс в интернет-магазине
HostCMS писал(а):
показываем что написали …

...
<!-- Отображаем таблицу -->
      <table class="price_table_border">
         <tr bgcolor="#EEEEEE">
         <td align="center" height="25" valign="middle"><b>Наименование</b></td>
         <td align="center" height="25" valign="middle"><b>Описание</b></td>
         <td align="center" height="25" valign="middle"><b>Цена</b></td>
         <td align="center" height="25" valign="middle"><b>Ссылка</b></td>
         </tr>
         <xsl:apply-templates select="/shop/item">
            <xsl:with-param name="group_id" select="0"/>
         </xsl:apply-templates>
         <xsl:apply-templates select="//group"><xsl:sort select="@id" data-type="number" order="ascending"/></xsl:apply-templates>
      </table>
....
<!-- Товары -->
   <xsl:template match="/shop/item">
      <xsl:param name="group_id" />
      <xsl:if test="$group_id = @group">
         <tr>
            <td><xsl:value-of select="name"/></td>
            <td><xsl:value-of disable-output-escaping="yes" select="description" /></td>
            <td><xsl:value-of select="price"/>&#xA0;<xsl:value-of select="currency"/></td>
            <td><a href="{/shop/path}{fullpath}{path}/">
                  <xsl:value-of disable-output-escaping="yes" select="{/shop/path}{fullpath}{path}/"/>
            </a></td>
         </tr>
      </xsl:if>
   </xsl:template>
...


пробовал
вместо
<a href="{/shop/path}{fullpath}{path}/">
                  <xsl:value-of disable-output-escaping="yes" select="{/shop/path}{fullpath}{path}/"/>
            </a>

вставить только
<xsl:value-of disable-output-escaping="yes" select="{/shop/path}{fullpath}{path}/"/>

ошибка таже
Модератор
#
Re: Прайс в интернет-магазине
Конечно, глупость я написал нужно:
<a href="{/shop/path}{fullpath}{path}/"><xsl:value-of disable-output-escaping="yes" select="/shop/path"/><xsl:value-of disable-output-escaping="yes" select="fullpath"/><xsl:value-of disable-output-escaping="yes" select="path"/>/</a>
#
Re: Прайс в интернет-магазине
HostCMS, почти то что надо, сейчас выводит как
/forums/17/642/page-2/

а что еще добавить чтобы вывелось как
Модератор
#
Re: Прайс в интернет-магазине
mj23,
допишите адрес сайта вручную:
<a href="{/shop/path}{fullpath}{path}/">http://www.site.ru<xsl:value-of disable-output-escaping="yes" select="/shop/path"/><xsl:value-of disable-output-escaping="yes" select="fullpath"/><xsl:value-of disable-output-escaping="yes" select="path"/>/</a>
#
Re: Прайс в интернет-магазине
HostCMS, спасибо! то что надо
а у меня предложение сделайте функцию в админке "структура сайта - инет магазин - прайс" чтобы можно было поставить флажек на против (артикул, название, описание и тд) и это будет выводиться в прайсе удобно
спасибо за помощь
Модератор
#
Re: Прайс в интернет-магазине
mj23,
Пожалуйста.
#
Re: Прайс в интернет-магазине
подскажите почему у меня не выводятся модификации?
<!-- Отображаем таблицу -->
      <table class="price_table_border">
         <tr bgcolor="#EEEEEE">
         <td align="center" height="25" valign="middle"><b>Код</b></td>
         <td align="center" height="25" valign="middle"><b>Наименование</b></td>
         <td align="center" height="25" valign="middle"><b>Цена</b></td>
         </tr>
         <xsl:apply-templates select="/shop/item">
            <xsl:with-param name="group_id" select="0"/>
         </xsl:apply-templates>
         <xsl:apply-templates select="//group"><xsl:sort select="@id" data-type="number" order="ascending"/></xsl:apply-templates>
      </table>
      
      <!-- Строка ссылок на другие страницы каталога -->
      <p>
         <xsl:if test="count_items > 0 and items_on_page > 0">
            <xsl:call-template name="for">
               <xsl:with-param name="n" select="count_items div items_on_page"/>
               <xsl:with-param name="current_page" select="current_page"/>
            </xsl:call-template>
            <div style="clear: both"></div>
         </xsl:if>
      </p>
      
   </xsl:template>
   
   <!-- Группы товаров -->
   <xsl:template match="group">
      <xsl:variable name="attr_group_id"><xsl:value-of select="@id"/></xsl:variable>
      <xsl:if test="count(/shop/item[@group=$attr_group_id]) > 0">
         <tr>
            <td bgcolor="#EEEEEE" colspan="2">
               <strong><xsl:value-of select="name"/></strong>
            </td>
         </tr>
         <xsl:apply-templates select="/shop/item">
            <xsl:with-param name="group_id" select="@id"/>
         </xsl:apply-templates>
      </xsl:if>
   </xsl:template>
   
   <!-- Товары -->
   <xsl:template match="/shop/item">
      <xsl:param name="group_id" />
      <xsl:if test="$group_id = @group">
         <tr>
            <td><xsl:value-of disable-output-escaping="yes" select="marking_of_goods"/></td>
            <td><xsl:value-of select="name"/></td>
            <td><xsl:value-of select="format-number(price, '#')"/>&#xA0;<xsl:value-of select="currency"/></td>
            <xsl:apply-templates select="modifications/item"/>
         </tr>
      </xsl:if>
   </xsl:template>
   
   <!-- Модификации -->
   <xsl:template match="/modifications/item">
      <tr>
         <td><xsl:value-of select="name"/></td>
         <td><xsl:value-of select="format-number(price, '#')"/>&#xA0;<xsl:value-of select="currency"/></td>
      </tr>
      
   </xsl:template>
Авторизация