Модуль Country Filter 2.0 добавляет в DLE функционал фильтрации контента в зависимости от страны посетителя. Фильтрация осуществляется на основе базы данных IP адресов.
Модуль добавляет теги:
[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]
и т.д. можно задавать код любой из стран или их список через запятую
Данные теги можно использовать как непосредственно в тексте новостей(краткой, полной и выводимых тегом custom) так и в файлах шаблона.
Требования: версия PHP 5.1 и выше
Обновление: Country Filter 2.01. База данных используется от сервиса: https://db-ip.com/db/
2. Инструкция по установке подстраивается под версию DLE.
3. Добавлена админка и инструкцию по импорту базы IP-адресов.
4. Добавлена поддержка версий DLE начиная с 8.3 и выше.
5. Оптимизирован поиск по базе страны посетителя.
6. Поддержка IPv6.
Режим отладки/проверки работы модуля
Файл: /engine/modules/sitelogin.php
Что бы отладить/проверить работу модуля, в самом начале этого файла заменить:
$_IP = get_ip();
на нужный IP, например:
$_IP = "192.168.0.1";
Внимание! В целях безопасности не стоит это делать на общедоступном сайте!
Для проверки определённой страны, нужно в файле: /engine/modules/show.full.php
Перед правками вставленными по инструкции установки модуля добавить:
echo $member_id['user_country'];
и если вверху страницы полной новости выведется не страна для которой скрывается, в данном случае RU, то надо перелогинится на сайт, или если отлаживалось подменой IP, как описано выше, то удалить эту отладку, либо наоборот, в случае локальной проверки, вписать IP нужной страны.
Пример использования с настройкой через доп.поле
Создаём доп.поле:
Название: not_ru
Описание: Скрыть от РФ
Тип: список
Значение: первая строка пустая, вторая строка: да
В шаблоне применяем тег:
[xfgiven_not_ru][not-country=RU] доп.поле = да, видят все, кроме RU [/not-country][/xfgiven_not_ru]
[xfnotgiven_not_ru] доп.поле = пусто, видят все [/xfnotgiven_not_ru]
Пример удаления тегов attachment с текста полной новости с настройкой через доп.поле
Доп.поле используется созданное в прошлом примере.
Файл: /engine/modules/show.full.php
Перед правками вставленными по инструкции установки модуля добавить:
#****** Country Filter *** remove attachment ******#
if( $xfieldsdata['not_ru'] == "да" AND $member_id['user_country'] == "RU" ) {
$tpl->result['content'] = preg_replace( "#\[attachment=(.+?)\]#is", "", $tpl->result['content'] );
}
Пример использования со списком стран через доп.поле
Удалить правки что вносились по инструкции установки модуля в файл: /engine/classes/templates.class.php
Создать доп.поле:
Название: country
Описание: Скрыть от стран
Тип: одна строка
Использовать при желании (можно оставить поле пуcтым)
В новости указать символьный код страны, или стран через запятую от которых надо скрыть часть контента
Пример использования в шаблоне:
[xfgiven_country][not-country=[xfvalue_country]] доп.поле не пустое, видят все, кроме [xfvalue_country] [/not-country][/xfgiven_country]
[xfnotgiven_country] доп.поле пустое, видят все [/xfnotgiven_country]
Внимание! Теги модуля после этого будут работать только в текстах и шаблонах краткой, полной и кустом новостей, в остальных шаблонах сайта теги модуля не будут отработаны.
Пример удаления тегов attachment с текста полной новости со списком стран через доп.поле
Доп.поле используется созданное в прошлом примере.
Файл: /engine/modules/show.full.php
Перед правками вставленными по инструкции установки модуля добавить:
#****** Country Filter *** remove attachment ******#
if( $xfieldsdata['country'] != "" ) {
if( in_array( $member_id['user_country'], explode( ",", $xfieldsdata['country'] ) ) ) {
$tpl->result['content'] = preg_replace( "#\[attachment=(.+?)\]#is", "", $tpl->result['content'] );
}
}
Автор: MSW
Версия DLE: 8.3, 8.5, 9.0, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 10.0, 10.1, 10.2, 10.3, 10.4
Сайт поддержки: 0-web.ru
Внимание! У Вас нет прав для просмотра скрытого текста.
dle