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

CDatabase::GetDBNodeConnection: метод Битрикс

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

<?php 
//    /bitrix/modules/main/classes/general/database.phpCDatabase::GetDBNodeConnection()
//    74:

    
function GetDBNodeConnection($node_id$bIgnoreErrors false$bCheckStatus true)
    {
        global 
$DB;

        if(!
array_key_exists($node_idself::$arNodes))
        {
            if(
CModule::IncludeModule('cluster'))
                
self::$arNodes[$node_id] = CClusterDBNode::GetByID($node_id);
            else
                
self::$arNodes[$node_id] = false;
        }
        
$node = &self::$arNodes[$node_id];

        if(
            
is_array($node)
            && (
                !
$bCheckStatus
                
|| (
                    
$node["ACTIVE"] == "Y"
                    
&& ($node["STATUS"] == "ONLINE" || $node["STATUS"] == "READY")
                )
            )
            && !isset(
$node["ONHIT_ERROR"])
        )
        {
            if(!
array_key_exists("DB"$node))
            {
                
$node_DB = new CDatabase;
                
$node_DB->type $DB->type;
                
$node_DB->debug $DB->debug;
                
$node_DB->DebugToFile $DB->DebugToFile;
                
$node_DB->bNodeConnection true;
                
$node_DB->node_id $node_id;

                if(
$node_DB->Connect($node["DB_HOST"], $node["DB_NAME"], $node["DB_LOGIN"], $node["DB_PASSWORD"], "node".$node_id))
                {
                    if(
defined("DELAY_DB_CONNECT") && DELAY_DB_CONNECT===true)
                    {
                        if(
$node_DB->DoConnect("node".$node_id))
                            
$node["DB"] = $node_DB;
                    }
                    else
                    {
                        
$node["DB"] = $node_DB;
                    }
                }
            }

            if(
array_key_exists("DB"$node))
                return 
$node["DB"];
        }

        if(
$bIgnoreErrors)
        {
            return 
false;
        }
        else
        {
            if(
file_exists($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/php_interface/dbconn_error.php"))
                include(
$_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/php_interface/dbconn_error.php");
            else
                include(
$_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/dbconn_error.php");
            die();
        }
    }

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

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

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

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

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

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

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

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