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

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

	$strSql = "
		SELECT
			TD.*
		FROM
			b_tasks_dependence TD
		".(sizeof($arSqlSearch) ? "WHERE ".implode(" AND ", $arSqlSearch) : "")."
	";

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

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

		if ($by == "task")
			$arSqlOrder[] = " TD ".$order." ";	// WTF?!
		elseif ($by == "depends_on")
			$arSqlOrder[] = " TD.DEPENDS_ON ".$order." ";	// is it for back compatibility?!
		elseif ($by == "depends_on_id")
			$arSqlOrder[] = " TD.DEPENDS_ON_ID ".$order." ";
		elseif ($by == "task_id")
			$arSqlOrder[] = " TD.TASK_ID ".$order." ";
		elseif ($by == "rand")
			$arSqlOrder[] = CTasksTools::getRandFunction();
		else
			$arSqlOrder[] = " TD.ID ".$order." ";	// is it for back compatibility?!
	}

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

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

	$strSql .= $strSqlOrder;

	//echo $strSql;

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