• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/general/webdavonlineedit.php
  • Класс: CWebDavLogOnlineEditBase
  • Вызов: CWebDavLogOnlineEditBase::getList
static function getList(array $order = array(), array $filter = array(), array $select = array())
{
	$t = static::TABLE_NAME;
	$a = static::TABLE_ALIAS;
	static::filterFields($order);
	static::filterFields($filter);

	$sqlSelect = '';
	$sqlFrom = $t . ' ' . $a;
	foreach (array_keys(static::$tableColumns) as $column)
	{
		$sqlSelect .= (empty($sqlSelect)? '':', ') . $a . '.' . $column;
	}
	unset($column);

	if($select)
	{
		foreach ($select as $field)
		{
			$field = mb_strtoupper($field);
			switch($field)
			{
				case 'USER':
					$sqlSelect .= ", UC.NAME USER_NAME, UC.LAST_NAME USER_LAST_NAME, UC.SECOND_NAME USER_SECOND_NAME, UC.EMAIL USER_EMAIL, UC.ID USER_ID, UC.LOGIN USER_LOGIN, UC.PERSONAL_GENDER USER_GENDER";
					$sqlFrom .= "tLEFT JOIN b_user UC ON UC.ID={$a}.USER_IDn";
					break;
			}
		}
		unset($field);
	}
	
	$where = $filter;
	$sqlWhere = array();
	foreach ($where as $field => $value)
	{
		switch($field)
		{
			case 'ID':
			case 'IBLOCK_ID':
			case 'SECTION_ID':
			case 'ELEMENT_ID':
			case 'USER_ID':
			case 'OWNER_ID':
				if($value === null)
				{
					continue;
				}
				$value = (int)$value;
				$sqlWhere[] = $field . '=' . $value;
				break;
			case 'SERVICE_FILE_ID':
			case 'SERVICE':
				$value = static::getDb()->forSql($value);
				$sqlWhere[] = $field . '=' . ''' . $value . ''';
				break;
			case 'CREATED_TIMESTAMP':
				$value = (int)$value;
				$sqlWhere[] = $field . '>=' . $value;
				break;
		}
	}
	unset($value);

	if($sqlWhere)
	{
		$sqlWhere = ' WHERE ' . implode(' AND ', $sqlWhere);
	}
	else
	{
		$sqlWhere = '';
	}

	$sqlOrder = '';
	if($order)
	{
		$sqlOrder = array();
		foreach ($order as $by => $ord)
		{
			$by = mb_strtoupper($by);
			$sqlOrder[] = $by . ' ' . (mb_strtoupper($ord) == 'DESC' ? 'DESC' : 'ASC');
		}
		unset($by);
		$sqlOrder = ' ORDER BY ' . implode(', ', $sqlOrder);
	}

	return static::getDb()->query("SELECT {$sqlSelect} FROM {$sqlFrom} {$sqlWhere} {$sqlOrder}");
}