102 $alias =
function (
$column) use ($table_alias) {
103 return $table_alias ?
"{$table_alias}.{$column}" :
$column;
107 $wheres[] = parent::prepare($qb, $table_alias);
113 $access->guid_column =
'entity_guid';
114 $wheres[] =
$access->prepare($qb, $table_alias);
118 $wheres[] = $qb->
compare($alias(
'value'), $this->comparison, $this->values, $this->value_type, $this->case_sensitive);
125 if ($this->sort_by_calculation) {
127 throw new \InvalidParameterException(
"'$this->sort_by_calculation' is not a valid numeric calculation formula");
130 $calculation =
"{$this->sort_by_calculation}(CAST({$alias('value')} AS DECIMAL(10, 2)))";
131 $select_alias =
"annotation_calculation";
133 $qb->addSelect(
"$calculation AS $select_alias");
134 $qb->addGroupBy($alias(
'entity_guid'));
135 $qb->addOrderBy($select_alias, $this->sort_by_direction);
136 }
else if ($this->sort_by_direction) {
139 $column =
"CAST($column AS SIGNED)";
141 $qb->addOrderBy(
$column, $this->sort_by_direction);
144 return $qb->
merge($wheres);
const ELGG_VALUE_INTEGER
Value types.
Database abstraction query builder.
Builds queries for matching annotations against their properties.
prepare(QueryBuilder $qb, $table_alias=null)
{Build an expression and/or apply it to an instance of query builder.Query builder Table aliasComposi...
between($x, $lower=null, $upper=null, $type=null)
Build a between clause.
compare($x, $comparison, $y=null, $type=null, $case_sensitive=null)
Build value comparison clause.
const ELGG_VALUE_TIMESTAMP
Builds a clause from closure or composite expression.
merge($parts=null, $boolean= 'AND')
Merges multiple composite expressions with a boolean.
Builds queries to restrict access.