@@ 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 |