<?$APPLICATION->IncludeComponent("twofingers:location","",Array());?> |
| Если вы используете модифицированный компонент sale.order.ajax, для того, чтобы использовать улучшенный выбор местоположения при оформлении заказа, необходимо для компонента sale.ajax.locations прописать шаблон tf_location. |
#TF_LOCATION_CITY_ID# - ID выбранного города
#TF_LOCATION_CITY_NAME# - Имя выбранного города
Например: handleMePlease('#TF_LOCATION_CITY_ID#', '#TF_LOCATION_CITY_NAME#'); |
BX.addCustomEvent("onTFLocationSetLocation", function(response)
{
if (response.hasOwnProperty('location')) {
console.log(response.location);
}
if (response.hasOwnProperty('content')) {
console.log(response.content);
}
}); |
use Bitrix\Main\Composite\BufferArea;
use Bitrix\Main\Loader;
use TwoFingers\Location\Entity\Location;
use TwoFingers\Location\Factory\LocationFactory;
$frame = new BufferArea("my_dynamic_area"); // для композитного режима
$frame->begin(); // для композитного режима
if (Loader::includeModule('twofingers.location')
&& $location = LocationFactory::buildByStorage())
{
echo $location->getId() . '<br>'; // ID местоположения
echo $location->getCode() . '<br>'; // Код местоположения
echo $location->getName() . '<br>'; // название местоположения
if ($location->hasParent())
{
$parents = LocationFactory::buildParentsCollection($location);
/** @var Location $parent */
foreach ($parents as $parent)
{
// выводим только регион и страну
if (in_array($parent->getType(), [Location::TYPE_REGION, Location::TYPE_COUNTRY]))
{
echo $parent->getId() . '<br>'; // ID родительского местоположения
echo $parent->getCode() . '<br>'; // Код родительского местоположения
echo $parent->getName() . '<br>'; // название родительского местоположения
}
}
}
}
$frame->end(); // для композитного режима
|
use Bitrix\Main\Composite\BufferArea;
use Bitrix\Main\Loader;
use TwoFingers\Location\Factory\LocationFactory;
$frame = new BufferArea("my_dynamic_area"); // для композитного режима
$frame->begin(); // для композитного режима
if (Loader::includeModule('twofingers.location')) {
$location = LocationFactory::buildCurrent();
if ($location) {
echo $location->getName();
}
}
$frame->end(); // для композитного режима |
use Bitrix\Main\Composite\BufferArea;
use Bitrix\Main\Loader;
use TwoFingers\Location\Factory\LocationFactory;
$frame = new BufferArea("my_dynamic_area"); // для композитного режима
$frame->begin(); // для композитного режима
if (Loader::includeModule('twofingers.location')) {
$location = LocationFactory::buildByIp('5.255.255.88'); //yandex.ru
if ($location) {
echo $location->getName();
}
}
$frame->end(); // для композитного режима |
use Bitrix\Main\Composite\BufferArea;
use Bitrix\Main\Loader;
use TwoFingers\Location\Factory\LocationFactory;
$frame = new BufferArea("my_dynamic_area"); // для композитного режима
$frame->begin(); // для композитного режима
if (Loader::includeModule('twofingers.location')) {
$location = LocationFactory::buildDefault();
if ($location) {
echo $location->getName();
}
}
$frame->end(); // для композитного режима |
$location = \TwoFingers\Location\Factory\LocationFactory::buildByStorage(); echo $location->getName(); // Москва echo $location->getName(Location::CASE_ROD); // Москвы echo $location->getName(Location::CASE_DAT); // Москве echo $location->getName(Location::CASE_VIN); // Москву echo $location->getName(Location::CASE_TVOR); // Москвой echo $location->getName(Location::CASE_PRED); // Москве |
use Bitrix\Main\Composite\BufferArea;
use Bitrix\Main\Loader;
use TwoFingers\Location\Factory\ContentFactory;
use TwoFingers\Location\Factory\LocationFactory;
$frame = new BufferArea("my_dynamic_area"); // для композитного режима
$frame->begin(); // для композитного режима
if (Loader::includeModule('twofingers.location')
&& $location = LocationFactory::buildByStorage())
{
$content = ContentFactory::buildByLocation($location);
if ($content)
{
echo $content->getPhone() . '<br>'; // вывод значения свойства PHONE инфоблока "Местоположения" -> "Контент", магический метод
echo $content->getPropertyValue('PHONE') . '<br>'; // тоже самое без магии
echo $content->getPreviewText() . '<br>'; // вывод анонса, магический метод
echo $content->getFieldValue('PREVIEW_TEXT') . '<br>'; // анонс без магии
echo $content->getDomain(); // домен для перенаправления
var_dump($content->getPriceTypes()); // получить доступные типы цен (только для старших редакций Битрикс)
var_dump($content->getStores()); // получить доступные склады (только для старших редакций Битрикс)
var_dump($content->getData()); // все поля и свойства привязанного элемента
}
}
$frame->end(); // для композитного режима
|
|
| Элемент инфоблока обязательно должен быть связан с местоположением через свойство "ИД местоположения" или название. |
use Bitrix\Main\Composite\BufferArea;
use Bitrix\Main\Loader;
use TwoFingers\Location\Factory\LocationFactory;
$frame = new BufferArea("my_dynamic_area"); // для композитного режима
$frame->begin(); // для композитного режима
if (Loader::includeModule('twofingers.location')
&& $location = LocationFactory::buildByStorage())
{
echo $location->getDomain();
}
$frame->end(); // для композитного режима |
| Редирект между доменами/поддоментам может быть заблокирован политикой CORS на сайте. Необходимо настроить эту политику самостоятельно! |
use Bitrix\Main\Composite\BufferArea;
use Bitrix\Main\Loader;
use TwoFingers\Location\Factory\LocationFactory;
$frame = new BufferArea("my_dynamic_area"); // для композитного режима
$frame->begin(); // для композитного режима
if (Loader::includeModule('twofingers.location')
&& $location = LocationFactory::buildByStorage())
{
if ($location->getName() == 'Москва')
echo "+7 (495) 055-65-19";
else
echo "8 800 500 40 30";
}
$frame->end(); // для композитного режима |
use Bitrix\Main\EventManager;
use TwoFingers\Location\Factory\LocationFactory;
use TwoFingers\Location\Storage;
EventManager::getInstance()->addEventHandler('twofingers.location', 'afterLocationDetect', function (){
$location = LocationFactory::buildByStorage();
if ($location->getName() == 'Троицк') {
$newLocation = LocationFactory::buildByName('Москва');
if ($newLocation) {
Storage::setLocation($newLocation);
}
}
});
|
Внимание! Повторная установка в демо-режиме приведет к окончанию демо‑режима и невозможности использовать модуль.