Модуль добавляет в 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) так и в файлах шаблона.
Что нового в этой версии:
1. База данных используется от сервиса
DB-IP.
2. Инструкция по установке подстраивается под версию DLE.
3. Добавлена админка и инструкцию по импорту базы IP-адресов.
4. Оптимизирован поиск по базе страны посетителя.
5. Поддержка 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]
Доп.поле используется созданное в прошлом примере. В
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]
Внимание! Теги модуля после этого будут работать только в текстах и шаблонах краткой, полной и кустом новостей. В остальных шаблонах сайта теги модуля не будут отработаны.
Доп.поле используется созданное в прошлом примере. В
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'] );
}
}
•
Версия DLE: 8.3-10.4
•
Кодировка: win-1251
•
Версия PHP: 5.1 и выше
•
Автор: MSW
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.