| @@ 751-766 (lines=16) @@ | ||
| 748 | * @param int $mode |
|
| 749 | * @param string $sort_by |
|
| 750 | */ |
|
| 751 | public function setSortMode($mode, $sort_by = '') |
|
| 752 | { |
|
| 753 | assert(in_array($mode, array( |
|
| 754 | self::SORT_RELEVANCE, |
|
| 755 | self::SORT_ATTR_DESC, |
|
| 756 | self::SORT_ATTR_ASC, |
|
| 757 | self::SORT_TIME_SEGMENTS, |
|
| 758 | self::SORT_EXTENDED, |
|
| 759 | self::SORT_EXPR |
|
| 760 | ))); |
|
| 761 | assert(is_string($sort_by)); |
|
| 762 | assert($mode == self::SORT_RELEVANCE || strlen($sort_by) > 0); |
|
| 763 | ||
| 764 | $this->sort = $mode; |
|
| 765 | $this->sort_by = $sort_by; |
|
| 766 | } |
|
| 767 | ||
| 768 | /** |
|
| 769 | * Bind per-field weights by order |
|
| @@ 948-964 (lines=17) @@ | ||
| 945 | * @param string $func |
|
| 946 | * @param string $group_sort |
|
| 947 | */ |
|
| 948 | public function setGroupBy($attribute, $func, $group_sort = '@group desc') |
|
| 949 | { |
|
| 950 | assert(is_string($attribute)); |
|
| 951 | assert(is_string($group_sort)); |
|
| 952 | assert(in_array($func, array( |
|
| 953 | self::GROUP_BY_DAY, |
|
| 954 | self::GROUP_BY_WEEK, |
|
| 955 | self::GROUP_BY_MONTH, |
|
| 956 | self::GROUP_BY_YEAR, |
|
| 957 | self::GROUP_BY_ATTR, |
|
| 958 | self::GROUP_BY_ATTR_PAIR |
|
| 959 | ))); |
|
| 960 | ||
| 961 | $this->group_by = $attribute; |
|
| 962 | $this->group_func = $func; |
|
| 963 | $this->group_sort = $group_sort; |
|
| 964 | } |
|
| 965 | ||
| 966 | /** |
|
| 967 | * Set count-distinct attribute for group-by queries |
|