0 Пользователей и 1 Гость просматривают эту тему.
  • 14 Ответов
  • 11643 Просмотров
*

Magl

  • Осваиваюсь на форуме
  • 85
  • 3
Доброго времени суток!
Подскажите пожалуйста, как можно отключить вывод модуля для определённой страны?
Спасибо!  
« Последнее редактирование: 29.08.2013, 10:17:18 от b2z »
*

Magl

  • Осваиваюсь на форуме
  • 85
  • 3
пока что у меня идея взять список ИП страны и с помощью условий (<!--[if условие]> <![endif]-->)
для этих ИП не выводить код
Но это как-то бредово немного мне кажется мне придётся тогда весть диапазон ИП в шаблон вставлять

Посетуйте может другой вариант 
Может можно через php сделать проше определение страны и отключение вывода позиции модуля
« Последнее редактирование: 08.01.2013, 13:03:32 от Magl »
*

b2z

  • Support Team
  • 7470
  • 743
  • Разраблю понемногу
*

Magl

  • Осваиваюсь на форуме
  • 85
  • 3
Да вроде нет на PHP ничего такого из коробки... В сети можно конечно поискать. Вот, например.

Спасибо! воспользовался твоим вариантом и всё получилось
И этой стаи Ссылка взял 2 файла (geoip.inc и GeoIP.dat) которые надо подключить и кинул их в корень сайта
Дальше в шаблоне вставил код где в IF идёт сравнение по стране, если страна не совпала то выводим позицию если совпала то не выводим

Код
<?php
include("geoip.inc");
$ch = "China";
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
$defaultcountry = geoip_country_name_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);
if ($ch!==$defaultcountry){
echo '<jdoc:include type="modules" name="right-use2" style="xhtml" />';
}?>
*

varX

  • Практически профи
  • 1611
  • 105
  • разработка компонентов
Для определения страны пользователя нет никакой необходимости подключаться к левым базам и делать ненужные запросы. В php есть замечательная функция gethostbyaddr.

Код: php
$domen = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$cantry = array_reverse(explode('.', $domen));

$cantry[0] выводит ru для России и т.п.
« Последнее редактирование: 08.01.2013, 19:22:41 от lcd25 »
*

b2z

  • Support Team
  • 7470
  • 743
  • Разраблю понемногу
То есть у всех в мире есть свое доменное имя?

Цитировать
Just wanted to let everyone know that gethostbyaddr() takes more than 20 seconds to respond if the IP address is not listed in DNS.

So be careful if you are going to use this function in the production environment. You or your users may not be able to get the response from the server before the timeout occurs. Slow website only makes people very frustrated.
*

varX

  • Практически профи
  • 1611
  • 105
  • разработка компонентов
Не пишите глупости. Всем в мире не нужно свое доменное имя. Доменное имя нужно интернет-провайдеру пользователя, и как раз оно, как правило, всегда соответствует стране проживания.

Задержка 20 сек., вообще первый раз слышу такое. Если функция не находит доменное имя узла, то возвращает адрес. Пример
http://www.mirsite.ru/servis/1/2.htm
Вот адрес, который не распознается 199.227.140.1
Где 20 сек.?
*

b2z

  • Support Team
  • 7470
  • 743
  • Разраблю понемногу
Где 20 сек.?
Не знаю, не проверял и не утверждал. Цитату привел из комментов к функции. Если это не так, то просто замечательно.
*

reasons

  • Давно я тут
  • 386
  • 6
  • http://dehost.biz
а как сделать чтобы модуль выводился для определенной страны?
*

b2z

  • Support Team
  • 7470
  • 743
  • Разраблю понемногу
*

reasons

  • Давно я тут
  • 386
  • 6
  • http://dehost.biz
это надо в код модуля запихнуть?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль/код вывода в конце статьи

Автор DDAANN

Ответов: 0
Просмотров: 22
Последний ответ 20.09.2017, 10:20:48
от DDAANN
Не отображается модуль HTML-текст

Автор Inngrid

Ответов: 8
Просмотров: 570
Последний ответ 18.08.2017, 10:58:36
от lexxbry
Модуль\плагин добавления материалов пользователями

Автор sanni55

Ответов: 8
Просмотров: 316
Последний ответ 17.03.2017, 15:30:40
от sanni55
плагин-модуль уровень сложности

Автор tsergey09

Ответов: 5
Просмотров: 163
Последний ответ 15.02.2017, 16:23:51
от arma
Модуль(!) создания материала [ошибся темой, хотел в J3]

Автор victoroz

Ответов: 3
Просмотров: 145
Последний ответ 09.02.2017, 16:33:36
от voland