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

Loader::includeModule: метод Битрикс

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

//    Bitrix\Main\Loader::includeModule()
//    /bitrix/modules/main/lib/loader.php:70

    /**
     * Includes module by its name
     *
     * @param string $moduleName Name of the included module
     * @return bool Returns true if module was included successfully, otherwise returns false
     * @throws LoaderException
     */
    public static function includeModule($moduleName)
    {
        if (!is_string($moduleName) || $moduleName == "")
            throw new LoaderException("Empty module name");
        if (preg_match("#[^a-zA-Z0-9._]#", $moduleName))
            throw new LoaderException(sprintf("Module name '%s' is not correct", $moduleName));

        $moduleName = strtr($moduleName, static::ALPHA_UPPER, static::ALPHA_LOWER);

        if (self::SAFE_MODE)
        {
            if (!in_array($moduleName, self::$safeModeModules))
                return false;
        }

        if (isset(self::$arLoadedModules[$moduleName]))
            return self::$arLoadedModules[$moduleName];

        if (isset(self::$arSemiloadedModules[$moduleName]))
            trigger_error("Module '".$moduleName."' is in loading progress", E_USER_WARNING);

        $arInstalledModules = ModuleManager::getInstalledModules();
        if (!isset($arInstalledModules[$moduleName]))
            return self::$arLoadedModules[$moduleName] = false;

        $documentRoot = static::getDocumentRoot();

        $moduleHolder = self::LOCAL_HOLDER;
        $pathToInclude = $documentRoot."/".$moduleHolder."/modules/".$moduleName."/include.php";
        if (!file_exists($pathToInclude))
        {
            $moduleHolder = self::BITRIX_HOLDER;
            $pathToInclude = $documentRoot."/".$moduleHolder."/modules/".$moduleName."/include.php";
            if (!file_exists($pathToInclude))
                return self::$arLoadedModules[$moduleName] = false;
        }

        self::$arLoadedModulesHolders[$moduleName] = $moduleHolder;
        self::$arSemiloadedModules[$moduleName] = true;

        $res = self::includeModuleInternal($pathToInclude);

        unset(self::$arSemiloadedModules[$moduleName]);
        if ($res === false)
            return self::$arLoadedModules[$moduleName] = false;

        return self::$arLoadedModules[$moduleName] = true;
    }

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

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

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

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

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

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

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

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