$this->macros('banners', 'insert', array('homepage'))
Пример вызова
udata://banners/insert/(top_banner)
XML-ответ UData
Баннер-картинка или флеш-баннер:
<udata id="27275" module="banners" method="insert" generation-time="0.022291">
<banner
type="image"
width="150"
height="128"
target="_blank"
xlink:href="uobject://27275">
<source>/images/cms/data/hamster_1.jpg</source>
<alt>альтернативный текст</alt>
<href>http://localhost/podderzhka/</href>
</banner>
</udata>
Html-баннер:
<udata id="27275" module="banners" method="insert" generation-time="0.024639">
<banner type="html" xlink:href="uobject://27275">
<source>содержимое html-баннера</source>
<alt>альтернативный текст</alt>
<href>http://localhost/podderzhka/</href>
</banner>
</udata>
Элементы и атрибуты
Атрибут id
элемента udata
может быть использован для идентификации баннера.
<banner>
Элемент, описывающий баннер.
- @type
-
Тип баннера: image, swf или html.
- @width
-
Ширина картинки или флеш-ролика.
- @height
-
Высота картинки или флеш-ролика.
- @target
-
Значение атрибута определяется галкой "Открывать в новом окне".
- @xlink:href
-
Ссылка Uobject на баннер.
<source>
Элемент описывающий источник содержимого баннера: ссылка на картинку или флеш-ролик, либо значение wysivyg-поля содержимое html-баннера.
<alt>
Альтернативный текст баннера.
<href>
Ссылка с баннера.
Примеры использования
Вставим в шаблоне разметки в место, где мы хотим вывести баннер, следующую инструкцию:
<div id="hat">
...
<xsl:apply-templates select="document('udata://banners/insert/top_banner/')/udata/banner" />
...
</div>
Место с идентификатором top_banner
должно быть определено в модуле "Баннеры", во вкладке "Расположение в шаблоне".
Теперь, например, для баннера с картинкой мы можем определить следующий шаблон:
<xsl:template match="banner[@type='image']" >
<xsl:variable name="banner-url" select="concat('/banners/go_to/', ../@id, '/')" />
<div class="top_banner">
<a href="{$banner-url}" title="{./alt}">
<xsl:if test="./@target">
<xsl:attribute name="target">
<xsl:value-of select="./@target" />
</xsl:attribute>
</xsl:if>
<img src="{./source}" alt="{./alt}" width="{./@width}" height="{./@height}" />
</a>
</div>
</xsl:template>
Замечание
Ссылка вида /banners/go_to/id_баннера/
используется для того, чтобы система могла считать переходы по баннеру.
Пример вызова
%banners insert('top_banner', 1)%
Название
%banners insert()% — Выводит баннер, соответствующий указанному рекламному месту.
Параметры: %banners insert(banner_place [, macros_id = '0', showAll = 'false', currentPageId = 'false'] )%
- banner_place
-
Этот параметр указывает, баннеры какого рекламного места использовать. В качестве значения для этого параметра используется поле «Идентификатор в шаблоне» в редактировании расположения баннера.
- macros_id
-
Этот параметр служит для того, чтобы результат работы синтаксически одинаковых макросов %banners insert('sample_place')% не кэшировался. Для повышения производительности, результаты работы синтаксически одинаковых макросов кэшируются, и это может помешать при выводе, например, двух случайных баннеров одного и того же рекламного места. Укажите в таких макросах различные параметры macros_id.
- showAll
-
Этот параметр позволяет вывести все баннеры, назначенные на указанное баннерное место. Только для XSLT-шаблонизатора.
- currentPageId
-
Этот параметр указывает идентификатор страницы, для которой следует выводить баннер.
Описание
Этот макрос вставляет баннеры, соответствующие расположению banner_place. Баннер, который необходимо вывести, выбирается, исходя из настроек показа баннера, которые задаются в редактировании. Если для этого места не подходит ни один баннер, макрос ничего не выведет.
Внимание: Макрос выводит только баннеры с подходящей датой показа. Пустая дата начала показа не является подходящей.
Если есть необходимость установить в административном разделе ссылку для перехода по баннеру и считать статистику по флеш-баннерам, файл баннера должен быть устроен особым образом. Подробнее об этом читайте в статье «Задание ссылки для флеш-баннера в админке и учет статистики переходов по ней»