- Установка происхоит, как и с обычным модулем.
- Закидываем в /bitrix/modules или /local/modules/ и после этого устанавливаем в
/bitrix/admin/partner_modules.php?lang=ru
- Каждое свойство инфоблока регионов становится плейсхолдером по принципу
код_свойства = {код_свойства} => Значение свойства
В созданном после установки инфоблоке уже есть 3 плейсхолдера. Имя элемента инфоблока = домен (test.example.ru), а свойства это плейсхолдеры
Т.е для того, чтобы создать новый плейсходер, достаточно добавить новое свойство в инфоблок регионов.
(Работает с свойстами типа строка. И они не должны быть множественными)
- Возможность привязки отдельных элементов к элементам инфоблока. Можно например в фильтре вывода товаров ограничить регионы
- Автозамена robots.txt и sitemap.xml. После установки в корне появятся два файла:
- robots.php;
- sitemap.php;
Данные файлы служат для автоматической подмены оригинальных файлов. Для их работы нужно в .htaccess прописать:
RewriteRule ^robots.txt$ /robots.php [L]
RewriteRule ^sitemap.xml$ /sitemap.php [L]
- Возможность использовать везде без внесения лишнего кода. Для подмены контента используется "OnEndBufferContent" событие.
Т.е можно написать в любом месте на сайте{in_city}
и контент там подменится
- GeoIP. Наверное все уже видели магию в виде "Название города - это ваш город?". Стандартными битрикс возможности это реализовано в функции \Orwo\Region\Init::getRegionIP(); Данная функция получает элемент региона исходя из IP пользователя. Если не удалось найти, то функция получает ответ false.
\Orwo\Region\Init::getRegions(true);
- Получить массив свойств текущего регион\Orwo\Region\Init::getRegions();
- Получить массив свойств всех регионов- Подмена плейсхолдеров в строке
$str = 'Купить {in_city} яблоки';
$str = \Orwo\Region\Init::replaceStrRegion($str);
// $str = 'Купить в Москве яблоки'
\Orwo\Region\Init::getRegionIP();
- Получить регион по IP пользователя
- В: Где мои $GLOBALS?
- О: Если очень хочется, то в init.php или header.php можно подключить:
global $mainRegion, $arRegions;
$mainRegion = \Orwo\Region\Init::getRegions(true);
$arRegions = \Orwo\Region\Init::getRegions();
И так как используется событие "OnEndBufferContent", то можно просто в любом месте писать плейсхолдер {city} Почему GLOBALS - зло
- В: Почему {city}, а не #city#?
- О: Стараюсь соответсвовать стандартам PSR