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

CJSCore::Init: метод Битрикс

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

//    CJSCore::Init()
//    /bitrix/modules/main/tools.php:4537

    public static function Init($arExt = array(), $bReturn = false)
    {
        if (!self::$bInited)
        {
            self::_RegisterStandardExt();
            self::$bInited = true;
        }

        if (!is_array($arExt) && strlen($arExt) > 0)
            $arExt = array($arExt);

        $bReturn = ($bReturn === true); // prevent syntax mistake

        $bNeedCore = false;
        if (count($arExt) > 0)
        {
            foreach ($arExt as $ext)
            {
                if (
                    isset(self::$arRegisteredExt[$ext])
                    && (
                        !isset(self::$arRegisteredExt[$ext]['skip_core'])
                        || !self::$arRegisteredExt[$ext]['skip_core']
                    )
                )
                {
                    $bNeedCore = true;
                    break;
                }
            }
        }
        else
        {
            $bNeedCore = true;
        }

        $ret = '';

        if ($bNeedCore && !self::isCoreLoaded())
        {
            $config = self::getCoreConfig();
            
            self::markExtensionLoaded('core');
            self::markExtensionLoaded('main.core');

            $includes = '';
            if (is_array($config['includes']))
{
foreach ($config['includes'] as $key => $item)
{
                    self::markExtensionLoaded($item);
}

                $assets = Extension::getAssets($config['includes']);
$includes .= static::registerAssetsAsLoaded($assets);
}

            $relativities = '';

            if (is_array($config['rel']))
{
$return = true;
$relativities .= self::init($config['rel'], $return);
}

            $coreLang = self::_loadLang($config['lang'], true);
$coreJs = self::_loadJS($config['js'], true);
            $coreCss = self::_loadCSS($config['css'], true);

            if ($bReturn)
            {
             $ret .= $coreLang;
                $ret .= $relativities;
             $ret .= $coreJs;
             $ret .= $coreCss;
             $ret .= $includes;
}

            $asset = Asset::getInstance();
            $asset->addString($coreLang, true, AssetLocation::AFTER_CSS);
$asset->addString($relativities, true, AssetLocation::AFTER_CSS);
$asset->addString($coreJs, true, AssetLocation::AFTER_CSS);
$asset->addString($includes, true, AssetLocation::AFTER_CSS);

            // Asset addString before_css doesn't works in admin section
if (!defined('ADMIN_SECTION') || ADMIN_SECTION !== true)
            {
                $asset->addString($coreCss, true, AssetLocation::BEFORE_CSS);
            }
else
            {
                self::_loadCSS($config['css'], false);
            }
        }

        for ($i = 0, $len = count($arExt); $i < $len; $i++)
        {
            $ret .= self::_loadExt($arExt[$i], $bReturn);
        }

        if (!defined('PUBLIC_MODE') && defined('BX_PUBLIC_MODE') && BX_PUBLIC_MODE == 1)
            echo $ret;

        return $bReturn ? $ret : true;
    }

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

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

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

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

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

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

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

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