diff --git a/include/class.orm.php b/include/class.orm.php index 761f91dee25bf683896e26582d449ee2c56e7df3..8828103ad7e505dce76330bb9081b149db2836dd 100644 --- a/include/class.orm.php +++ b/include/class.orm.php @@ -2958,7 +2958,7 @@ class MySqlCompiler extends SqlCompiler { } } else { - if (!is_int($alias)) + if (!is_int($alias) && $unaliased != $alias) $f .= ' AS '.$this->quote($alias); $fields[$f] = true; } diff --git a/include/class.queue.php b/include/class.queue.php index 7213d67ce692739f66fade1e8904779827b1a38a..461f2d02352db216c276d1bb85d80f77e2d517b1 100644 --- a/include/class.queue.php +++ b/include/class.queue.php @@ -423,7 +423,7 @@ class CustomQueue extends VerySimpleModel { function isolateCriteria($criteria, $root=null) { $searchable = static::getSearchableFields($root ?: $this->getRoot()); $items = array(); - if (!$criteria) + if (!is_array($criteria)) return null; foreach ($criteria as $k=>$v) { if (substr($k, -7) === '+method') { @@ -446,8 +446,10 @@ class CustomQueue extends VerySimpleModel { $items[] = array($name, $method, $value); } } - if (isset($criteria[':keywords'])) { - $items[] = array(':keywords', null, $criteria[':keywords']); + if (isset($criteria[':keywords']) + && ($kw = $criteria[':keywords']) + ) { + $items[] = array(':keywords', null, $kw); } return $items; } @@ -577,9 +579,9 @@ class CustomQueue extends VerySimpleModel { if (isset($quick_filter) && ($qf = $this->getQuickFilterField($quick_filter)) ) { - $this->filter = @self::getOrmPath($this->filter, $query); + $filter = @self::getOrmPath($this->getQuickFilter(), $query); $query = $qf->applyQuickFilter($query, $quick_filter, - $this->filter); + $filter); } // Apply column, annotations and conditions additions @@ -589,6 +591,13 @@ class CustomQueue extends VerySimpleModel { return $query; } + function getQuickFilter() { + if ($this->filter == '::' && $this->parent) { + return $this->parent->getQuickFilter(); + } + return $this->filter; + } + function getQuickFilterField($value=null) { if ($this->filter == '::') { if ($this->parent) {