Подскажите как вывести коректный линк

#
Подскажите как вывести коректный линк
в магазине  формируеться линк на ценовую систему
в линке должны присутсвовать определенные слова для вывода цены на конкретный товар
реалезовал данные поля через дополнительные свойства
как правильно вставить их в код

пробовал так
<a href="http://test.com.ua/test.php?xx_=1&amp;id=122&amp;search_={item_propertys/item_property[@xml_name = 'id_search']/value}" TARGET="_blank">

в итоге в коде получаю
<a href="http://test.com.ua/test.php?xx_=1&amp;id=122&amp;search_=" TARGET="_blank">
  
а нужно

<a href="http://test.com.ua/test.php?xx_=1&amp;id=122&amp;search_=Sony+Ericsson+K750" TARGET="_blank">

вместо Sony+Ericsson+K750  нужно вставить значение из доп свойства инфосистеммы
Модератор
#
Re: Подскажите как вывести коректный линк
viptech писал(а):
в магазине  формируеться линк на ценовую систему

Цитата из инструкции:
Цитата:
Свойства товара

...

Для внедрения в XSL значений свойств используютс следующие конструкции:
Значение поля:
<xsl:value-of select="property[@xml_name = 'FIELD_NAME']/value"/>
Для большой картинки:
<xsl:value-of select="property[@xml_name = 'FIELD_NAME']/file_path"/>
Для малой картинки:
<xsl:value-of select="property[@xml_name = 'FIELD_NAME']/small_image/file_path"/>
#
Re: Подскажите как вывести коректный линк
вот такое вот получаю когда ввожу цитату из инструкции
это я и раньше пробовал все дело в том что в теле линка такую запись вставлять нельзя
получаеться несоответсвие структуре xml документа
так как по примеру из вашей цитаты надо вводить так
<a href="http://test.com.ua/test.php?xx_=1&amp;id=122&amp;search_=<xsl:value-of disable-output-escaping="yes" select="id_search"/>" TARGET="_blank">

ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Unescaped '<' not allowed in attributes values in Entity, line: 156 в файле /var/www/vhosts/planetatele.com/httpdocs/modules/Xsl/Xsl.class.php (строка 178)
   ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: attributes construct error in Entity, line: 156 в файле /var/www/vhosts/planetatele.com/httpdocs/modules/Xsl/Xsl.class.php (строка 178)
   ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Couldn't find end of Start Tag a line 156 in Entity, line: 156 в файле /var/www/vhosts/planetatele.com/httpdocs/modules/Xsl/Xsl.class.php (строка 178)
   ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Opening and ending tag mismatch: span line 155 and a in Entity, line: 157 в файле /var/www/vhosts/planetatele.com/httpdocs/modules/Xsl/Xsl.class.php (строка 178)
   ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Opening and ending tag mismatch: td line 153 and span in Entity, line: 158 в файле /var/www/vhosts/planetatele.com/httpdocs/modules/Xsl/Xsl.class.php (строка 178)
   ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Opening and ending tag mismatch: tr line 12 and td in Entity, line: 161 в файле /var/www/vhosts/planetatele.com/httpdocs/modules/Xsl/Xsl.class.php (строка 178)
   ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Opening and ending tag mismatch: table line 12 and tr in Entity, line: 161 в файле /var/www/vhosts/planetatele.com/httpdocs/modules/Xsl/Xsl.class.php (строка 178)
   ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Opening and ending tag mismatch: template line 11 and table in Entity, line: 161 в файле /var/www/vhosts/planetatele.com/httpdocs/modules/Xsl/Xsl.class.php (строка 178)
   ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Opening and ending tag mismatch: stylesheet line 3 and template in Entity, line: 162 в файле /var/www/vhosts/planetatele.com/httpdocs/modules/Xsl/Xsl.class.php (строка 178)
   ПРЕДУПРЕЖЕДЕНИЕ: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Extra content at the end of the document in Entity, line: 164 в файле /var/www/vhosts/planetatele.com/httpdocs/modules/Xsl/Xsl.class.php (строка 178)
Модератор
#
Re: Подскажите как вывести коректный линк
вместо указанного
viptech писал(а):
<a href="http://test.com.ua/test.php?xx_=1&amp;id=122&amp;search_=<xsl:value-of disable-output-escaping="yes" select="id_search"/>" TARGET="_blank">

правильно будет
<a href="http://test.com.ua/test.php?xx_=1&amp;id=122&amp;search_={id_search}" TARGET="_blank">


Соответственно если нужно значение св-ва, то
<a href="http://test.com.ua/test.php?xx_=1&amp;id=122&amp;search_={property[@xml_name = 'FIELD_NAME']/value}" TARGET="_blank">
#
Re: Подскажите как вывести коректный линк
<a href="http://test.com.ua/test.php?xx_=1&amp;id=122&amp;search_={property[@xml_name = 'id_search']/value}" TARGET="_blank">Все цены на Sony Ericsson</a>
вставляю код вот так ошибки не происходит но и не заполняеться линк
на выходе получаю <a href="http://test.com.ua/test.php?xx_=1&amp;id=122&amp;search_="  вот такой линк
не пойму где грабли (доп  свойство у товара в магазине есть )
Список свойств товара Интернет-магазина "Демонстрационный магазин"

Добавить свойство товара  // Интернет-магазин "Демонстрационный магазин" ID   Порядок сортировки   Название   Наименование xml тега   Действие
2      id_search   id_search     

Пересортировать
Модератор
#
Re: Подскажите как вывести коректный линк
покажите XML
#
Re: Подскажите как вывести коректный линк
<?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="/shop">
   <xsl:apply-templates select="item"/>
</xsl:template>
   
<xsl:template match="item">
<table><tr><td align="top" width="550">
   
      <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>
   

   <div style="float: left">
   <h1><xsl:value-of disable-output-escaping="yes" select="name"/></h1>
   </div>

   <div style="clear: both"></div>
   
   <!-- Информация об ошибках -->
   <xsl:variable name="error_code" select="/shop/error" />
   
   <xsl:if test="$error_code != 0">
      <div id="error"><b>Внимание!</b> Неправильно введен код подтвержения!</div>   
   </xsl:if>
   
   <xsl:if test="not(/shop/error/node()) and /shop/comment_is_active/node()">
      <!-- Информация о выполненном действии -->
      <div style="border: 1px solid #dadada; padding: 10px; width: 400px">
      <b>
      <xsl:choose>
      <xsl:when test="/shop/comment_is_active = '0'">
         Комментарий успешно добавлен и будет опубликован после проверки модератором!
      </xsl:when>
      <xsl:otherwise>
         Комментарий успешно добавлен и опубликован!
      </xsl:otherwise>
      </xsl:choose>
      </b>
      </div>   
   </xsl:if>
   
   <!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
   <xsl:variable name="parent_group_id" select="@current_group_id"/>

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

   <div>
      <!-- Изображение для товара, если есть -->
      <xsl:if test="small_image != ''">
         <div style="float: left; width: {small_image/@width}px; margin: 0px 10px 10px 0px; color: #aaaaaa;">
         <a href="JavaScript:void(0)" onclick="ShowImgWindow('{name}','{image}', {image/@width}, {image/@height})"><img src="{small_image}" style="border: 1px solid #000000; margin: 0px 5px 5px 0px" /></a>
         <br/>Нажмите на изображение для увеличения (откроется в новом окне)
         </div>
      </xsl:if>
      
   
      <p>
      </p>
      
         <!-- Описание товара -->
   <!-- <p><xsl:value-of disable-output-escaping="yes" select="description"/></p> -->

   <p><xsl:value-of disable-output-escaping="yes" select="text"/></p>
      
      <div style="clear: both;"></div>
      
   </div>

   <!-- Выводим список дополнительных свойств -->
   <xsl:apply-templates select="//property"/>
   
   <!-- Отзывы о товаре -->
   <xsl:if test="comments/grade_count >= 0">
      <h2>Отзывы о товаре</h2>
      <xsl:apply-templates select="comments/comment"/>
   </xsl:if>
   
   <div style="clear: both">
   <h2>Ваш комментарий</h2>
   </div>
   
   <form method="post" action="./">
   <table cellspacing="5">
   <tr>
      <td>Имя пользователя</td>
      <td>
         <input type="text" name="shop_comment_user_name" style="width:25em;" value="{/shop/shop_comment_user_name}">
         </input>
      </td>
   </tr>
   <tr>
      <td>Тема комментария</td>
      <td>
         <input type="text" name="shop_comment_subject" style="width:25em;" value="{/shop/shop_comment_subject}" />
      </td>
   </tr>
   <tr>
      <td>Текст комментария</td>
      <td>
         <textarea name="shop_comment_text" style="width:25em;">
         <xsl:value-of disable-output-escaping="yes" select="/shop/shop_comment_text"/>
         </textarea>
      </td>
   </tr>
   <tr>
      <td>Код подтверждения</td>
      <td>
      <div style="float: left">
         <img style="border: 1px solid #BAB188" src="/captcha.php?get_captcha={captcha_key}" title="Введите число изображенное на картинке" alt="CAPTCHA" />
      </div>
      <div style="float: left; margin: 9px 0px 0px 10px;">
         <input type="hidden" name="captcha_key" value="{captcha_key}" />
         <input type="hidden" name="shop_items_catalog_item_id" value="{@id}" />
         <input style="width:86px;" type="text" name="captcha_keystring" />
      </div>
      </td>
   </tr>
   <tr>
      <td></td>
      <td>
         <input name="submit_comment" value="Добавить отзыв" type="submit"/>
      </td>
   </tr>   
   </table>
   </form>
</td><td width="200" valign="top">

<span ID="nadaviSpan">
<a href="http://test.com.ua/test.php?xx_=1&amp;id=122&amp;search_={property[@xml_name = 'id_search']/value}" TARGET="_blank">
Все цены на Sony Ericsson</a>
</span>


</td></tr></table>
</xsl:template>
<!-- Шаблон для вывода звездочек (оценки) -->
<xsl:template name="for">
   <xsl:param name="i" select="0"/>
   <xsl:param name="n"/>
   
   <input type="radio" name="shop_comment_grade" value="{$i}" id="id_shop_comment_grade_{$i}">
      <xsl:if test="/shop/shop_comment_grade = $i">
         <xsl:attribute name="checked"> </xsl:attribute>
      </xsl:if>
   </input>
   &#xa0;<label for="id_shop_comment_grade_{$i}">
   <xsl:call-template name="show_average_grade">
      <xsl:with-param name="grade" select="$i"/>
      <xsl:with-param name="const_grade" select="5"/>
   </xsl:call-template>   
   </label><br />   
   <xsl:if test="$n > $i and $n > 1">
      <xsl:call-template name="for">
         <xsl:with-param name="i" select="$i + 1"/>
         <xsl:with-param name="n" select="$n"/>
      </xsl:call-template>   
   </xsl:if>
</xsl:template>
<!-- Шаблон для отзывов -->
<xsl:template match="comments/comment">
   <b><xsl:value-of select="subject"/></b>
   &#xA0;(<xsl:value-of select="user_name"/>
   <xsl:value-of select="date_time"/>
   <div style="background: #F5F5F7; padding: 3px;">
   <xsl:value-of select="text"/><br />
   </div><br />
</xsl:template>

<!-- Шаблон для скидки -->
<xsl:template match="discount">
   <br/>
   <xsl:value-of disable-output-escaping="yes" select="name"/>
   &#xA0;<xsl:value-of disable-output-escaping="yes" select="value"/>%
</xsl:template>

<!-- Шаблон вывода дополнительных свойств -->
<xsl:template match="property">
   <p>
   <b><xsl:value-of disable-output-escaping="yes" select="name"/>:</b>&#xA0;<xsl:value-of disable-output-escaping="yes" select="value"/>
   </p>
</xsl:template>

<xsl:template match="tying/item">

<div style="clear: both">
   <p>
   <a href="/shop/{fullpath}{path}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
   </p>
   
   <!-- Изображение для товара, если есть -->
   <xsl:if test="small_image != ''">
      <a href="{/shop/path}{fullpath}{path}/"><img src="{small_image}" align="left" style="border: 1px solid #000000; margin: 0px 5px 5px 0px" /></a>
   </xsl:if>
   
   <p><xsl:value-of disable-output-escaping="yes" select="description"/></p>

   <xsl:if test="producer/name != ''">
      <br/>Производитель: <xsl:value-of disable-output-escaping="yes" select="producer/name"/>
   </xsl:if>
</div>

</xsl:template>

<!-- ======================================================== -->
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<!-- ======================================================== -->

<xsl:template match="group" mode="goup_path">
   <xsl:param name="parent_id" select="@parent"/>
   
   <!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
   <xsl:param name="parent_group_id" select="/shop/@current_group_id"/>

   <xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path"/>

   <xsl:if test="@parent=0">
      <a href="{/shop/path}"><xsl:value-of disable-output-escaping="yes" select="/shop/name"/></a>
   </xsl:if>

   <img src="/images/arrow_path.gif" class="arrow_path"/>

   <!-- ============================================================================================== -->
   <!-- Если ID группы, для которой выводим список элементов, равен ID текущей группы - выводим жирным -->
   <!-- ============================================================================================== -->
   <xsl:if test="$parent_group_id=@id">
      <a href="{/shop/path}{fullpath}"><b><xsl:value-of disable-output-escaping="yes" select="name"/></b></a>
   </xsl:if>

   <!-- ============================ -->
   <!-- Иначе выводим обычную ссылку -->
   <!-- ============================ -->
   <xsl:if test="$parent_group_id!=@id">
      <a href="{/shop/path}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
   </xsl:if>

</xsl:template>

</xsl:stylesheet>
#
Re: Подскажите как вывести коректный линк
не могу віделить почему то нужный код жирным
Модератор
#
Re: Подскажите как вывести коректный линк
это XSL, как посмотреть XML см. "Основные принципы работы с XML/XSL" в документации
#
Re: Подскажите как вывести коректный линк
а подскажите тогда как его вывести на екран
по идеи стандартный магазина пока ничего не меняли
Авторизация