Логотип

Документация по макросам и шаблонам UMI.CMS

seo getRelCanonical()

Название

%seo getRelCanonical()% — Возвращает ссылку на каноническую страницу.

Параметры: seo getRelCanonical([template = 'default'], pageId)

template

Имя шаблона, по которому следует вывести меню. В XSLT-шаблонизаторе игнорируется, можно указать любое значение.

pageId

Идентификатор страницы, для которой требуется получить каноническую ссылку.

Описание

Макрос возвращает ссылку на каноническую страницу для страницы с идентификатором pageId.

Для обычной страницы канонической ссылкой является ссылка на нее, для виртуальной копии - ссылка на оригинальную страницу.

	$result = $this->macros('seo', 'getRelCanonical', ['default', $variables['@pageId']]);
	$canonicalLink = $result['@link'];

Возвращает ссылку на каноническую страницу.

Пример вызова

udata://seo/getRelCanonical/void/123

XML-ответ UData

<udata xmlns:xlink="http://www.w3.org/TR/xlink" link="http://test.ru/alt/name/" module="seo" method="getRelCanonical" generation-time="0.026547"/>

Элементы и атрибуты

Ссылка на страницу находится в атрибуте @link узла udata.

Пример xslt-шаблона для вывода многоуровневого меню

<xsl:if test="result/@pageId">
<xsl:variable name="relCanonical" select="document(concat('udata://seo/getRelCanonical/void/', result/@pageId))/udata/@link" />
<xsl:if test="$relCanonical">
<link rel="canonical">
<xsl:attribute name="href">
<xsl:value-of select="$relCanonical" />
</xsl:attribute>
</link>
</xsl:if>
</xsl:if>

Вывод канонической ссылки осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, в этом случае для вывода свойства будет использован шаблон по умолчанию — default.tpl.

Пример вызова

%seo getRelCanonical('default', %pid%)%

Используемые шаблоны

Макрос оперирует шаблонами, находящимися в каталоге /tpls/seo/. 

Используемые блоки шаблона

template_block

Выводит обрамление (html тег link с соответствующим атрибутом rel) канонической ссылки.

%link%

Выводит каоническую ссылку.

template_block_empty

Выводит заданный контент, если не удалось сформировать каноническую ссылку, например если макросу передан идентификатор несуществующей страницы.

Примеры шаблона

В папке /tpls/seo создайте файл default.tpl и поместите в него следующий код:

<?php
$FORMS = Array();

$FORMS['template_block'] = <<<END
<link rel="canonical" href="%link%"/>			
END;

$FORMS['template_block_empty'] = <<<END
END;
?>