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

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

	$strSql = "
		SELECT
			TR.*,
			".$DB->DateToCharFunction("TR.REMIND_DATE")." AS REMIND_DATE
		FROM
			b_tasks_reminder TR
		".(sizeof($arSqlSearch) ? "WHERE ".implode(" AND ", $arSqlSearch) : "")."
	";

	if (!is_array($arOrder))
		$arOrder = Array();

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

		if ($by == "task" || $by == 'TASK_ID')
			$arSqlOrder[] = " TR.TASK_ID ".$order." ";
		elseif ($by == "user" || $by == 'USER_ID')
			$arSqlOrder[] = " TR.USER_ID ".$order." ";
		elseif ($by == "date" || $by == 'REMIND_DATE')
			$arSqlOrder[] = " TR.REMIND_DATE ".$order." ";
		elseif ($by == 'RECEPIENT_TYPE')
			$arSqlOrder[] = " TR.RECEPIENT_TYPE ".$order." ";
		elseif ($by == "rand" || $by == 'RAND')
			$arSqlOrder[] = CTasksTools::getRandFunction();
		else
			$arSqlOrder[] = " TR.TASK_ID ".$order." ";
	}

	$strSqlOrder = "";
	DelDuplicateSort($arSqlOrder);

	if(is_array($arSqlOrder))
	{
		$arSqlOrderCnt = count($arSqlOrder);
		for ($i = 0; $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__); }