title из структуры сайта

#
title из структуры сайта
Не совсем понимаю, прочитал весь форум, столкнулся только с типовыми динамическими страницами и т.п., но вопрос мой вот в чём, сайт сделан на разделах, т.е. есть раздел О нас, в нём есть вложенные разделы Деканат и История, как сделать вывод title (и через какие средства) чтобы выводился полный путь, т.е. О нас / Деканат, а не просто Деканат, как это происходит через обычный шоутайтл?
заранее спасибо
Модератор
#
Re: title из структуры сайта
aNt1,
В макете добавляете PHP-код, который проверяет:
1. Если это статичная страница (получает данные о текущем узле и смотрит его тип), то
2. взять все разделы от текущего раздела до корня и построить по ним путь нужного вида.
#
Re: title из структуры сайта
Сделал всё через XLS шаблон, основанный на "Хлебных Крошках", всё вроде бы ничего, вот только остался один вопрос, как сделать так чтобы при выводе структуры сайта XSL игнорировал тэг <br> и не выводил его? Подскажите пожалуйста, это же предельно просто, но мне с моими знаниями XSL пока не справиться...

<?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">
         <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: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>
      
      /
      
      <!-- Показывать ссылку, или нет -->
      <xsl:choose>
         <xsl:when test="show_link = 0 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: title из структуры сайта
aNt1,
если тег есть, он будет выводиться. Можно использовать XSL-вставку для замены тега br на другой тег. Можете посмотреть http://xmlhack.ru/books/xslt/ch_11_07.html

Также можно на php просто убрать все теги из результат преобразования.
#
Re: title из структуры сайта
upd: с <br> разобрался, спасибо, а замены тега <img src="..."> нет аналогичной?
Модератор
#
Re: title из структуры сайта
aNt1,
А как у Вас там <img> оказались?
#
Re: title из структуры сайта
Прописались для нужд дизайна
Модератор
#
Re: title из структуры сайта
aNt1,
я не пойму связь нужд дизайна и хлебных крошек в TITLE. Поясните.
#
Re: title из структуры сайта
Нужды дизайна чтобы в разделах, которые содержат в себе подразделы это отображалось, поэтому в названиях таких разделов прописана картинка (маленькая стрелочка) чтобы было видно в меню какие разделы содержат в себе подразделы, а какие нет. А использование XSL для title страницы нужно для того, чтобы путь показывался полностью, кстати в техподдержке видимо думают, что люди совсем глупые, да я скопировал отдельно шаблон хлебных крошек, да я изменил его, да он выводит только текст, даже не ссылки, но текст основан на разделах и подразделах сайта (на структуре) и в title отображается всё отлично, кроме тега вставки картинки, который там нафиг не нужен. Так вот у меня вопрос как в XSl шаблоне просто убрать вывод тэга img src ну или сделать ему замену на другой...
Заранее спасибо
Модератор
#
Re: title из структуры сайта
aNt1 писал(а):
Нужды дизайна чтобы в разделах, которые содержат в себе подразделы это отображалось, поэтому в названиях таких разделов прописана картинка (маленькая стрелочка) чтобы было видно в меню какие разделы содержат в себе подразделы, а какие нет.

А зачем картинку вставлять в название узла структуры?
Почему бы не выводить это все на XSL?

aNt1 писал(а):
кстати в техподдержке видимо думают, что люди совсем глупые, да я скопировал отдельно шаблон хлебных крошек, да я изменил его, да он выводит только текст, даже не ссылки, но текст основан на разделах и подразделах сайта (на структуре) и в title отображается всё отлично, кроме тега вставки картинки, который там нафиг не нужен.

В техподдержке опираются только на те данные, что Вы прислали. Угадывать, внесли Вы картинки в XSL или вставили прямо в название поддержка не будет.

aNt1 писал(а):
Так вот у меня вопрос как в XSl шаблоне просто убрать вывод тэга img src ну или сделать ему замену на другой…

Чтобы совсем просто вывод данных вставьте в:
ob_start();

// Здесь Ваш код

echo strip_tags(ob_get_clean());
Авторизация