Country Filter 2.2

Country Filter 2.2

Country Filter для DLE фильтрует контент в зависимости от страны посетителя, на основе базы данных IP-адресов. Эта модификация содержит небольшую адаптацию установщика *.xml предыдущей версии модуля, что позволяет использовать его с актуальной версией DLE 15.3.


Установка:
  1. Загрузить папки engine и language в корень сайта.
  2. Установить dle-country-filter.xml через систему управления плагинами.
  3. Перейти в админку модуля, скачать базу данных по ссылке и импортировать ее.

Готово!

Тэги, используемые в шаблоне полной новости:
[country=RU] показано только для RU, скрыто от остальных <br />[/country]
[country=RU,UA] показано только для RU и UA, скрыто от остальных <br />[/country]
[not-country=RU] скрыто только от RU, показано для всех остальных <br />[/not-country]
[not-country=RU,UA] скрыто только от RU и UA, показано для всех остальных <br />[/not-country]

Пример рабочей настройки через доп.поле:
1. Создать в админке два доп.поля с названиями not_ru (описание: Блокировка RU), not_ua (описание: Блокировка UA). Тип поля : переключатель "Да"-"Нет" по умолчанию выключен. При добавлении или редактировании новости, если есть необходимость заблокировать видео в RU или UA, то просто переводим нужный переключатель в положение "Да".

2. В разделе управление рекламой создать два баннера с заглушками:
для блокировок UA - название not_ua
<div style="background: #000; height: 400px;"> 
<span style="color: #fff; display: block; font-size: 16px; font-weight: normal; padding-top: 170px; text-align: center;"> 
К сожалению, именно <b>"{title}" </b> не доступен для показать в Украине.
<br><br> 
Мы можем тебе предложить другие <a href="/" style="color: #fff; font-weight: bold;" target="_blank">новинки фильмов и сериалов</a>? </span> 
</div>

для блокировок RU - название not_ru
<div style="background: #000; height: 400px;"> 
<span style="color: #fff; display: block; font-size: 16px; font-weight: normal; padding-top: 170px; text-align: center;"> 
К сожалению, именно <b>"{title}" </b> не доступен для показать в России.
<br><br> 
Мы можем тебе предложить другие <a href="/" style="color: #fff; font-weight: bold;" target="_blank">новинки фильмов и сериалов</a>? </span> 
</div>

Примеры вывода с использованием заглушек:
<!-- это фильм без блокировок RU и UA-->
[xfnotgiven_not_ru][xfnotgiven_not_ua]
<iframe width="560" height="400" src="[xfvalue_hdlight_player]" frameborder="0" allowfullscreen></iframe>
[/xfnotgiven_not_ua][/xfnotgiven_not_ru]
<!-- это фильм без блокировок RU и UA-->
<!-- это фильм блокировка RU-->
[xfnotgiven_not_ua][xfgiven_not_ru]
[not-country=RU]<iframe width="560" height="400" src="[xfvalue_hdlight_player]" frameborder="0" allowfullscreen></iframe>[/not-country]
[country=RU][banner_not_ru]{banner_not_ru}[/banner_not_ru][/country]
[/xfgiven_not_ru][/xfnotgiven_not_ua]
<!-- это фильм блокировка RU-->
<!-- это фильм блокировка UA-->
[xfnotgiven_not_ru][xfgiven_not_ua]
[not-country=UA]<iframe width="560" height="400" src="[xfvalue_hdlight_player]" frameborder="0" allowfullscreen></iframe>[/not-country]
[country=UA][banner_not_ua]{banner_not_ua}[/banner_not_ua][/country]
[/xfgiven_not_ua][/xfnotgiven_not_ru]
<!-- это фильм блокировка RU,UA-->
[xfgiven_not_ru][xfgiven_not_ua]
[not-country=RU,UA]<iframe width="560" height="400" src="[xfvalue_hdlight_player]" frameborder="0" allowfullscreen></iframe>[/not-country]
[country=UA][banner_not_ua]{banner_not_ua}[/banner_not_ua][/country]
[country=RU][banner_not_ru]{banner_not_ru}[/banner_not_ru][/country]
[/xfgiven_not_ua][/xfgiven_not_ru]
<!-- это фильм блокировка RU,UA-->

country-filter-2_2-mod.zip
Создайте аккаунт или авторизуйтесь для скачивания
 
Версия DLE: 15.3
Версия PHP: 8.1.1
Интерфейс: русский, французский
Автор: MSW
Модификация: DarkLane
Источник
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.

Комментариев 4

bogdan 5 мая 2023 13:14
Нашел в чем проблема, кто захочет ставить на DLE 14.3.
В файле engine/classes/templates.class.php - должно быть так:
Ищем:
$this->template = $this->check_module($this->template);
Добавляем ниже:
#****** Country Filter *** start ******#
 if( strpos( $this->template, "[country=" ) !== false ) {
 $this->template = preg_replace_callback( "#\\[(country)=(.+?)\\](.*?)\\[/country\\]#is", 'countryFilter', $this->template );
 }
 if( strpos( $this->template, "[not-country=" ) !== false ) {
 $this->template = preg_replace_callback( "#\\[(not-country)=(.+?)\\](.*?)\\[/not-country\\]#is", 'countryFilter', $this->template );
 }
 #****** Country Filter *** stop ******#

Ищем:
$template = $this->check_module($template);
Добавляем ниже:
#****** Country Filter *** start ******#
 if( strpos( $template, "[country=" ) !== false ) {
 $template = preg_replace_callback( "#\\[(country)=(.+?)\\](.*?)\\[/country\\]#is", 'countryFilter', $template );
 }
 if( strpos( $template, "[not-country=" ) !== false ) {
 $template = preg_replace_callback( "#\\[(not-country)=(.+?)\\](.*?)\\[/not-country\\]#is", 'countryFilter', $template );
 }
 #****** Country Filter *** stop ******#

И тогда будет работать в других tpl файлах.
bogdan 5 мая 2023 12:59
Цитата: Oxigen
$this->template = $this->check_module($this->template);

Такая строчка нашлась, прописал ошибок нет теперь. Модуль работает в fullstory.tpl, а если прописываю в main.tpl то выводит просто теги, как будто не видит теги, кеш чистил.

PS: Ставил модуль на 15.3 версию там в main.tpl все работает. Не понятно почему не хочет, так как нужно именно использовать в других файлах на 14.3 версии.
Oxigen 5 мая 2023 01:08
bogdan, похоже на строку 185 :
$this->template = $this->check_module($this->template);
--------------------
Всё, что вы напишите, будет использовано против вас при показе контекстной рекламы :)
bogdan 4 мая 2023 20:57
Подскажите, на DLE 14.3 в файле engine/classes/templates.class.php не находит строку, плагин выдает ошибку. Можете подсказать, какую строку нужно найти?