API


Для удобной работы с модулем региональных поддоменов создано специальное API, предназначенное в первую очередь для упрощения генерации seo-текстов.

На данный момент решение предоставляет функции, описанные ниже.

makeText

string makeText(string $text = "", array $aReplace = null);

Описание

Функция похожа на стандартную для Битрикса GetMessage, с той лишь разницей, что во второй параметр не надо добавлять регионозависимые переменные, они сами берутся из сессии. Для вставки переменной из сессионного массива региона используйте префикс #VREGION_.

Пример вызова

Реальный пример того, как можно задавать динамическую мету на детальной товара. Код взят из component_epilog.php шаблона компонента catalog.element.

global $APPLICATION;
$APPLICATION->SetPageProperty("title", Aristov\VRegions\Tools::makeText("#NAME# в #VREGION_WHERE#", Array("#NAME#" => $arResult["NAME"])));
$APPLICATION->SetPageProperty("keywords", Aristov\VRegions\Tools::makeText("#NAME# в #VREGION_WHERE#, купить #NAME# в #VREGION_WHERE#, приобрести #NAME# в #VREGION_WHERE#", Array("#NAME#" => $arResult["NAME"])));
$APPLICATION->SetPageProperty("description", Aristov\VRegions\Tools::makeText("#NAME# в самом лучшем интернет-магазине в #VREGION_WHERE#", Array("#NAME#" => $arResult["NAME"])));

ifRegionIsDefault

boolean ifRegionIsDefault(integer $reginID = null);

Описание

Выдаёт true в случае, если переданный регион задан как регион по умолчанию.

Пример вызова

if (Aristov\VRegions\Tools::ifRegionIsDefault($_SESSION["VREGIONS_REGION"]["ID"])){?>
	<p>Возможен самовывоз.</p>
<?}


Аристов Василий
Разработчик всех модулей на проекте

Теги



Что-то осталось непонятным или вы нашли неточность? Напишите, пожалуйста об этом в комментариях.

Комментарии (1)

Чумаков Илья

Чумаков Илья 17.01.2020 15:52 #comment4912

Думаю, здесь будет актуально: если требуется произвести действия при смене города пользователем, напишите обработчик на событие OnProlog и установите сортировку более 100. В обработчике сохраняйте в сессию значение города и сравнивайте с тем, что хранит сессионная переменная модуля. Если отличаются - выполняйте действия. Например:

AddEventHandler("main", "OnProlog", "regionUpdateBasket", 800);
function regionUpdateBasket()
{
    if(!IsModuleInstalled("aristov.vregions"))
        return false;


    if(!isset($_SESSION["LAST_REGION"])) {
        $_SESSION["LAST_REGION"] = $_SESSION["VREGIONS_REGION"]["CODE"];
        return array();
    }

    if($_SESSION["LAST_REGION"] == $_SESSION["VREGIONS_REGION"]["CODE"])
        return array();  
    
    $_SESSION["LAST_REGION"] = $_SESSION["VREGIONS_REGION"]["CODE"];
    // do action here
}
Аристов Василий

Аристов Василий 17.01.2020 18:43 #comment4914

Спасибо за интересный подход
Кстати, можно привязаться не к OnProlog, а к aristov.vregions OnGenerateSessionArrays. Оно запускается после генерации сессионных массивов

Написать комментарий

Чтобы писать комментарии, вам нужно войти на сайт

Авторизоваться через соцсеть

Авторизоваться через vk.com Авторизоваться через facebook.com

Хотите такие же комментарии себе на сайт? Купите готовый к установке модуль