DLE Country Filter v2.0


Представляем модуль для 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
Описание: Скрыть от стран
Тип: одна строка
Использовать при желании (можно оставить поле пустым)

В новости указать символьный код страны, или стран через запятую от которых надо скрыть часть контента
Пример использования в шаблоне

[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 :

Country-Filter-v2.0.zip [222,63 Kb] (cкачиваний: 128)
  • 80

Комментарии 1

nihaoma от 26 июля 2015 19:39
Hello,How can use the Country Filter under xfiles?

e.g:

[xfgiven_iframe]
<div style="position:relative;padding-bottom:56.25%;padding-top:25px;

height:0;width:100%;min-width:100%">
   <div id="player_box">
	<iframe src="[xfvalue_iframe]" frameborder="0" allowfullscreen style="position:absolute;top:0;left:0;width:100%;height:

100%"></iframe>
   </div>
</div>
    
[/xfgiven_iframe]
Добавить комментарий

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent