Skip to content
This repository has been archived by the owner on Jan 17, 2023. It is now read-only.
/ orwo.region Public archive

Original Works (Isaev): Region – свой контент на алиасах (orwo.region)

Notifications You must be signed in to change notification settings

Isa3v/orwo.region

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Original Works (Isaev): Region – свой контент на алиасах (orwo.region)


Установка


  • Установка происхоит, как и с обычным модулем.
  • Закидываем в /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} и контент там подменится

⚠️ В режиме редактирования и если вы находитесь в дериктории /bitrix/... данные не подменяются, для того чтоб вы видели плейсхолдеры.

  • 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 - зло


About

Original Works (Isaev): Region – свой контент на алиасах (orwo.region)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages