Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Навигация форума

Опубликовано:

Собираюсь повесить на форум контекстную рекламу над или под навигацией. С ужасом думаю, что придется вставлять код в массу скинов на этом форуме.

Поэтому хотелось бы упростить задачу, а именно, поместить код в файл форума. Только в какой файл и как корректно это сделать?

Рекомендованные сообщения

Опубликовано:

/sources/classes/class_display.php

 

Найти строчку:

		$nav .= $this->ipsclass->compiled_templates['skin_global']->end_nav();

 

После этого вписать

$nav = '<h1>ИНФЕРНАЛЬНЫЙ РЕКЛАМНЫЙ БЛОК</H1>'.$nav;

, если хочешь, чтобы реклама была после стрелок навигации, и

$nav .= '<h1>ИНФЕРНАЛЬНЫЙ РЕКЛАМНЫЙ БЛОК</H1>';

, если хочешь, чтобы до.

 

Сойдёт?

 

Можно также, например, вынести HTML-код баннера в какой-либо отдельный файл, и писать в духе

$nav .= file_get_contents( ROOT_PATH . 'advert.html' );

В данном случае файл advert.html должен лежать в корне форума, а реклама разместится после навигации.

Опубликовано:
  • Автор

Спасибо :)

  • 6 месяцев спустя...
Опубликовано:
/sources/classes/class_display.php

 

Найти строчку:

		$nav .= $this->ipsclass->compiled_templates['skin_global']->end_nav();

 

После этого вписать

$nav = '<h1>ИНФЕРНАЛЬНЫЙ РЕКЛАМНЫЙ БЛОК</H1>'.$nav;

, если хочешь, чтобы реклама была после стрелок навигации, и

$nav .= '<h1>ИНФЕРНАЛЬНЫЙ РЕКЛАМНЫЙ БЛОК</H1>';

, если хочешь, чтобы до.

 

Сойдёт?

 

Можно также, например, вынести HTML-код баннера в какой-либо отдельный файл, и писать в духе

$nav .= file_get_contents( ROOT_PATH . 'advert.html' );

В данном случае файл advert.html должен лежать в корне форума, а реклама разместится после навигации.

Сделал, т.к. написано - помогло, спасибо, но блок вставляется на каждой странице. Как сделать, чтобы вставлялся только на некоторых? Интересуют в частности страница Портала и Главная страница форума.

Опубликовано:

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

Опубликовано:

Кто-то ведь это делал? Поделитесь опытом!

Опубликовано:

Редактируйте основной шаблон форума. Там есть <% COPYRIGHT %> до или после него вставляйте.

Опубликовано:

Если бы всё было так легко, я бы не спрашивал. Я не говорю об HTML - мне нужно вставить PHP, а он так просто в шабы не ставится ;(

Опубликовано:

Ну вы даете. Коды счетчика идут на java, а не php. Это вам надо редиктировать ./sources/classes/class_display.php. Прописываете нужное в общем шаблоне, потом, по аналогии, делаете preg_replace на вашу функцию/ваш пхп код.

Если не понимаете в php ничего - не беритесь.

Опубликовано:

А разве я говорил о счётчиках? Тема о PHP - я сюда и написал.

Методом Dr.Freddy вывел код сверху, а мне нужно снизу и желательно только на 1 странице (главной). По-моему я так и писал :)

Опубликовано:
Прописываете нужное в общем шаблоне, потом, по аналогии, делаете preg_replace на вашу функцию/ваш пхп код.
Дык по какой аналогии. Хоть бы показали...
Опубликовано:
А разве я говорил о счётчиках? Тема о PHP - я сюда и написал.

Методом Dr.Freddy вывел код сверху, а мне нужно снизу и желательно только на 1 странице (главной). По-моему я так и писал :)

ну понимаете, код контестной рекламы обычно идет на java, а не на php.

Хотите до копирайта?

вставьте до

$this->ipsclass->skin['_wrapper'] = str_replace( "<% CSS %>"			, $css								, $this->ipsclass->skin['_wrapper']);

код

$copyright .= ВАШ КОД;

если до, то

$copyright = ВАША КОД.$copyright;

Вот аналогия.

 

А вот аналогия с str_replace, так же пишите до вставьте до

$this->ipsclass->skin['_wrapper'] = str_replace( "<% CSS %>"			, $css								, $this->ipsclass->skin['_wrapper']);

Вот код

$this->ipsclass->skin['_wrapper'] = str_replace( "ВАША СТРОКА В ШАБЛОНЕ"	, ВАША ФУНКЦИЯ			 , $this->ipsclass->skin['_wrapper']);

эм, понятно объяснил?

Опубликовано:

Да, спасибо, вроде всё понятно. Пока не попробовал, но ничего страшного вроде не увидел.

А можно как-нибудь сделать вывод только на одной странице, т.е. вставлять не через общий шаблон форума, а через изменение HTML шаблонов? Или это не имеет принципиального значения?

Опубликовано:

Только на одной странице? Вариантов множество. Можно просто редактировать нужный файл в ./sources/action_public/, можно в class_display.php сделай условите if($this->ipsclass->input['_low_act'] == ваш) то исполняем скрипт. Смотря, что вам надо. Так же можно отредактировать html фрагменты и сделать str_replace в class_display.php.

Опубликовано:
Только на одной странице? Вариантов множество. Можно просто редактировать нужный файл в ./sources/action_public/, можно в class_display.php сделай условите if($this->ipsclass->input['_low_act'] == ваш) то исполняем скрипт. Смотря, что вам надо. Так же можно отредактировать html фрагменты и сделать str_replace в class_display.php.

В принципе получилось, но строчки типа <% TEST %> можно вставить только через общий шаблон, через фрагменты HTML - не получается (выглядит также <% TEST %> - не парсится).

Отсюда вопрос - как вставлять непосредственно в фрагменты HTML? - это был бы хороший вариант, т.к. не очень понял, как выбирать страницы с помощью условий.

Опубликовано:

Просто нужно свой str_replace ставить после всех тех что уже есть в той функции.

 

Для проверки можете ещё попробывать заменять не <% TEST %> а скажем <!-- TEST --> ибо форум вроде как экранирует такого вида строчки, если они не описаны в функции strip_tags в файле ./sources/ipsclass.php

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.