private function compute_sorting_rule() { if (isset($this->parameters['sort']) && is_string($this->parameters['sort'])) { $regex = '`(' . HTMLTableSortingRule::ASC . '|' . HTMLTableSortingRule::DESC . ')(\\w+)`'; $param = array(); if (preg_match($regex, $this->parameters['sort'], $param)) { $order_way = $param[1]; if ($order_way != HTMLTableSortingRule::ASC) { $order_way = HTMLTableSortingRule::DESC; } $sort_parameter = $param[2]; if ($this->model->is_sort_parameter_allowed($sort_parameter)) { $this->sorting_rule = new HTMLTableSortingRule($sort_parameter, $order_way); return; } } } $this->sorting_rule = $this->model->default_sort_rule(); }