Многие не раз видели на булке такое - каждые ну скажем 10ть постов, между постами вставляется рекламный блок. Мне давно хотелось замутить что-то в этом роде, но не пришлось - на сайте ibpower.ru - был найден почти готовый код вставки.
Итак попробую привести его к понятному варианту:
Вариант для 2.х:
1. <b>Заходим в админку->внешний вид->нужный стиль->html шаблоны->skin_topic</b>
Справа внизу выбираем "<b>Добавить шаблон</b>"
Заполняем поле:
Название: <b>RenderBannerRow</b>
остальные поля можно оставить без изменений. В этом шаблоне будет храниться код вашего баннера.
примечание к пункту 1 - Если хотите использовать одинаковый цвет постов для отображения цвета рекламы и цвета постов то - используем в шаблоне RenderBannerRow следующий код:
[codebox]<div class="bg1"></div>[/codebox]
Если его не использовать - шаблон будет вставлять белый пост.
2. Найти в файле sources\lib\func_topic_linear.php
[codebox]$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderRow( $row, $poster ); [/codebox]
Добавить ниже по выбору:
1 вариант показ рекламы первым постом:
[codebox]
//-----------------------------------------
// Banner RenderBannerRow
//-----------------------------------------
if($row['post_count'] == 1) {
$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderBannerRow();
}
[/codebox]
2 вариант показ рекламы за каждым 10 постом:
[codebox]
//-----------------------------------------
// Banner RenderBannerRow
//-----------------------------------------
if($row['post_count']%10 == 0) {
$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderBannerRow();
}
[/codebox]
3 вариант показ рекламы каждые 9ть постов, только незарегистрированным пользователям и пользователям с числом сообщений менее 50ти....
[codebox]
//-----------------------------------------
// Banner RenderBannerRow
//-----------------------------------------
if( $this->ipsclass->member['posts'] < 50 ) {
if($row['post_count']%9 == 0) {
$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderBannerRow();
}
}
[/codebox]
Редактирование баннера производится в = Заходим в админку->внешний вид->нужный стиль->html шаблоны->skin_topic->RenderBannerRow
Приложение допустимые классы юзеров и условия (это вставлять никуда не нужно - это памятка для вас по группам и классам!):
[codebox]Группа юзера:
$this->ipsclass->member['mgroup']
id юзера:
$this->ipsclass->member['id']
Количество постов юзера:
$this->ipsclass->member['posts']
А также некоторые переменные определяющие привелегии по группе:
Принадлежность к модератору:
$this->ipsclass->member['is_mod']
Принадлежность к супер-модератору:
$this->ipsclass->member['g_is_supmod']
Принадлежность к группе админа (могут заходить в админку):
$this->ipsclass->member['g_access_cp']
Допустимые условия
<условие> - это определённая логическая конструкция. Например
== - равно
!= - не равно
> - больше
< - меньше
Так например при коде
//-----------------------------------------
// Banner RenderBannerRow
//-----------------------------------------
if( $this->ipsclass->member['id'] == 100 ) {
if($row['post_count']%10 == 0) {
$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderBannerRow();
}
}
блок рекламы будет виден только пользователю с id = 100 за каждым 10тым постом.
А например при коде
//-----------------------------------------
// Banner RenderBannerRow
//-----------------------------------------
if( $this->ipsclass->member['id'] > 100 ) {
if($row['post_count']%10 == 0) {
$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderBannerRow();
}
}
Рекламный блок будет виден только пользователям с id номером свыше 100 за каждым 10тым постом.
[/codebox]
пример можно увидеть незарегистрированным пользователям на форуме <a href="http://hobus.ru" target="_blank">http://hobus.ru</a>
Зы - никто не мешает в данный код вставить баннеро-крутилку.
Примечание - при баннерокрутилке рекомендуется выставить частоту показа баннера более высокую нежели предельно допустимое отображение число постов на одну страницу (если вы ничего не меняли с этим числом, то предельно допустимое число 40 у любого форума на IPB) стало быть рекомендуется каждое 40вое сообщение перемежать рекламой. Зачем это нужно? Чтобы баннерокрутилка не глючила вызываясь два раза и более на одну и ту-же страницу. В случае со статическим баннером его можно помещать хоть через каждый 1 пост.
Итак попробую привести его к понятному варианту:
Вариант для 2.х:
1. <b>Заходим в админку->внешний вид->нужный стиль->html шаблоны->skin_topic</b>
Справа внизу выбираем "<b>Добавить шаблон</b>"
Заполняем поле:
Название: <b>RenderBannerRow</b>
остальные поля можно оставить без изменений. В этом шаблоне будет храниться код вашего баннера.
примечание к пункту 1 - Если хотите использовать одинаковый цвет постов для отображения цвета рекламы и цвета постов то - используем в шаблоне RenderBannerRow следующий код:
[codebox]<div class="bg1"></div>[/codebox]
Если его не использовать - шаблон будет вставлять белый пост.
2. Найти в файле sources\lib\func_topic_linear.php
[codebox]$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderRow( $row, $poster ); [/codebox]
Добавить ниже по выбору:
1 вариант показ рекламы первым постом:
[codebox]
//-----------------------------------------
// Banner RenderBannerRow
//-----------------------------------------
if($row['post_count'] == 1) {
$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderBannerRow();
}
[/codebox]
2 вариант показ рекламы за каждым 10 постом:
[codebox]
//-----------------------------------------
// Banner RenderBannerRow
//-----------------------------------------
if($row['post_count']%10 == 0) {
$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderBannerRow();
}
[/codebox]
3 вариант показ рекламы каждые 9ть постов, только незарегистрированным пользователям и пользователям с числом сообщений менее 50ти....
[codebox]
//-----------------------------------------
// Banner RenderBannerRow
//-----------------------------------------
if( $this->ipsclass->member['posts'] < 50 ) {
if($row['post_count']%9 == 0) {
$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderBannerRow();
}
}
[/codebox]
Редактирование баннера производится в = Заходим в админку->внешний вид->нужный стиль->html шаблоны->skin_topic->RenderBannerRow
Приложение допустимые классы юзеров и условия (это вставлять никуда не нужно - это памятка для вас по группам и классам!):
[codebox]Группа юзера:
$this->ipsclass->member['mgroup']
id юзера:
$this->ipsclass->member['id']
Количество постов юзера:
$this->ipsclass->member['posts']
А также некоторые переменные определяющие привелегии по группе:
Принадлежность к модератору:
$this->ipsclass->member['is_mod']
Принадлежность к супер-модератору:
$this->ipsclass->member['g_is_supmod']
Принадлежность к группе админа (могут заходить в админку):
$this->ipsclass->member['g_access_cp']
Допустимые условия
<условие> - это определённая логическая конструкция. Например
== - равно
!= - не равно
> - больше
< - меньше
Так например при коде
//-----------------------------------------
// Banner RenderBannerRow
//-----------------------------------------
if( $this->ipsclass->member['id'] == 100 ) {
if($row['post_count']%10 == 0) {
$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderBannerRow();
}
}
блок рекламы будет виден только пользователю с id = 100 за каждым 10тым постом.
А например при коде
//-----------------------------------------
// Banner RenderBannerRow
//-----------------------------------------
if( $this->ipsclass->member['id'] > 100 ) {
if($row['post_count']%10 == 0) {
$this->output .= $this->ipsclass->compiled_templates['skin_topic']->RenderBannerRow();
}
}
Рекламный блок будет виден только пользователям с id номером свыше 100 за каждым 10тым постом.
[/codebox]
пример можно увидеть незарегистрированным пользователям на форуме <a href="http://hobus.ru" target="_blank">http://hobus.ru</a>
Зы - никто не мешает в данный код вставить баннеро-крутилку.
Примечание - при баннерокрутилке рекомендуется выставить частоту показа баннера более высокую нежели предельно допустимое отображение число постов на одну страницу (если вы ничего не меняли с этим числом, то предельно допустимое число 40 у любого форума на IPB) стало быть рекомендуется каждое 40вое сообщение перемежать рекламой. Зачем это нужно? Чтобы баннерокрутилка не глючила вызываясь два раза и более на одну и ту-же страницу. В случае со статическим баннером его можно помещать хоть через каждый 1 пост.