Логотип

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

Пример использования

$data = $this->macros('system', 'getLangsList');
$items = data['items'];

В items будет содержаться массив информации о языковых версиях сайта.

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

udata://system/getLangsList

XML-ответ UData

<udata module="system" method="getLangsList" generation-time="0.018271">
  <items>
    <item id="1" prefix="ru" is-default="1">Русский</item>
    <item id="7" prefix="en">English</item>
  </items>
</udata>

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

<items>

Ветвь содержащая список элементов <item> — языковые версии сайта.

<item>

Элемент описывающий языковую версию сайта. Содержимое элемента — название языковой версии.

id

Идентификатор языковой версии сайта.

prefix

Языковой префикс.

is-default

Этот атрибут указывает, какая именно версия является версией по умолчанию.

Примеры использования

При помощи этого макроса можно реализовать механизм определения переменной, использующийся в TPL-макросе %pre_lang%:

<xsl:variable name="lang" select="/result/@lang" />

<xsl:variable 
 name="default_lang"
 select="document('udata://system/getLangsList')/udata/items/item[@is-default = '1']/@prefix" />

<xsl:variable name="pre_lang">
  <xsl:if test="$lang != $default_lang">
    /<xsl:value-of select="$lang"/>
  </xsl:if>
</xsl:variable>

Теперь можно использовать переменную $pre_lang в запросах по внутренним протоколам. В случае, если открыта страница языковой версии по умолчанию $pre_lang будет равна пустому значению. В остальных случаях $pre_lang будет равна языковому префиксу вида "/префикс".

Не используется. Используйте макрос %pre_lang%.

Название

%system getLangsList()% — Выводит список существующих языковых версий сайта.

Описание

Макрос существует только в XSLT-шаблонизаторе. Возвращает в формате UData список существующих языковых версий сайта, с указанием версии по умолчанию.