Интеграция рекламных блоков между постов в Invision Power Board 2.3.x

Давно я не вспоминал про IPB (Invision Power Board), все как-то больше про WordPress и иже с ними. Между прочим, IPB — один из лучших форум-движков. Я бы даже сказал, что он самый лучший! Единственный минус этой платформы в том, что за ее использование нужно платить. Впрочем, как и за все хорошее в этой жизни. Но оно реально того стоит.

Со старых времен имеется у меня один форум на IPB 2.3.6. Он как-то живет сам по себе, не привлекая особого внимания с моей стороны, откручивает Сапу, Liex, Adsense и что-то еще. Но на прошлой неделе мне в очередной раз поступило предложение от Profit-Partner по размещению на сайте рекламы Яндекс Директ. Причем с кучей рекомендаций по увеличению дохода. В частности, было рекомендовано размещение объявлений в топиках после первого и последнего поста. Понятно, в 3-ей линейке IPB данная задача решается в пару кликов. Но как интегрировать рекламные блоки после первого и последнего поста в IPB 2.3.6 пришлось подумать. Все оказалось очень просто. Заходим в админку. Переходим во Внешний вид > Список стилей, выбираем активный шаблон и в выпадающем меню нажимаем Изменить HTML шаблоны, в списке шаблонов выбираем skin_topic (просмотр темы) и переходим в RenderRow. Собственно, в него и будем вносить все изменения. Выглядит это примерно так:

ipb-ads-integration

В самом конце добавляем следующие строки:

<if="in_array( $post['post_count'] % $this->ipsclass->vars['display_max_posts'], array( 0, 1 ) )>
[ADS CODE]
</if>

Таким образом блоки будут выводиться после первого и последнего поста. Если вы хотите выводить объявления только после первого поста, можно воспользоваться вот таким кодом:

<if="$post['post_count'] == 1">
[ADS CODE]
</if>

Если вы хотите, чтобы зарегистрированные пользователи не видели рекламу, воспользуйтесь вот такой конструкцией:

<if="$post['post_count'] == 1">
<if="ipb.member['id'] < 1">
[ADS CODE]
</if>
</if>

Естественно, Яндекс Директ в данной публикации несет исключительно демонстрационную смысловую нагрузку. Вместо него может быть любая другая контекстная, тизерная или баннерная реклама. Например, Adsense, тизерки и т.п.

Иван Данилин
Автор Иван Данилин

Делаю сайты на Вордпресс с 2008 года, в том числе уникальные инструменты для решения сложных бизнес‑задач.

Подробнее