Логотип

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

banners insert()

Название

%banners insert()% — Выводит баннер, соответствующий указанному рекламному месту.

Параметры: %banners insert(banner_place [, macros_id = '0', bList = 'false', current_element_id = 'false'] )%

banner_place

Этот параметр указывает, баннеры какого рекламного места использовать. В качестве значения для этого параметра используется поле «Идентификатор в шаблоне» в редактировании расположения баннера.

macros_id

Этот параметр служит для того, чтобы результат работы синтаксически одинаковых макросов %banners insert('sample_place')% не кэшировался. Для повышения производительности, результаты работы синтаксически одинаковых макросов кэшируются, и это может помешать при выводе, например, двух случайных баннеров одного и того же рекламного места. Укажите в таких макросах различные параметры macros_id.

bList

Этот параметр позволяет вывести все баннеры, назначенные на указанное баннерное место. Только для XSLT-шаблонизатора.

current_element_id

Этот параметр указывает идентификатор страницы, для которой следует выводить баннер.

Описание

Этот макрос вставляет баннеры, соответствующие расположению banner_place. Баннер, который необходимо вывести, выбирается, исходя из настроек показа баннера, которые задаются в редактировании. Если для этого места не подходит ни один баннер, макрос ничего не выведет.

Внимание: Макрос выводит только баннеры с подходящей датой показа. Пустая дата начала показа не является подходящей.


Если есть необходимость установить в административном разделе ссылку для перехода по баннеру и считать статистику по флеш-баннерам, файл баннера должен быть устроен особым образом. Подробнее об этом читайте в статье «Задание ссылки для флеш-баннера в админке и учет статистики переходов по ней»

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

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)%