
Представляем модуль для DLE Country Filter v2.0 - для добавления новых тегов фильтрации контента по IP-адреса в зависимости от страны посетителя. Фильтрация выполняется на основе базы данных IP адресов. Модуль Country Filter для DLE позволяет скрыть или показывать информацию на сайте пользователям по адресам IP. К примеру для пользователей из Украины не будет доступна информация в полной или краткой новости, а их РФ будет.
Требования: версия PHP 5.1 и выше
Режим отладки/проверки работы модуля
Файл: /engine/modules/sitelogin.php
Что бы отладить/проверить работу модуля Country Filter v2.0, в самом начале этого файла заменить:
$_IP = get_ip();
на нужный IP, например:
$_IP = "192.168.0.1";
Внимание! В целях безопасности не стоит это делать на общедоступном сайте!
Для проверки определённой страны, нужно в файле: /engine/modules/show.full.php
Перед правками вставленными по инструкции установки модуля добавить:
echo $member_id['user_country'];
и если вверху страницы полной новости выведется не страна для которой скрывается, в данном случае RU, то надо перелогинится на сайт, или если отлаживалось подменой IP, как описано выше, то удалить эту отладку, либо наоборот, в случае локальной проверки, вписать IP нужной страны.
Удалить правки что вносились по инструкции установки модуля в файл: /engine/classes/templates.class.php
Создать доп.поле:
Название: country
Описание: Скрыть от стран
Тип: одна строка
Использовать при желании (можно оставить поле пустым)
Название: country
Описание: Скрыть от стран
Тип: одна строка
Использовать при желании (можно оставить поле пустым)
В новости указать символьный код страны, или стран через запятую от которых надо скрыть часть контента
Пример использования в шаблоне
[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'] );
}
}
Модуль Country Filter v2.0 добавляет в DLE функционал фильтрации контента в зависимости от страны посетителя.
Модуль Country Filter добавляет для текста новостей и шаблонов теги:
[country=RU] отображать блок только для посетителей с России [/country]
[country=RU,UA] отображать блок только для посетителей с России и Украины [/country]
[not-country=RU] скрыть блок от посетителей из России [/not-country]
[not-country=RU,UA] скрыть блок от посетителей из России и Украины [/not-country]
и т.д. можно задавать код любой из стран или их список через запятую
Данные теги можно использовать как непосредственно в тексте новостей(краткой, полной и выводимых тегом custom) так и в файлах шаблона дле.
Совместимая версия DataLife Engine : 8.3- DLE 10.4, возможно будет работать на DLE 10.5
Автор: MSW источник
Скачать модули для дле, а также подробное описание модуля Country Filter v2.0 :