Ручная вставка рекламы, как сделать?

Если требуется помощь с движком версии 3.1, спросите её здесь.
Лазарь
Сообщения: 15
Зарегистрирован: 06.12.15 10:04

Ручная вставка рекламы, как сделать?

Сообщение Лазарь »

Нужно как-то сделать блок внизу всех страниц форума, в который можно вставлять любую рекламу: текст, баннеры, флеш и т.п.
Но важный момент - ручная настройка блока для любой страницы форума, т.е. чтобы делать всё вручную, не автоматом.
Допустим, нужно в какую-то тему определённую добавить рекламу, захожу в тему, жму кнопку, добавляю код, сохраняю. В итоге только в этой теме стоит реклама.

Т.е. функционал нужен такой же, как создание нового сообщения в теме, но создаваться будет рекламный блок расположенный внизу страницы, под сообщениями.
Посоветуйте, пожалуйста, с помощью какого расширения это сделать. Может быть руками можно как-то добавить?
Заранее большое спасибо всем откликнувшимся!!!
Shredder
Администратор
Сообщения: 1067
Зарегистрирован: 22.08.13 09:05
Благодарил (а): 132 раза
Поблагодарили: 264 раза
Контактная информация:

Ручная вставка рекламы, как сделать?

Сообщение Shredder »

Попробуйте через http://www.phpbb-work.ru/topic100.html подключиться к нужному событию шаблона (вроде viewtopic_body_postrow_post_after ), указав для каждого блока свой TOPIC_ID. Например:

Код: Выделить всё

<!-- EVENT viewtopic_body_postrow_post_after -->
	<!-- IF TOPIC_ID eq 25 -->

	==== тут код для темы с ID = 25 ====

	<!-- ELSEIF TOPIC_ID eq 48 -->

	==== тут код для темы с ID = 48 ====

	<!-- ELSEIF TOPIC_ID eq 79 -->

	==== тут код для темы с ID = 79 ====

	<!-- ENDIF -->
<!-- ENDEVENT -->
Конструкций ELSEIF с разными номерами тем можно добавлять сколько угодно перед завершающей ENDIF. Номер (ID) темы посмотрите в адресной строке в части &t=тут_номер
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Лазарь
Сообщения: 15
Зарегистрирован: 06.12.15 10:04

Ручная вставка рекламы, как сделать?

Сообщение Лазарь »

Отличное решение, спасибо большое, но есть НО. Тем много, коды блока нужно будет постоянно менять, и вручную делать это через шаблоны очень накладно. Идеально такое сделать через интерфейс самого форума, по типу создания сообщения, только создавать не сообщение, а рекламный блок. Может быть есть что-то в этом направлении?
Shredder
Администратор
Сообщения: 1067
Зарегистрирован: 22.08.13 09:05
Благодарил (а): 132 раза
Поблагодарили: 264 раза
Контактная информация:

Ручная вставка рекламы, как сделать?

Сообщение Shredder »

Тут только расширение отдельное писать. При наличии необходимых событий, разумеется.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Лазарь
Сообщения: 15
Зарегистрирован: 06.12.15 10:04

Ручная вставка рекламы, как сделать?

Сообщение Лазарь »

Скажите, пожалуйста, а через [BETA] extender: конструктор слушателей событий, сколько тем можно обработать не боясь, что форум будет тормозить?
Ещё вопрос, рекламный блок будет на первой странице темы, или на всех страницах одной темы? Есть ли возможность сделать только на первой?
Shredder
Администратор
Сообщения: 1067
Зарегистрирован: 22.08.13 09:05
Благодарил (а): 132 раза
Поблагодарили: 264 раза
Контактная информация:

Ручная вставка рекламы, как сделать?

Сообщение Shredder »

Лазарь писал(а):Скажите, пожалуйста, а через [BETA] extender: конструктор слушателей событий, сколько тем можно обработать не боясь, что форум будет тормозить?
Не знаю, это нужно спрашивать у автора. Автор куда-то пропал.
Лазарь писал(а):Ещё вопрос, рекламный блок будет на первой странице темы, или на всех страницах одной темы? Есть ли возможность сделать только на первой?
Будет на всех страницах. Чтобы сделать на первой, необходимо подключиться к событию ядра в файле viewtopic.php, где есть переменная 'start', и добавить свою переменную шаблона, например:

Код: Выделить всё

<!-- EVENT core.viewtopic_assign_template_vars_before -->
	$this->template->assign_var('S_FIRST_PAGE', (!$this->event['start']) ? true : false);
<!-- ENDEVENT -->
Затем использовать эту переменную шаблона S_FIRST_PAGE в событии шаблона вместе с TOPIC_ID:

Код: Выделить всё

<!-- EVENT viewtopic_body_postrow_post_after -->
	<!-- IF S_FIRST_PAGE and postrow.S_LAST_ROW -->
		<!-- IF TOPIC_ID eq 25 -->

		==== тут код для темы с ID = 25 ====

		<!-- ELSEIF TOPIC_ID eq 48 -->

		==== тут код для темы с ID = 48 ====

		<!-- ENDIF -->
	<!-- ENDIF -->
<!-- ENDEVENT -->
Добавлено спустя 18 часов 47 минут 33 секунды:
Подкорректировал вчерашний код, добавил условие and postrow.S_LAST_ROW, чтобы блоки отображались только после последнего сообщения на странице.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Ответить