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

CClusterDBNode::GetList: метод Битрикс

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

<?php 
//    /bitrix/modules/cluster/classes/general/dbnode.phpCClusterDBNode::GetList()
//    179:

    
public static function GetList($arOrder=false$arFilter=false$arSelect=false)
    {
        global 
$DB;

        if(!
is_array($arSelect))
            
$arSelect = array();
        if(
count($arSelect) < 1)
            
$arSelect = array(
                
"ID",
                
"ACTIVE",
                
"ROLE_ID",
                
"NAME",
                
"DESCRIPTION",
                
"DB_HOST",
                
"DB_NAME",
                
"DB_LOGIN",
                
"DB_PASSWORD",
                
"MASTER_ID",
                
"SERVER_ID",
                
"STATUS",
                
"WEIGHT",
                
"SELECTABLE",
                
"GROUP_ID"
            
);

        if(!
is_array($arOrder))
            
$arOrder = array();

        
$arQueryOrder = array();
        foreach(
$arOrder as $strColumn => $strDirection)
        {
            
$strColumn strtoupper($strColumn);
            
$strDirection strtoupper($strDirection)=="ASC""ASC""DESC";
            switch(
$strColumn)
            {
                case 
"ID":
                case 
"NAME":
                    
$arSelect[] = $strColumn;
                    
$arQueryOrder[$strColumn] = $strColumn." ".$strDirection;
                    break;
            }
        }

        
$arQuerySelect = array();
        foreach(
$arSelect as $strColumn)
        {
            
$strColumn strtoupper($strColumn);
            switch(
$strColumn)
            {
                case 
"ID":
                case 
"ACTIVE":
                case 
"ROLE_ID":
                case 
"NAME":
                case 
"DESCRIPTION":
                case 
"DB_HOST":
                case 
"DB_NAME":
                case 
"DB_LOGIN":
                case 
"DB_PASSWORD":
                case 
"MASTER_ID":
                case 
"SERVER_ID":
                case 
"STATUS":
                case 
"WEIGHT":
                case 
"SELECTABLE":
                case 
"GROUP_ID":
                    
$arQuerySelect[$strColumn] = "n.".$strColumn;
                    break;
            }
        }
        if(
count($arQuerySelect) < 1)
            
$arQuerySelect = array("ID"=>"n.ID");

        
$obQueryWhere = new CSQLWhere;
        
$arFields = array(
            
"ID" => array(
                
"TABLE_ALIAS" => "n",
                
"FIELD_NAME" => "n.ID",
                
"FIELD_TYPE" => "int",
                
"JOIN" => false,
            ),
            
"GROUP_ID" => array(
                
"TABLE_ALIAS" => "n",
                
"FIELD_NAME" => "n.GROUP_ID",
                
"FIELD_TYPE" => "string",
                
"JOIN" => false,
            ),
            
"ROLE_ID" => array(
                
"TABLE_ALIAS" => "n",
                
"FIELD_NAME" => "n.ROLE_ID",
                
"FIELD_TYPE" => "string",
                
"JOIN" => false,
            ),
            
"ACTIVE" => array(
                
"TABLE_ALIAS" => "n",
                
"FIELD_NAME" => "n.ACTIVE",
                
"FIELD_TYPE" => "string",
                
"JOIN" => false,
            ),
            
"SERVER_ID" => array(
                
"TABLE_ALIAS" => "n",
                
"FIELD_NAME" => "n.SERVER_ID",
                
"FIELD_TYPE" => "int",
                
"JOIN" => false,
            ),
            
"MASTER_ID" => array(
                
"TABLE_ALIAS" => "n",
                
"FIELD_NAME" => "n.MASTER_ID",
                
"FIELD_TYPE" => "int",
                
"JOIN" => false,
            ),
            
"STATUS" => array(
                
"TABLE_ALIAS" => "n",
                
"FIELD_NAME" => "n.STATUS",
                
"FIELD_TYPE" => "string",
                
"JOIN" => false,
            ),
            
"NAME" => array(
                
"TABLE_ALIAS" => "n",
                
"FIELD_NAME" => "n.NAME",
                
"FIELD_TYPE" => "string",
                
"JOIN" => false,
            ),
        );
        
$obQueryWhere->SetFields($arFields);

        if(!
is_array($arFilter))
            
$arFilter = array();
        
$strQueryWhere $obQueryWhere->GetQuery($arFilter);

        
$bDistinct $obQueryWhere->bDistinctReqired;

        
$strSql "
            SELECT "
.($bDistinct"DISTINCT""")."
            "
.implode(", "$arQuerySelect)."
            FROM
                b_cluster_dbnode n
            "
.$obQueryWhere->GetJoins()."
        "
;

        if(
$strQueryWhere)
        {
            
$strSql .= "
                WHERE
                "
.$strQueryWhere."
            "
;
        }

        if(
count($arQueryOrder) > 0)
        {
            
$strSql .= "
                ORDER BY
                "
.implode(", "$arQueryOrder)."
            "
;
        }

        return 
$DB->Query($strSqlfalse'', array('fixed_connection'=>true));
    }

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

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

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

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

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

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

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

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