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

CForumGroup::GetListEx: метод Битрикс

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

//    CForumGroup::GetListEx()
//    /bitrix/modules/forum/classes/general/forum_new.php:2060

    public static function GetListEx($arOrder = array("SORT"=>"ASC"), $arFilter = array())
    {
        global $DB;
        $arSqlSearch = Array();
        $strSqlSearch = "";
        $arSqlOrder = Array();
        $strSqlOrder = "";
        $arFilter = (is_array($arFilter) ? $arFilter : array());

        foreach ($arFilter as $key => $val)
        {
            $key_res = CForumNew::GetFilterOperation($key);
            $key = strtoupper($key_res["FIELD"]);
            $strNegative = $key_res["NEGATIVE"];
            $strOperation = $key_res["OPERATION"];

            switch ($key)
            {
                case "ID":
                case "SORT":
                case "PARENT_ID":
                case "LEFT_MARGIN":
                case "RIGHT_MARGIN":
                case "DEPTH_LEVEL":
                    if (intVal($val)<=0)
                        $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FR.".$key." IS NULL OR FR.".$key."<=0)";
                    else
                        $arSqlSearch[] = ($strNegative=="Y"?" FR.".$key." IS NULL OR NOT ":"")."(FR.".$key." ".$strOperation." ".intVal($val)." )";
                    break;
                case "LID":
                    if (strlen($val)<=0)
                        $arSqlSearch[] = ($strNegative=="Y"?"NOT":"")."(FRL.LID IS NULL OR ".($DB->type == "MSSQL" ? "LEN" : "LENGTH")."(FRL.LID)<=0)";
                    else
                        $arSqlSearch[] = ($strNegative=="Y"?" FRL.LID IS NULL OR NOT ":"")."(FRL.LID ".$strOperation." '".$DB->ForSql($val)."' )";
                    break;
            }
        }
        if (!empty($arSqlSearch))
            $strSqlSearch = " WHERE (".implode(") AND (", $arSqlSearch).") ";

        foreach ($arOrder as $by=>$order)
        {
            $by = strtoupper($by); $order = strtoupper($order);
            if ($order!="ASC") $order = "DESC";

            if ($by == "ID") $arSqlOrder[] = " FR.ID ".$order." ";
            elseif ($by == "LID") $arSqlOrder[] = " FRL.LID ".$order." ";
            elseif ($by == "NAME") $arSqlOrder[] = " FRL.NAME ".$order." ";
            elseif ($by == "LEFT_MARGIN") $arSqlOrder[] = " FR.LEFT_MARGIN ".$order." ";
            else
            {
                $arSqlOrder[] = " FR.SORT ".$order." ";
                $by = "SORT";
            }
        }
        DelDuplicateSort($arSqlOrder);

        if (!empty($arSqlOrder))
            $strSqlOrder = "ORDER BY ".implode(", ", $arSqlOrder);

        $strSql =
            "SELECT FR.ID, FR.SORT, FR.PARENT_ID, FR.LEFT_MARGIN, FR.RIGHT_MARGIN, FR.DEPTH_LEVEL, FRL.LID, FRL.NAME, FRL.DESCRIPTION ".
            "FROM b_forum_group FR ".
            "    LEFT JOIN b_forum_group_lang FRL ON FR.ID = FRL.FORUM_GROUP_ID ".
            $strSqlSearch." ".
            $strSqlOrder." ";

        $db_res = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
        return $db_res;
    }

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

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

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

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

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

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

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

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