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

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

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

//    CSocServMessage::GetList()
//    /bitrix/modules/socialservices/classes/mysql/authmanager.php:175

    function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
    {
        global $DB;
        if (count($arSelectFields) <= 0)
            $arSelectFields = array("ID", "USER_ID", "SOCSERV_USER_ID", "PROVIDER", "MESSAGE", "INSERT_DATE", "SUCCES_SENT");
        $arFields = array(
            "ID" => array("FIELD" => "SM.ID", "TYPE" => "int"),
            "USER_ID" => array("FIELD" => "SM.USER_ID", "TYPE" => "int"),
            "SOCSERV_USER_ID" => array("FIELD" => "SM.SOCSERV_USER_ID", "TYPE" => "int"),
            "PROVIDER" => array("FIELD" => "SM.PROVIDER", "TYPE" => "string"),
            "MESSAGE" => array("FIELD" => "SM.MESSAGE", "TYPE" => "string"),
            "INSERT_DATE" => array("FIELD" => "SM.INSERT_DATE", "TYPE" => "datetime"),
            "SUCCES_SENT" => array("FIELD" => "SM.SUCCES_SENT", "TYPE" => "char"),
        );
        $arSqls = CGroup::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
        $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);

        if (is_array($arGroupBy) && count($arGroupBy)==0)
        {
            $strSql =
                "SELECT ".$arSqls["SELECT"]." ".
                    "FROM b_socialservices_message SM ".
                    "    ".$arSqls["FROM"]." ";
            if (strlen($arSqls["WHERE"]) > 0)
                $strSql .= "WHERE ".$arSqls["WHERE"]." ";
            if (strlen($arSqls["GROUPBY"]) > 0)
                $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";

            $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
            if ($arRes = $dbRes->Fetch())
                return $arRes["CNT"];
            else
                return false;
        }

        $strSql =
            "SELECT ".$arSqls["SELECT"]." ".
                "FROM b_socialservices_message SM ".
                "    ".$arSqls["FROM"]." ";
        if (strlen($arSqls["WHERE"]) > 0)
            $strSql .= "WHERE ".$arSqls["WHERE"]." ";
        if (strlen($arSqls["GROUPBY"]) > 0)
            $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
        if (strlen($arSqls["ORDERBY"]) > 0)
            $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
        if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"])<=0)
        {
            $strSql_tmp =
                "SELECT COUNT('x') as CNT ".
                    "FROM b_socialservices_message SM ".
                    "    ".$arSqls["FROM"]." ";
            if (strlen($arSqls["WHERE"]) > 0)
                $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
            if (strlen($arSqls["GROUPBY"]) > 0)
                $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";

            $dbRes = $DB->Query($strSql_tmp, false, "File: ".__FILE__."
Line: ".__LINE__);
            $cnt = 0;
            if (strlen($arSqls["GROUPBY"]) <= 0)
            {
                if ($arRes = $dbRes->Fetch())
                    $cnt = $arRes["CNT"];
            }
            else
            {
                $cnt = $dbRes->SelectedRowsCount();
            }

            $dbRes = new CDBResult();

            $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
        }
        else
        {
            if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"])>0)
            {
                $strSql = $DB->TopSql($strSql, $arNavStartParams["nTopCount"]);
            }

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

        return $dbRes;
    }

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

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

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

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

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

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

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

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