Хлебные крошки

#
Re: Хлебные крошки
Еще раз подниму эту тему, так как ХлебныеКрошки для инфосистемы и магазина разделены. Как сделать так, чтобы Крошки выводились в одном месте на сайте, а не в разных?
Нужна реклама в интернете? - http://www.2wind.ru/
#
Re: Хлебные крошки
Возник вопросик, вроде раньше н задавался.

Если я нахожусь в еденице информационного элемента (в полной новости например), то в хлебных крошках выводится:
Главная - Новости - Название_новости

Можно ли как-то исключить "название_новости".
В шаблоне, где вывожу, если меняю
$property['show_items'] = true;

на
$property['show_items'] = false;

то "название_новости" не выводится, но тогда при нахождении в новостях не выводится "Новости", а они как раз нужны.

Можно ли исключить название еденицы инфоэлемента при нахождении в нем?
Модератор
#
Re: Хлебные крошки
Qualis,
Думаю лучше внести изменения в XSL-шаблон хлебных крошек.
#
Re: Хлебные крошки
Последний вопрос и для меня актуален
Модератор
#
Re: Хлебные крошки
orphelin,
Последний ответ Вам не подошел?
#
Re: Хлебные крошки
извиняюсь, случайно сообщение не туда отправил.
вопрос по этой теме:
в магазине хлебные крошки включают в себя ссылку на главную и на магазин (адреса "/" и "/shop/"
пробовал сначала исключить главную из крошек методом описанным пару страниц назад:
добавил проверку в шаблоне:
было
<!-- Выбираем все узлы структуры всех уровней вложенности -->
<xsl:apply-templates select="parent::structure"/>


заменил на:
<xsl:if test="//structure[@id = $current_structure_id]/link != '/'">
<span class="path_arrow">&#8594;</span>
<!-- Выбираем все узлы структуры всех уровней вложенности -->
<xsl:apply-templates select="parent::structure"/>
</xsl:if>


и XML выдает ошибку:
ПРЕДУПРЕЖЕДЕНИЕ: XSLTProcessor::transformToDoc() [xsltprocessor.transformtodoc]: runtime error: file /usr/home/***/ line 37 element if в файле /usr/home/*/modules/Xsl/Xsl.class.php (строка 270)

line 37 это и есть <xsl:if test="//structure[@id = $current_structure_id]/link != '/'">

что я не правильно делаю?
Модератор
#
Re: Хлебные крошки
orphelin,
на первый взгляд все правильно, покажите целиком XSL-шаблон, при публикации не забывайте про BB-теги CODE
#
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="/document">

      <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
      <xsl:variable name="current_structure_id">
         <xsl:choose>
            <xsl:when test="item/node()">item_<xsl:value-of select="item"/></xsl:when>
            <xsl:when test="group/node()">group_<xsl:value-of select="group"/></xsl:when>
            <xsl:otherwise>
               <xsl:value-of select="structure/current_structure_id"/>
            </xsl:otherwise>
         </xsl:choose>
      </xsl:variable>

      <xsl:if test="count(//structure[@id = $current_structure_id]) &gt; 0">
         <a href="/"><xsl:value-of disable-output-escaping="yes" select="structure[link = '/']/name"/></a>
         <xsl:apply-templates select="//structure[@id = $current_structure_id]">
            <xsl:with-param name="is_last_item" select="1"/>
         </xsl:apply-templates>
      </xsl:if>
   </xsl:template>

   <xsl:template match="structure">

      <xsl:param name="is_last_item" select="0"/>

      <!-- Выбираем все узлы структуры всех уровней вложенности -->
<!--       <xsl:apply-templates select="parent::structure"/> -->
      

       <xsl:if test="//structure[@id = $current_structure_id]/link != '/'">
        <span class="path_arrow">&#8594;</span>
         <!-- Выбираем все узлы структуры всех уровней вложенности -->
         <xsl:apply-templates select="parent::structure"/>
      </xsl:if>

      <!-- Определяем адрес ссылки -->
      <xsl:variable name="link">
         <xsl:choose>
            <!-- Если внешняя ссылка -->
            <xsl:when test="is_external_link=1">
               <xsl:value-of disable-output-escaping="yes" select="is_external_link"/>
            </xsl:when>
            <!-- Иначе если внутренняя ссылка -->
            <xsl:otherwise>
               <xsl:value-of disable-output-escaping="yes" select="link"/>
            </xsl:otherwise>
         </xsl:choose>
      </xsl:variable>

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

      <!-- Показывать ссылку, или нет -->
      <xsl:choose>
         <xsl:when test="show_link = 1 and $is_last_item = 0">

            <a href="{$link}">
               <xsl:value-of disable-output-escaping="yes" select="name"/>
            </a>
         </xsl:when>
         <!-- Если не показывать ссылку - выводим просто имя ссылки -->
         <xsl:otherwise>
            <xsl:value-of disable-output-escaping="yes" select="name"/>
         </xsl:otherwise>
      </xsl:choose>
   </xsl:template>
</xsl:stylesheet>
Модератор
#
Re: Хлебные крошки
Синтаксической ошибки не вижу, могу предположить, что в
<xsl:template match="structure">
не определен $current_structure_id, который выше определяется в
<xsl:template match="/document">
#
Re: Хлебные крошки
похоже, что все-таки определен, т.к. такой код:
   <xsl:template match="/document">

      <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
      <xsl:variable name="current_structure_id">
         <xsl:choose>
            <xsl:when test="item/node()">item_<xsl:value-of select="item"/></xsl:when>
            <xsl:when test="group/node()">group_<xsl:value-of select="group"/></xsl:when>
            <xsl:otherwise>
               <xsl:value-of select="structure/current_structure_id"/>
            </xsl:otherwise>
         </xsl:choose>
      </xsl:variable>

      <xsl:if test="count(//structure[@id = $current_structure_id]) &gt; 0">
      111
         <a href="/"><xsl:value-of disable-output-escaping="yes" select="structure[link = '/']/name"/></a>
         <xsl:apply-templates select="//structure[@id = $current_structure_id]">
            <xsl:with-param name="is_last_item" select="1"/>
         </xsl:apply-templates>
      </xsl:if>
   </xsl:template>


в итоге выводит

Главная &#8594; Продукция &#8594; 111 ИНЖЕНЕРНАЯ САНТЕХНИКА
Авторизация