5 июля 2013, 9:55

Иногда на сайтах требуется вывести какой-нибудь блок, сформированный уникально в зависимости от города посетителя. К примеру, если я нахожусь в Екатеринбурге, то в шапке сайта мне выводится телефон офиса в Екатеринбурге, если в Москве, то соответственно другой телефон.

Еще один пример который в последнее время часто используется на интернет-магазинах. В карточке товара выводится блок о доставке товара в город который определяется по ip адресу посетителя.

Итак, чтобы реализовать этот функционал в 1С-Битрикс на вашем сайте заходим по адресу /bitrix/php_interface и открываем файл init.php

Добавляем в него такие функции:

<?
function get_city_by_ip($ip){
  $data = file_get_contents_timeout("http://ipgeobase.ru:7020/geo?ip=".$ip);
  if($data){
    $xml = simplexml_load_string($data);
    return $xml->ip->city;
  }else{
    return "Москва";
  }
}

function file_get_contents_timeout($filename, $timeout=3)
{
  if(strpos($filename,"://")===false) return file_get_contents($filename);
  if(!function_exists("curl_init")) return false;
  $session=curl_init($filename);
  curl_setopt($session,CURLOPT_MUTE,true);
  curl_setopt($session,CURLOPT_RETURNTRANSFER,true);
  curl_setopt($session,CURLOPT_CONNECTTIMEOUT,$timeout);
  curl_setopt($session,CURLOPT_TIMEOUT,$timeout);
  curl_setopt($session,CURLOPT_USERAGENT,"Mozilla/5.0 (compatible)");
  $result=curl_exec($session);
  curl_close($session);
  return $result;
}
?>

Но правильнее будет добавить эти функции не в сам файл init.php, а подключить к нему другой файл, например functions.php и уже в него вставить эти функции.

Подключить файл functions.php можно используя в файле init.php такой код:

<?if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/functions.php"))
		require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/functions.php");
?>

В данном случае я положил файл functions.php в папку /bitrix/php_interface/include/

Это более правильный подход, так как вы можете подключать множество файлов, которые добавляют различный функционал, к примеру обработчики событий могут лежать в файле events.php, а агенты в файле agents.php

Далее нам осталось вывести результат работы данных функций в любом месте на сайте где это требуется.
Я покажу на примере блока со скриншота.

<div class="order-info">
   <?$city = get_city_by_ip($_SERVER["REMOTE_ADDR"]);?>
   <?if($city=="Москва"){?>
   <p><strong>Бесплатная доставка по Москве!</strong></p>
   <?}else{?>
   <p><strong>Быстрая доставка в город <?=$city?>!</strong></p>
   <?}?>
</div>

Итак, если пользователь в Москве, то ему будет выведено сообщение «Бесплатная доставка по Москве!». Если определился любой другой город, то пользователь увидит сообщение «Быстрая доставка в город {НАЗВАНИЕ ГОРОДА}».

Надеюсь данная информация будет полезна.

   

7 комментариев РСС

Отлично написано, коротко и понятно! Спасибо, пошел тестить!

Все работает! Рекомендую!

сейчас в /bitrix/php_interface нет файла init.php
а если его создать сайт летит к чертям...

Отлично! а как вывести это в массив компонента, чтобы менять почту на которую отправляется почта?

например:

<?$APPLICATION->IncludeComponent(
«altasib:feedback.form»,
«»,
Array(
«IBLOCK_TYPE» => «altasib_feedback»,
«SECTION_MAIL_ALL» => «mail@mail.ru»,

вставил данный скрипт, не срабатывает. всегда идет по ветке }else{
return «Москва»;
такое ощущение что косяк с кодировкой. как можно проверить?

Annews

У нас обслуживает скважины, производит Анализ воды из скважины.

У нас вы найдете Ремонт очистных сооружений, а также Коллектора, мы можем произвести Подбор оборудования для обустройства скважины. Бурение скважин на воду, Инженерные изыскания, Водоснабжение частного дома.

У нас для вас естьв продажу(услуги) КАНАЛИЗАЦИОННЫЕ ДРОБИЛКИ, Силосы для хранения сыпучих продуктов, Промышленные смесители, Ленточный фильтр-пресс, Контрольные колодцы, Листовая загрузка, Очистка промышленных сточных вод (молоко, пиво, спирт, животноводство, прачки т. д.), ОДЪЕМНЫЕ УСТРОЙСТВА И МЕТАЛЛОКОНСТРУКЦИИ Нестандартные металлоконструкции, ВОДООЧИСТНОЕ ОБОРУДОВАНИЕ Гидроэлеватор, ПОДЪЕМНЫЕ УСТРОЙСТВА И МЕТАЛЛОКОНСТРУКЦИИ Металлоконструкции фермы, ОЧИСТКА ЛИВНЕВЫХ СТОЧНЫХ ВОД Жироуловители, НАСОСНОЕ И КОМПРЕССОРНОЕ ОБОРУДОВАНИЕ (Грунфос, КСБ, Вило, КИТ, Взлёт, ТВП) Аэраторы дисковые, ВОДОПОДГОТОВКУ Обезжелезиватели и деманганаты, а также все для автомойки Автомойки на базе флотации.

Автономная канализация : <a href=https://hooppa.ru> Устранение засоров скважин</a>

Gedbokamib

Сегодня безумно много мужчин покупают загородные дома. На даче или в коттедже есть желание создать максимум для отпуска. Если вы желаете чувствовать себя в загородном комплексе уютно, рекомендуем вам сделать озеленение. С помощью зеленых газонов и красивых лужаек внешний вид коттеджа будет красивым! Очень много мужчин изначально создают красивый ландшафтный дизайн, до того, как строить загородный коттедж. Если вы желаете создать базу отдыха у себя дома, предлагаем перейти к нам на сайт и узнать подробнее про — <a href=https://greenhistory.ru/tseny/gazon_rulonniy>рулонный газон</a> .

На greenhistory.ru у вас доступна возможность приобрести услуги по озеленению. Достаточно много спецов устроены в организации Green History. Все сотрудники считаются квалифицированными специалистами, которые могут постелить рулонный газон и сделать симпатичный внешний вид задней площадки. С содействием администраторов организации вы сможете подобрать, какой газон вам больше подойдёт и на что надо обратить внимание. Сотрудники могут проконсультировать вас и касаемо того, какой ландшафтный дизайн участка подойдёт лучше исключительно вам.

Как ведется работа?

Специалисты внимательно проверят ваш участок, затем приступят к дизайнерскому плану. Необходимо подходить к каждой площадке творчески, что и делают специалисты компании. Они смогут придумать симпатичный внешний вид, применяя специальные навыки и заработанный опыт. Вас ожидает ряд приятных находок. Вы сможете ощутить себя как на отдыхе, после того, как лужайка будет построена.

В это время безумно много бабушек и дедушек радуются симпатичному внешнему виду их участка. С помощью серьёзной работы строителей ваш участок будет радовать не только вашу душу, но и ваше сердце длительные годы. Исключительно для этого специалисты организации и подбирают специальный посадочный материал, который хорош по определенным характеристикам. С содействием него вы сможете получить газон, который будет вам служить десятки лет.

Если газон будет профессиональным, и он будет правильно положен, вы можете не колебаться в том, что он будет лежать долгое время. Профессионализм в работе — это особенный нюанс, на чем основывают индивидуальную работу сотрудники Green History.

Как по уму оформить заявку?

Вы можете оформить заказ на портале. Достаточно зайти на greenhistory.ru где есть также есть информация про <a href=https://greenhistory.ru/tseny/landshaftnyj-dizajn>ландшафтный дизайн</a> , у вас будет вероятность сделать заказ online. На ресурсе вы найдёте рулонные газоны, которые можно полностью изучить. Если вы планируете узнать конечную смету на выполнение работ по ландшафтному дизайну, можно соединиться со специалистами по телефону 8-(495)-504-15-24, где они смогут полностью ответить на все вопросы.

Вас проконсультируют не только по общим вопросам, но и касаемо проектирования. Квалифицированные сотрудники также прибудут к вам, где они имеют шанс проверить все замеры и внимательно изучают структуру участка.

Если вам важны чисто инженерные чертежи, вы имеете шанс также обращаться к менеджерам. Они смогут проинформировать вас по многим вопросам. Они подскажут, где лучше поставить водоем, а где лучше сделать клумбу.

Уход за садом

В зависимости от ваших предпочтений вам могут подобрать газон. Если вы охотно хотите не тратить большие суммы на озеленение, вы можете всё обсудить заранее. Сегодня ландшафтный дизайн заказать возможно быстро, нужно обсудить с администратором детали и рассказать о индивидуальных пожеланиях.

Функции компании

На портале вы также найдёте примеры. Если вам нужен детский игровой комплекс, его без сложностей смогут установить в сжатые сроки. Если вам нужен проект ландшафтного дизайна для большого загородного дома, то его могут моментально сделать сотрудники. Даже если у вас небольшая лужайка, но вы стремитесь по уму озеленить её, администраторы смогут что-то придумать. На территории можно использовать красивые гранитные камни, водоемы. Если вы стремитесь озеленить территорию, где расположен сад, это тоже реально сделать. Тогда, ландшафтный дизайн участка будет полностью изучаться и обсуждаться. Ведь разные деревья растут в каких-то местах, про что необходимо помнить. Если будет плохо падать тень или деревцу будет мало дневного времени, оно положит голову.

Красивый внешний вид

После завершения всех действий вы сможете лично убедиться в том, что с вашим участком работали профессионалы. Если вам понадобится клинкерная брусчатка для загородного дома, то через компанию её можно будет заказать. Организация проведет все нужные монтажные работы, а укладка брусчатки пройдёт в пять этапов, после чего внешнее состояние участка будет безупречным! Помимо этого, реально будет также установить дополнительно освещение или купить специальное оборудование. Менеджеры делают всё моментально и хорошо, а все работы ведутся согласно точным моментам.

Работа со специалистами — залог успеха

Если вы желаете воспользоваться услугами фирмы, обращайтесь на greenhistory.ru, где вам детально расскажут про всё. Проект ландшафтного дизайна будет разработан моментально, а менеджеры сделают все замеры и сориентируют вас по срокам. Фирма расположена в г. Москва, Дмитровское шоссе, дом 100, офис 414, где вы всегда сможете их найти.

Ваш комментарий

адрес не будет опубликован

ХТМЛ не работает


Ctrl + Enter