Evgenius

"Выбор города" для 1С-Битрикс

Выбор города для 1С-Битрикс маркетплейс

Реализация выбора города на сайте.

Модуль автоматически определяет город пользователя, если город не определен - выводит город по умолчанию.

Модуль включает компоненты:

  • wsm:city.selector - выбор города
  • wsm:city.info - вывод телефона и/или email для выбранного города

Модуль добавляет новый тип свойства инфоблока для привязки элементов к городу.
Это поможет отфильтровать например новости только для выбранного города.

два сервиса геолокации:

- IPFeoBase
- DaData.ru

DaData.ru - бесплатные запросы до 10 тыс. в день. Для получения ключа необходимо полнить счет на небольшую сумму для возможности генерации ключа.

1000.00

Скриншоты

Использование

После установки будут доступны компоненты:

  • city.selector — список городов для выбора
    $APPLICATION->IncludeComponent(
        "wsm:city.info",
        "",
        array()
        );
    
  • city.info — вывод информации по выбранному городу
    $APPLICATION->IncludeComponent(
        "wsm:city.selector",
        "",
        array()
        );
    

Примеры

Получение города:

use \Bitrix\Main\Loader;

if(Loader::includeModule('wsm.city'))
{
	$CCity = Wsm\City::getInstance();
	$arCity = $CCity->getCity();
}

Фильтраация элементов:

После установки модуля в инфоблоках будет доступен новый тип свойства: "Привязка к городу"
Создайте свойство с данным типом для привязки элемента к городу.

Для примера, код поля, содержащий привязку: CODE.
Выберем элементы принадлежащие к выбранному городу и элементы, для которых не установлена привязка

use \Bitrix\Main\Loader;

if(Loader::includeModule('wsm.city'))
{
	$CCity = Wsm\City::getInstance();
	$arCity = $CCity->getCity();

	global $arFilterNews;
	$arFilterNews[] = array(
		'LOGIC' => 'OR',
		'PROPERTY_CITY' => false,
		'=PROPERTY_CITY' => $arCity['ID']
	);
}

Используйте далее arFilterNews как имя фильтра, например, в параметрах компонента новостей:

	'FILTER_NAME' => 'arFilterNews'

Использование поддоменов:

Вывод ссылок. Скопируйте код компонента wsm:city.selector

В файле template.php измените ссылку

	...
	foreach ($arResult['CITY_LIST'] as $city):
		...
		<?=$city['NAME']?>
		...
	endforeach;
	...

Проверка города в init.php

use \Bitrix\Main\Loader;

if(Loader::includeModule('wsm.city'))
{
	$CCity = Wsm\City::getInstance();

	// проврка поддомена
}

Поддтверждение города:

Модуль имеет свойство, позволяющее хранить информацию о подтверждении города пользователем.

При необходимости можно вывести окно подтверждения, автоматически определенного города.

use \Bitrix\Main\Loader;

if(Loader::includeModule('wsm.city'))
{
	$CCity = Wsm\City::getInstance();
	if($CCity->isConfirm())
	{
		// вывести попап для подтверждения города
	}
}
при нажатии на подтверждающую кнопку: отправить ajax запрос в php со следующим содержанием
use \Bitrix\Main\Loader;

if(Loader::includeModule('wsm.city'))
{
	$CCity = Wsm\City::getInstance();
	$CCity->setConfirm(true);
}

Ссылки

Bitrix marketplace:
https://marketplace.1c-bitrix.ru/solutions/wsm.city/

WiKi модуля:
https://bitbucket.org/zent-tech/wsm.city/wiki

Проблемы и пожелаяния оставляйте в трекер задач:
https://bitbucket.org/zent-tech/wsm.city/issues

Техническая поддержка

Техническая поддержка модулей для 1С-Битрикс
осуществляется при обращении на Email: support@zent.tech

Вы можете заказать разработку модуля для 1С-Битрикс под ваши требования

Все модули