• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/tasklog.php
  • Класс: CTaskLog
  • Вызов: CTaskLog::GetList
static function GetList($arOrder, $arFilter)
{
	global $DB;

	$arSqlSearch = CTaskLog::GetFilter($arFilter);

	$strSql = "
		SELECT
			TL.*,
			" . $DB->DateToCharFunction("TL.CREATED_DATE", "FULL") . " AS CREATED_DATE,
			U.NAME AS USER_NAME,
			U.LAST_NAME AS USER_LAST_NAME,
			U.SECOND_NAME AS USER_SECOND_NAME,
			U.LOGIN AS USER_LOGIN
		FROM
			b_tasks_log TL
		INNER JOIN
			b_user U
		ON
			U.ID = TL.USER_ID
		" . (sizeof($arSqlSearch) ? "WHERE " . implode(" AND ", $arSqlSearch) : "") . "
	";

	if (!is_array($arOrder) || sizeof($arOrder) == 0)
		$arOrder = array("CREATED_DATE" => "ASC");

	foreach ($arOrder as $by => $order) {
		$by = mb_strtolower($by);
		$order = mb_strtolower($order);
		if ($order != "asc")
			$order = "desc";

		if ($by == "user" || $by == "user_id")
			$arSqlOrder[] = " TL.USER_ID " . $order . " ";
		elseif ($by == "field")
			$arSqlOrder[] = " TL.FIELD " . $order . " ";
		elseif ($by == "task_id")
			$arSqlOrder[] = " TL.TASK_ID " . $order . " ";
		elseif ($by == "rand")
			$arSqlOrder[] = CTasksTools::getRandFunction();
		else
			$arSqlOrder[] = " TL.CREATED_DATE " . $order . " ";
	}

	$strSqlOrder = "";
	DelDuplicateSort($arSqlOrder);
	for ($i = 0, $arSqlOrderCnt = count($arSqlOrder); $i < $arSqlOrderCnt; $i++) {
		if ($i == 0)
			$strSqlOrder = " ORDER BY ";
		else
			$strSqlOrder .= ",";

		$strSqlOrder .= $arSqlOrder[$i];
	}

	$strSql .= $strSqlOrder;

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