Показ навигационной цепочки ("Хлебные крошки")

"Хлебные крошки" являются элементом навигации по сайту и предназначены для указания пользователю текущего месторасположения на сайте.

Для вывода навигационной цепочки можно использовать в макете сайта следующий код:

<?php
// Вывод строки навигации
$Structure_Controller_Breadcrumbs = new Structure_Controller_Breadcrumbs(
		Core_Entity::factory('Site', CURRENT_SITE)
	);
$Structure_Controller_Breadcrumbs
	->xsl(
		Core_Entity::factory('Xsl')->getByName('ХлебныеКрошки')
	)
	->show();
?>

XSL-шаблон "Хлебные крошки":

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:hostcms="https://www.hostcms.ru/"
	exclude-result-prefixes="hostcms">
	<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" 
	doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" 
	encoding="utf-8" indent="yes" method="html" 
	omit-xml-declaration="no" version="1.0" media-type="text/xml"/>

	<!-- Хлебные крошки -->
	<xsl:template match="/site">
		<xsl:if test="count(*[@id]) > 0">
			<a href="/">Главная</a>
			<xsl:apply-templates select="*[@id]" />
		</xsl:if>
	</xsl:template>

	<xsl:template match="*">

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

		<span><xsl:text> > </xsl:text></span>

		<!-- Показывать ссылку? -->
		<xsl:choose>
			<xsl:when test="(show = 1 or active/node() and active = 1) 
				and count(*[@id]) > 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:apply-templates select="*[@id][link/node() or url/node()]" />

	</xsl:template>
</xsl:stylesheet>

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.

Комментарии

  • Без темы

    Подскажите при использовании этого кода у меня получается только: Главная/интернет магазин
    А как сделать, что бы было: Главная/раздел/товар?

    07.10.2016 10:44:48
    cheloveki
    cheloveki
  • Без темы

    Подскажите при использовании этого кода у меня получается только: Главная/интернет магазин
    А как сделать, что бы было: Главная/раздел/товар?

    07.10.2016 09:52:26
    cheloveki
    cheloveki
  • Без темы

    Здравствуйте.
    А как вывести хлебные крошки в товары? А то там только сайт\директориямагазина и все.

    04.07.2016 15:23:06
    Assistence
    Assistence
  • Хлебные крошки HostCMS v. 6

    Хлебные крошки установил, а как убрать показ хлебных крошек на главной странице сайта? HostCMS v. 6

    09.10.2013 22:44:40
    mail-vi
    mail-vi

    Не показывать хлебные крошки через php на главной

    if (Core_Page::instance()->structure->path!='/') {
    // отображение хлебных крошек
    }

    19.03.2014 21:30:12
    dalph
    dalph