SubtopicsList::ProcessOrder PHP 메소드

ProcessOrder() 보호된 메소드

Processes order constraints passed in an array.
protected ProcessOrder ( array $p_order ) : array
$p_order array
리턴 array
    protected function ProcessOrder(array $p_order)
    {
        $order = array();
        $state = 1;
        $aliases = array('byname' => 'title', 'bynumber' => 'id');
        foreach ($p_order as $word) {
            switch ($state) {
                case 1:
                    // reading the order field
                    if (array_search(strtolower($word), SubtopicsList::$s_orderFields) === false) {
                        CampTemplate::singleton()->trigger_error("invalid order field {$word} in list_subtopics, order parameter");
                    } else {
                        $orderField = $aliases[$word];
                        $state = 2;
                    }
                    break;
                case 2:
                    // reading the order direction
                    if (MetaOrder::IsValid($word)) {
                        $order[] = array('field' => $orderField, 'dir' => $word);
                    } else {
                        CampTemplate::singleton()->trigger_error("invalid order {$word} of attribute {$orderField} in list_subtopics, order parameter");
                    }
                    $state = 1;
                    break;
            }
        }
        if ($state != 1) {
            CampTemplate::singleton()->trigger_error("unexpected end of order parameter in list_issues");
        }
        return $order;
    }