Однократный вывод рекламного кода - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Однократный вывод рекламного кода

#1 Пользователь не на сайте   Alien2001 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 92
  • Регистрация: 26-Июль 12
  • Репутация: 10
  • IPB version:3.3.x
 

Отправлено 14 Сентябрь 2015 - 20:57

Добрый день!

Возникла такая потребность: нужно вывести код (рекламный) на каждой странице один раз. Есть два варианта размещения - внизу страницы (в точке hasFooterAd ) или в правой колонке (она у меня есть на многих страницах, не только на главной, в точке side_blocks, например). Размещение в колонке предпочтительнее, но колонка появляется не везде. Проблема в том, что хуки skin_global обрабатываются раньше хуков skin_boards или skin_forum, поэтому в момент генерации точки hasFooterAd колонки и всего центрального контента еще нет, и соответственно, неизвестно, будет ли колонка или нет. Как решить эту проблему изящно, без километров кода?


(версия 3.3)
0

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 15 Сентябрь 2015 - 08:54

Просмотреть сообщениеAlien2001 сказал(а):

или в правой колонке (она у меня есть на многих страницах, не только на главной, в точке side_blocks, например)

Если страницы известны (а судя по тексту, нет), то можно составить условие, при котором не выводить нижний код.

Можно скрыть нижний блок (display: none;), после загрузки страницы проверять сайдбар. Если его нет, то показывать блок.
0

#3 Пользователь не на сайте   Alien2001 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 92
  • Регистрация: 26-Июль 12
  • Репутация: 10
  • IPB version:3.3.x
 

Отправлено 15 Сентябрь 2015 - 10:02

Просмотреть сообщениеnewbie 15 Сентябрь 2015 - 08:54 сказал(а):

Если страницы известны (а судя по тексту, нет), то можно составить условие, при котором не выводить нижний код.

Можно скрыть нижний блок (display: none;), после загрузки страницы проверять сайдбар. Если его нет, то показывать блок.


Я уже думаю, как бы составить условие, но пока не получается. Проблема еще в том, что в нижней точки, как я понимаю, вообще неизвестно, что будет внутри контента: будет ли там выведен список тем (сообщений) или, например, вывалится ошибка, если такой темы нет.

display: none, как и другие css ухищрения, однозначно не годится - это будет нарушением условий размещения.
0

#4 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 15 Сентябрь 2015 - 11:58

Сложно что-то говорить, не зная, как у Вас все реализовано. По дефолту сайдбар отображается только на главной странице, и в нижний блок рекламы не добавить темы.

На примере стандартной системы рекламы.
Добавил коды в "This code will be inserted into the footer of every page" и "This code will be displayed in the board index sidebar"
Учитывая, что сайдбар отображается только на главной, в шаблоне globalTemplate
				<if test="hasFooterAd:|:$items['adFooterCode']">

заменил на
				<if test="hasFooterAd:|:$items['adFooterCode'] and !(isset($this->request['f']) and $this->request['f'] == 0 and $this->settings['ad_code_board_sidebar'])">

В итоге добавленный код на шавной отображается только в сайдбаре, на остальных страницах - внизу.
1

#5 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 723
  • Регистрация: 20-Март 09
  • Репутация: 2 271
  • IPB version:3.1.x
 

Отправлено 15 Сентябрь 2015 - 12:18

Просмотреть сообщениеAlien2001 сказал(а):

display: none, как и другие css ухищрения, однозначно не годится - это будет нарушением условий размещения.

Тогда довольно сложно будет это сделать не зная что и когда будет в ваших блоках. Чтобы составить условие на php нужно знать будет ли там то, что вы хотите или нет. Без этого условие на телепатии не сделать.
0

#6 Пользователь не на сайте   Alien2001 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 92
  • Регистрация: 26-Июль 12
  • Репутация: 10
  • IPB version:3.3.x
 

Отправлено 15 Сентябрь 2015 - 12:30

Спасибо за помощь! Помыкался я и начал записывать условия -IMG- . Как раз искал способ проверить внутри хука, что мы на главной странице. newbie, Ваш код как раз в тему -IMG-:

Цитата

isset($this->request['f']) and $this->request['f'] == 0

0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна