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

CForumUser::GetNameFieldsForQuery: метод Битрикс

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

//    CForumUser::GetNameFieldsForQuery()
//    /bitrix/modules/forum/classes/mysql/user.php:598

    public static function GetNameFieldsForQuery($sNameTemplate, $userTablePrefix = "U.")
    {
        global $DB;
        $sNameTemplate = (empty($sNameTemplate) ? CSite::GetDefaultNameFormat() : $sNameTemplate);
        if (!preg_match("/(#NAME#)|(#LAST_NAME#\,)|(#LAST_NAME#)|(#SECOND_NAME#)|(#NAME_SHORT#)|(#SECOND_NAME_SHORT#)/".BX_UTF_PCRE_MODIFIER, $sNameTemplate, $matches))
            $sNameTemplate = CSite::GetDefaultNameFormat();
        if (strpos($sNameTemplate, "#NOBR#") !== false)
            $sNameTemplate = preg_replace("/\#NOBR\#(.+?)\#\/NOBR\#/".BX_UTF_PCRE_MODIFIER, "\\1", $sNameTemplate);

        preg_match_all("/(#NAME#)|(#LAST_NAME#\,)|(#LAST_NAME#)|(#SECOND_NAME#)|(#NAME_SHORT#)|(#SECOND_NAME_SHORT#)/".BX_UTF_PCRE_MODIFIER, $sNameTemplate, $matches);

        $tmp = array();
        foreach($matches[0] as $val) {
            $pos = strpos($sNameTemplate, $val);
            if ($pos > 0) {
                $tmp[] = "'".$DB->ForSql(substr($sNameTemplate, 0, $pos))."'";
            }
            $tmp[] = str_replace(
                array(
                    "#NAME#",
                    "#LAST_NAME#,",
                    "#LAST_NAME#",
                    "#SECOND_NAME#",
                    "#NAME_SHORT#",
                    "#SECOND_NAME_SHORT#"
                ),
                array(
                    $userTablePrefix."NAME",
                    "IF (LENGTH(TRIM(".$userTablePrefix."LAST_NAME)) <= 0, '', CONCAT(".$userTablePrefix."LAST_NAME, ','))",
                    $userTablePrefix."LAST_NAME",
                    $userTablePrefix."SECOND_NAME",
                    "IF (LENGTH(TRIM(".$userTablePrefix."NAME)) <= 0,'',CONCAT(SUBSTRING(".$userTablePrefix."NAME,1,1),'.'))",
                    "IF (LENGTH(TRIM(".$userTablePrefix."SECOND_NAME)) <= 0,'',CONCAT(SUBSTRING(".$userTablePrefix."SECOND_NAME,1,1),'.'))"
                ),
                $val
            );
            $sNameTemplate = substr($sNameTemplate, ($pos + strlen($val)));
        }
        if (!empty($sNameTemplate))
            $tmp[] = "'".$DB->ForSql($sNameTemplate)."'";
        $res = implode(",", $tmp);
        return (!empty($res) ? $res : "''");
    }

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

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

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

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

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

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

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

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