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

#
Re: Хлебные крошки
В XML-файле, генерирумом для структуры, каждый узел структуры имеет тэг <link>, содержащий url этого узла стуктуры. Для главной страницы значение этого тэга будет просто слэш "/". Добавьте проверку содержимого этого тэга каждого узла в XSL-шаблон для хлебных крошек. Если содержимое тэга <link> будет "/", тогда не строить крошки.
#
Re: Хлебные крошки
А можно поподробнее, xml я еще пока не изучил.
Заранее спасибо
#
Re: Хлебные крошки
Если в качестве XSL-шаблона для хлебных крошек Вы использовали приведенный в этой теме, то добавить проверку можно так:
<a href="/">Главная</a>
  
<xsl:if test="//structure[@id = $current_structure_id]/link != '/'">
      <span class="path_arrow">&#8594;</span>
      <!-- Выбираем все узлы структуры всех уровней вложенности -->
      <xsl:apply-templates select="//structure[@id = $current_structure_id]"/>
</xsl:if>
#
Re: Хлебные крошки
Спасибо огромное
#
Re: Хлебные крошки
пожалуйста
#
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 method="html" indent="yes" encoding="Windows-1251"/>

<!-- Хлебные крошки -->

<xsl:template match="/document">

   <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
   <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
   <span style="font-size:10px;">
  
    <xsl:if test="count(//structure[@id = $current_structure_id]) > 0">

     <!-- Если не на главной, то показываем Хлебные крошки -->  
     <xsl:if test="//structure[@id = $current_structure_id]/link != '/'">
          <a href="/">Главная</a>
          <img hspace="4" src="/images/pointer.gif" />  <!--span class="path_arrow">&#8594;</span-->
          <!-- Выбираем все узлы структуры всех уровней вложенности -->
          <xsl:apply-templates select="//structure[@id = $current_structure_id]"/>
       </xsl:if>
   </xsl:if>

</span>
</xsl:template>

<xsl:template match="structure">

   <!-- Показывать ссылку, или нет -->
   <xsl:if test="show_link=1">
  
      <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
      <xsl:variable name="parent_structure_id" select="id_parent"/>
  
      <!-- Выбираем все узлы структуры всех уровней вложенности -->
      <xsl:apply-templates select="//structure[@id = $parent_structure_id]"/>
      
      <!-- Определяем адрес ссылки -->
      <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>
  
      <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
      <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
  
      <!-- Расчитываем размер отступа -->
      <xsl:variable name="padding" select="level * 10"/>
  
      <xsl:if test="$parent_structure_id != 0">
         <span class="path_arrow">&#8594;</span>
      </xsl:if>
  
      <a href="{$link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>

   

      


<!--xsl:choose>
<xsl:when test="$current_structure_id != @id">
<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:if>
  
   <!-- Если не показывать ссылку - выводим просто имя ссылки -->
   <xsl:if test="show_link=0">
      <xsl:value-of disable-output-escaping="yes" select="name"/>
   </xsl:if>

</xsl:template>

</xsl:stylesheet>

Всё выводится хорошо, только до конечного элемента структуры, а названия конечного элемента нет!
Например у нас следующая структура:
Главная - Наши работы - Видеоролики - Видеоролик1

Наши работы - это информационная система
Видеоролики - это группа
Видеоролик1 - это элемент

Вот этот шаблон выводит только до "Наши работы", т.е информационной системы, а дальше путь как вывести? Я не силен в xsl поэтому можно ли получить наглядный пример.
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
#
Re: Хлебные крошки
Получается, что у Вас не выводятся группы инфосистем и элементы. Поэтому вопрос: Вы при вызове метода показа хлебных крошек передаете параметры, разрешающие попадание инфогрупп и инфоэлементов в структуру сайта? Т.е. должно быть так:
$Structure->ShowStructure(false, "ХлебныеКрошки", array('show_items' => true, 'show_groups' => true));
#
Re: Хлебные крошки
Не отображается всё равно. Исправил как вы написали. Инфосистемы всё равно нет. Ни групп ни элементов групп.
Интеграция дизайна, доработка кода системы, техническое обслуживание сайтов на HostCMS
#
Re: Хлебные крошки
высылайте данные доступа к разделу администрирования, адрес сайта и адрес страницы с ошибкой
#
Re: Хлебные крошки
Все время как то не требовалось (на сайтах заказчиков) ставить хлебные крошки, а тут на одном сайте поставил, так выяснилось что показывается только информационанная система и дальше (группы) не показываются, и на сколько я понял по постам в этой теме, в магазине хлебные крошки не работают, могли бы вы подправить, то ч то здесб выложено до полной работоспособности?
С уважением Антон
Делаю сайты на HostCMS! Подробнее по почте anton.yurzanov@gmail.com
Авторизация