• Модуль: forum
  • Путь к файлу: ~/bitrix/modules/forum/classes/mysql/user.php
  • Класс: CForumUser
  • Вызов: CForumUser::GetFormattedNameFieldsForSelect
static function GetFormattedNameFieldsForSelect($arParams = array(), $bReturnAll = true)
{
	$arParams = (is_array($arParams) ? $arParams : array($arParams));
	$arParams["sNameTemplate"] = trim($arParams["sNameTemplate"]);
	$arParams["sUserTablePrefix"] = rtrim((!empty($arParams["sUserTablePrefix"]) ? $arParams["sUserTablePrefix"] : "U"), ".").".";
	$arParams["sForumUserTablePrefix"] = rtrim((!empty($arParams["sForumUserTablePrefix"]) ? $arParams["sForumUserTablePrefix"] : "FU"), ".").".";
	$arParams["sFieldName"] = (!empty($arParams["sFieldName"]) ? $arParams["sFieldName"] : "AUTHOR_NAME_FRMT");
	$arParams["sUserIDFieldName"] = (!empty($arParams["sUserIDFieldName"]) ? $arParams["sUserIDFieldName"] : "F.LAST_POSTER_ID");
	$res = array(
		"select" =>
			"CASE ".
				" WHEN (".
					$arParams["sForumUserTablePrefix"]."USER_ID > 0 ".
					" AND ".
					$arParams["sForumUserTablePrefix"]."SHOW_NAME = 'Y' ".
					" AND ".
					"LENGTH(TRIM(CONCAT_WS('',".
						CForumUser::GetNameFieldsForQuery(
							$arParams["sNameTemplate"],
							$arParams["sUserTablePrefix"])."))) > 0".
				") ".
				" THEN TRIM(REPLACE(CONCAT_WS(' ',".
					CForumUser::GetNameFieldsForQuery(
						$arParams["sNameTemplate"],
						$arParams["sUserTablePrefix"])."), '  ', ' '))".
				" ELSE ".$arParams["sUserTablePrefix"]."LOGIN ".
			" END AS ".$arParams["sFieldName"],
		"join" =>
			"LEFT JOIN b_forum_user ".rtrim($arParams["sForumUserTablePrefix"], ".").
				" ON (".$arParams["sUserIDFieldName"]."=".$arParams["sForumUserTablePrefix"]."USER_ID) ".
			"LEFT JOIN b_user ".rtrim($arParams["sUserTablePrefix"], ".").
				" ON (".$arParams["sUserIDFieldName"]."=".$arParams["sUserTablePrefix"]."ID) "
	);
	if ($bReturnAll)
		return $res;
	return $res["select"];
}