/** @brief Defines additional sort order. * * Provided sort parameter should be a built-in facet like: @c afs:weight, * @c afs:relevance, @c afs:words (see AfsSortBuiltins)... or user defined * facet. * * @param $sort_param [in] new sort parameter. When set to emty string or * null, this call to this method is equivalent to call to * @a reset_sort. * @param $order [in] order applied to the given parameter. Allowed values * are AfsSortOrder::DESC (default) or AfsSortOrder:ASC. * @param @feed [in] the feed name. If not set, sort is add for all feeds. * @exception Exception when provided sort parameter does not conform to * required syntax. */ public function add_sort($sort_param, $order = AfsSortOrder::DESC, $feed = null) { $copy = $this->copy(); $copy = $copy->on_assignment(); if (!is_null($feed) && !is_null($f = $copy->get_feed($feed))) { $f->add_sort($sort_param, $order); } elseif (!is_null($feed)) { $f = new AfsFeed($feed, false); $f->add_sort($sort_param, $order); } else { $copy->internal_add_sort($this->sort, $sort_param, $order); } return $copy; }
protected function set_parameter($param, $value, $feed = null) { if (!is_null($feed) && ($f = $this->get_feed($feed)) !== null) { if (($q = $f->get_parameter($param)) !== null) { $f->get_parameter($param)->set_value($value); } else { $f->add_parameters(new AfsSingleValueParameter($param, $value)); } } elseif (!is_null($feed)) { $f = new AfsFeed($feed, false); $f->add_parameters(new AfsSingleValueParameter($param, $value)); $this->feed[] = $f; } else { $this->{$param} = new AfsSingleValueParameter($param, $value); } }