Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка 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.

Показ сообщения в блоке рекламы при включенном AdBlock

Featured Replies

Posted

Из тех хуков которые тут есть, я не нашёл ничего стоящего на данную тему. 

Считаю глупо "кидать в глаза" всплывающее сообщение "Отключи блокировщик!"

 

Погуглил, нашёл статейку со скриптом который делает так: подставляя в место рекламы, аккуратное сообщение. 

 

post-10061-0-08325700-1404077685.png

 

В прикреплённом архиве есть: html, javascript, css файлы.

  • Для начала код рекламы на сайте нужно окружить тегом div с классом adb (если не меняли на другой).
  • В заголовке темы подключить джаваскрипт.
  • В css файл своего шаблона добавить описание класса adb.
  • При установке чистите кэш.
  • Также нужно установить дополнения к браузерам AdBlock Pro и AdBlock Plus, чтобы увидеть работает скрипт нормально или нет.
  • Текст сообщения можно изменить в javascript файле.

 

И соответственно вопрос: как его правильно встроить в ipb, чтоб детектил на всех страницах форума?

ads_detector.rar

  • Author

Подскажите, как правильно прописать путь к папке со скриптом public/js/ads_detector.js ?

<script type='text/javascript' src="какая переменная?/js/ads_detector.js"></script>

Так правильно будет?

<script type='text/javascript' src='{$this->settings['public_dir']}js/ads_detector.js'></script>
  • Author

Копипаст
Шаг 1. HTML


 

Достаточно добавить блочный элемент с атрибутом class в любое место страницы, предварительно разместив рекламный код внутри блока.

<div class="adb">
    Рекламный код тут
</div>

Шаг 2. JS


Нужно разместить этот код в файле с расширением js

var ads = "adb"
var msg = '<div style="border: 1px dashed #f00; padding: 5px; width:800px; color:#000000 !important; margin:20px auto;"><p style="text-align:center;margin:0;"><b>Adblock Detected</b></p><p style="text-align:justify;margin:0;">Вы используете расширение AdBlock или подобное. Вы можете добавить этот сайт в белый список, и тем самым внесете свой вклад в его развитие.</p></div>';

onload=function()
{
	// заглушка для IE, т.к. нет функции getElementByClassName
	if (document.getElementsByClassName == undefined) 
	{
		document.getElementsByClassName = function(className)
		{
			var hasClassName = new RegExp("(?:^|s)" + className + "(?|s)");
			var allElements = document.getElementsByTagName("*");
			var results = [];
			var element;
			for (var i = 0; (element = allElements) != null; i++) 
			{
				var elementClass = element.className;
				if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
					results.push(element);
			}
			return results;
		}
	}

	blocked = 0;
	//получаем массив всех рекламных элементов
	var ad_nodes = document.getElementsByClassName(ads);
	for(i in ad_nodes)
	{
		// проверяем высоту i-го блока
        if (ad_nodes.offsetHeight == 0)
		{
			blocked = 1;
			ad_nodes.innerHTML = msg; // выводим сообщение на экран
		}
	}
}

Залил и подключил в начале GlobalTemplate после <head>


<script type='text/javascript' src="{$this->settings['public_dir']}js/ads_detector.js"></script>

И чегой-то не детектит  :shake:

  • Author

Переименуйте скрипт, избавьтесь от ads в названии

 

 

 

"заработало" (с) :good:  - оставил detector.js

 

С чем это связанно? Не знал, что название может играть такую важную роль.

Этот adguard блочит этот скрипт :)

Ох уж этот adguard )

Guest
This topic is now closed to further replies.

Последние посетители 0

  • No registered users viewing this page.

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.