/** * @param $name * @param null $value * @return bool * @throws \Bitrix\Main\SystemException */ protected function addQueryAlias($name, $value = null) { $list = array(); if ($name == $value) { $value = null; } if (!empty($value) && is_array($value)) { $list = $value; } else { $list[$name] = $value; } foreach ($list as $fieldName => $fieldValue) { if (in_array($fieldName, $this->queryAliasList)) { return false; } $this->queryAliasList[] = $fieldName; $this->query->addAlias($fieldName, $fieldValue); } return true; }
public static function adaptResult(Compatible\CDBResult $result, Compatible\OrderQuery $query, $taskIdName) { if (!($query->grouped() || $query->aggregated())) { $select = $query->allSelected() ? self::permissions() : array_intersect_key(self::permissions(), $query->getSelect()); if ($select) { $query->setSelect(array_diff_key($query->getSelect(), $select)); $query->addAlias('TASK_ID', $taskIdName); $query->addAliasSelect('TASK_ID'); $result->addFetchAdapter(new self($select)); } } }