Не могу совладать с размещением рекламы :(

#
Не могу совладать с размещением рекламы :(
Подскажите пожалуйста как можно вставить кусок кода (рекламу) в ИС (например, каталог товаров или список статей)
После каждого третьего (ну, или пятого) элемента?
Модератор
#
Re: Не могу совладать с размещением рекламы :(
Absolut,
очень просто - передать через внешние параметры в XML (см. API), при выводе списка проверить

<xsl:if test="position() = 3">
<xsl:value-of select="путь/mytag" />
</xsl:if>


mytag - имя элемента массива при передаче через внешние параметры
путь - зависит от XML, нужно смотреть где именно выводите.
#
Re: Не могу совладать с размещением рекламы :(
К сожалению, что очень просто для Вас, для меня невозможно (в смысле, разобраться)
Я даже не знаю, где в API смотреть. Открыл - попялился в список элементов и...всё
Мне нужно создать дополнительное свойство?
И куда собственно добавлять код рекламного блока?
Или?
Можно мне как особенно "продвинутому", по буквам рассазать?
#
Re: Не могу совладать с размещением рекламы :(
Absolut, доп. свойство добавлять не обязательно. Вы можете через массив дополнительных параметров $external_propertys передать нужный код(перед вызовом метода ShowInformationSystem, например, в типовой динамической странице для инфосистемы). Посмотрите на примере доп. параметров: $external_propertys['ОтображатьСсылкуНаАрхив'] = 0;
Вот так обрабатывается данный параметр в XSL-шаблоне:
<xsl:if test="ОтображатьСсылкуНаАрхив=1">
#
Re: Не могу совладать с размещением рекламы :(
Эх, не получается
Вот что я сделал:
Добавил в типовой динамической странице:
$external_propertys['Реклама']=1;

Теперь пытаюсь обработать в XSL шаблоне

<!--реклама-->

<xsl:if test="Реклама=1">
<xsl:if test="position() = 3">
<xsl:text disable-output-escaping="yes">
<![CDATA[
<!-- Яндекс.Директ -->
ЗДЕСЬ КОД ВЫЗОВА РЕКЛАМЫ
]]>
</xsl:text>
</xsl:if>
</xsl:if>
<!--реклама-->

Только даже не понимаю, куда его воткнуть то... куда не пробовал - ничего не отображается (ошибок тоже никаких не выдает)
#
Re: Не могу совладать с размещением рекламы :(
На всякий случай - XSL-шаблон
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />

<xsl:template match="/">
    <xsl:apply-templates/>
</xsl:template>

<xsl:template match="/document">

   

<table width="100%" border="0" cellspacing="5" cellpadding="0">
  <tr>
    <td width="212" valign="top">
<div class="left_menu">
<br />
   <ul>
      <!-- <xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/> -->
      <xsl:apply-templates select=".//group[@parent_id=0]" mode="groups"/>
   </ul>
<br />
</div>
   <br />
<div class="left_menu" style="width:212px;">

<xsl:text disable-output-escaping="yes">
<![CDATA[
<!-- Яндекс.Директ -->

]]>
</xsl:text>
</div>
</td>
<td width="22">&#xA0;</td>
<td valign="top" class="main_content">


<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
   <xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>
   
   <!-- Если в находимся корне - выводим название информационной системы -->
   <xsl:if test="blocks/parent_group_id=0">


      <h1><xsl:value-of disable-output-escaping="yes" select="blocks/name"/></h1>


      <xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
   </xsl:if>

   <!-- Если в находимся в группе - выводим название группы -->
   <xsl:if test="blocks/parent_group_id!=0">
      <h1><xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/name"/></h1>

      <!-- Путь к группе -->
      <p><xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path"/></p>
   </xsl:if>

   <!-- Отображение подгрупп данной группы -->
   <xsl:if test="$parent_group_id != 0">
      <ul>
         <xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
      </ul>

   </xsl:if>


<!-- Если в находимся в группе - выводим описание группы -->
   <xsl:if test="blocks/parent_group_id!=0">
      <xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/description"/>
</xsl:if>

   <!-- ======================================================== -->
   <!-- Отображение записи информационного блока -->
   <!-- ======================================================== -->

   <!-- если есть элементы для отображения -->
   <xsl:if test="count(blocks/items/item[item_status=1]) > 0">

      <table border="0" cellspacing="0" cellpadding="5" class="news_table" width="100%">
   <tr>
   <td style="background-color: #eeeeee;"><b>Название</b></td>
   <td style="background-color: #eeeeee;" align="center"><b>Изображение</b></td>
                <td style="background-color: #eeeeee;" ><b>Размер (мм)</b></td>
                <td style="background-color: #eeeeee;" ><b>Ед. изм</b></td>
   
   </tr>
         <xsl:apply-templates select="blocks/items/item[item_status=1]" />

   </table>


   </xsl:if>

   <p>
   <!-- Строка ссылок на другие страницы информационного блока -->
   <xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
      <xsl:call-template name="for">
        <xsl:with-param name="items_on_page" select="blocks/items/items_on_page" />
        <xsl:with-param name="current_page" select="blocks/items/current_page" />
        <xsl:with-param name="count_items" select="blocks/items/count_items" />
      </xsl:call-template>
   </xsl:if>
   </p>

</td>
  </tr>
</table>

   <!-- ======================================================== -->
   <!-- Ссылка на архив -->
   <!-- ======================================================== -->
   <xsl:if test="ОтображатьСсылкуНаАрхив=1">
           <p><a href="{blocks/url}">Архив "<xsl:value-of disable-output-escaping="yes" select="blocks/name"/>"</a></p>
   </xsl:if>



</xsl:template>


<!-- ======================================================== -->
<!-- Шаблон вывода записей -->
<!-- ======================================================== -->
<xsl:template match="blocks/items/item">

   <!-- определение стиля для черезстрочного выведения фона -->
   <xsl:variable name="style"><xsl:choose>
      <xsl:when test="position() mod 1 = 0">border-bottom: 1px solid  #eeeeee;</xsl:when>

      <xsl:otherwise></xsl:otherwise>
   </xsl:choose></xsl:variable>



   <tr>
   <!-- Первая ячейка - название и описание товара -->
<td style="{$style}">
   <strong><a href="{item_path}"><xsl:value-of disable-output-escaping="yes" select="item_name"/></a></strong>

   <!-- описание товара -->
   <br />
   <xsl:value-of disable-output-escaping="yes" select="item_description"/><br/>
</td>

<!-- Вторая ячейка - изображение товара -->
<td style="{$style}" align="center">
   <xsl:if test="item_small_image!=''">
      <a href="{item_path}"><img style="padding-right:10px; padding-bottom:10px;"  src="/{item_small_image}" alt="{item_name}" title="{item_name}"/></a>
   </xsl:if>
</td>
<!-- Размер мм-->
<td style="{$style}">
      <!-- Размер мм(дополнительное свойство) -->
   <xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/size"/>

</td>

<!-- Единица измерения-->
<td style="{$style}">
      <!-- Единица измерения(дополнительное свойство) -->
   <xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/ed"/>&#xA0;

</td>



</tr>


</xsl:template>



<!-- ======================================================== -->
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<!-- ======================================================== -->

<xsl:template match="group" mode="goup_path">
   <xsl:variable name="parent_id" select="@parent_id"/>

   <xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path"/>

   <xsl:if test="@parent_id=0">
      <a href="{/document/blocks/url}"><xsl:value-of disable-output-escaping="yes" select="/document/blocks/name"/></a>
   </xsl:if>

   -> <a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:template>

<!-- ======================================================== -->
<!-- Шаблон выводит ссылки подгруппы информационного элемента -->
<!-- ======================================================== -->
<xsl:template match="group" mode="groups">
   <li>
      <xsl:if test="small_image!=''">
         <a href="{/document/blocks/url}{fullpath}" target="_blank"><img src="/upload/{small_image}"/></a>&#xA0;
      </xsl:if>
      <a href="{/document/blocks/url}{fullpath}"><b><xsl:value-of disable-output-escaping="yes" select="name"/></b></a>
   </li>
</xsl:template>

<!-- ======================================================== -->
<!-- Цикл для вывода строк ссылок -->
<!-- ======================================================== -->

<!-- Цикл для вывода строк ссылок -->
<xsl:template name="for">
   <xsl:param name="i" select="0" />
   <xsl:param name="items_on_page" />
   <xsl:param name="current_page" />
   <xsl:param name="count_items" />
   
   <xsl:variable name="n" select="$count_items div $items_on_page" />
   
   <xsl:if test="$count_items > $items_on_page and $n > $i">

      <!-- Разделитель ссылок -->
   
      <xsl:if test="$i != 0 and $n > $current_page"> - </xsl:if>
   

      <!-- Ставим ссылку на страницу-->
      <xsl:if test="$i != $current_page">

         <!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
         <xsl:variable name="parent_group_id" select="/document/blocks/parent_group_id" />

         <!-- Определяем группу для формирования адреса ссылки -->
         <xsl:variable name="group_link"><xsl:choose>
            <!-- Если группа не корневая (!=0) -->
            <xsl:when test="$parent_group_id != 0"><xsl:value-of select="/document/blocks//group[@id = $parent_group_id]/fullpath" /></xsl:when>
            <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
            <xsl:otherwise></xsl:otherwise>
         </xsl:choose></xsl:variable>

         <!-- Определяем адрес ссылки -->
         <xsl:variable name="number_link"><xsl:choose>
            <!-- Если не нулевой уровень -->
            <xsl:when test="$i != 0">page-<xsl:value-of select="$i + 1" />/</xsl:when>
            <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
            <xsl:otherwise></xsl:otherwise>
         </xsl:choose></xsl:variable>

         <a href="{/document/blocks/url}{$group_link}{$number_link}" class="page_link"><xsl:value-of select="$i + 1" /></a>
      </xsl:if>
      

      <!-- Не ставим ссылку на страницу-->
      <xsl:if test="$i = $current_page">
         <span class="current"><xsl:value-of select="$i+1" /></span>
      </xsl:if>

      <!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
      <xsl:call-template name="for">
         <xsl:with-param name="i" select="$i + 1" />
         <xsl:with-param name="items_on_page" select="$items_on_page" />
         <xsl:with-param name="current_page" select="$current_page" />
         <xsl:with-param name="count_items" select="$count_items" />
      </xsl:call-template>

   </xsl:if>
</xsl:template>

</xsl:stylesheet>
#
Re: Не могу совладать с размещением рекламы :(
Absolut, приведите код вызова рекламы.
#
Re: Не могу совладать с размещением рекламы :(
<xsl:text disable-output-escaping="yes">
<![CDATA[
<!-- Яндекс.Директ -->
<script type="text/javascript"><!--
yandex_partner_id = .......;
yandex_site_charset = 'windows-1251';
yandex_ad_format = 'direct';
yandex_font_size = 1.2;
yandex_direct_type = 'vertical';
yandex_direct_border_type = 'block';
yandex_direct_limit = 2;
yandex_direct_title_color = '00348F';
yandex_direct_url_color = '666666';
yandex_direct_all_color = '666666';
yandex_direct_text_color = '000000';
yandex_direct_site_bg_color = 'FFFFFF';
document.write('<sc'+'ript type="text/javascript" src="http://an.yandex.ru/resource/context.js?rnd=' + Math.round(Math.random() * 100000) + '"></sc'+'ript>');
//--></script>
]]>
</xsl:text>
#
Re: Не могу совладать с размещением рекламы :(
Absolut, а при вставке этого кода рекламы в макете, например, он корректно работает(реклама отображается)?
#
Re: Не могу совладать с размещением рекламы :(
да. конечно.
В конкретном кодеубран параметр ID
yandex_partner_id = .......;
- вместо прочерков - мой ID
Авторизация