Поддержка серверов

ExecuteModuleEventEx: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=161754

//    ExecuteModuleEventEx()
//    /bitrix/modules/main/classes/general/module.php:434

function ExecuteModuleEventEx($arEvent, $arParams = array())
{
    $r = true;

    if(
        isset($arEvent["TO_MODULE_ID"])
        && $arEvent["TO_MODULE_ID"]<>""
        && $arEvent["TO_MODULE_ID"]<>"main"
    )
    {
        if(!CModule::IncludeModule($arEvent["TO_MODULE_ID"]))
            return null;
    }
    elseif(
        isset($arEvent["TO_PATH"])
        && $arEvent["TO_PATH"]<>""
        && file_exists($_SERVER["DOCUMENT_ROOT"].BX_ROOT.$arEvent["TO_PATH"])
    )
    {
        $r = include_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT.$arEvent["TO_PATH"]);
    }
    elseif(
        isset($arEvent["FULL_PATH"])
        && $arEvent["FULL_PATH"]<>""
        && file_exists($arEvent["FULL_PATH"])
    )
    {
        $r = include_once($arEvent["FULL_PATH"]);
    }

    if(array_key_exists("CALLBACK", $arEvent))
    {
        //TODO: Возможно заменить на EventManager::getInstance()->getLastEvent();
        global $BX_MODULE_EVENT_LAST;
        $BX_MODULE_EVENT_LAST = $arEvent;

        if(isset($arEvent["TO_METHOD_ARG"]) && is_array($arEvent["TO_METHOD_ARG"]) && count($arEvent["TO_METHOD_ARG"]))
            $args = array_merge($arEvent["TO_METHOD_ARG"], $arParams);
        else
            $args = $arParams;

        return call_user_func_array($arEvent["CALLBACK"], $args);
    }
    elseif($arEvent["TO_CLASS"] != "" && $arEvent["TO_METHOD"] != "")
    {
        //TODO: Возможно заменить на EventManager::getInstance()->getLastEvent();
        global $BX_MODULE_EVENT_LAST;
        $BX_MODULE_EVENT_LAST = $arEvent;

        if(is_array($arEvent["TO_METHOD_ARG"]) && count($arEvent["TO_METHOD_ARG"]))
            $args = array_merge($arEvent["TO_METHOD_ARG"], $arParams);
        else
            $args = $arParams;

        //php bug: http://bugs.php.net/bug.php?id=47948
        class_exists($arEvent["TO_CLASS"]);
        return call_user_func_array(array($arEvent["TO_CLASS"], $arEvent["TO_METHOD"]), $args);
    }
    else
    {
        return $r;
    }
}

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение