ArticleImagesList::ProcessOrder PHP Method

ProcessOrder() protected method

Processes order constraints passed in an array.
protected ProcessOrder ( array $p_order ) : array
$p_order array
return array
    protected function ProcessOrder(array $p_order)
    {
        $order = array();
        $state = 1;
        foreach ($p_order as $word) {
            switch ($state) {
                case 1:
                    // reading the order field
                    if (array_search(strtolower($word), self::$s_orderFields) === false) {
                        CampTemplate::singleton()->trigger_error("invalid order field {$word} in list_images, order parameter");
                    } else {
                        $orderField = $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_images, order parameter");
                    }
                    $state = 1;
                    break;
            }
        }
        if ($state != 1) {
            CampTemplate::singleton()->trigger_error("unexpected end of order parameter in list_images");
        }
        return $order;
    }