ArticleTopicsList::ProcessParameters PHP 메소드

ProcessParameters() 보호된 메소드

Processes the input parameters passed in an array; drops the invalid parameters and parameters with invalid values. Returns an array of valid parameters.
protected ProcessParameters ( array $p_parameters ) : array
$p_parameters array
리턴 array
    protected function ProcessParameters(array $p_parameters)
    {
        $parameters = array();
        foreach ($p_parameters as $parameter => $value) {
            $parameter = strtolower($parameter);
            switch ($parameter) {
                case 'length':
                case 'columns':
                case 'name':
                    if ($parameter == 'length' || $parameter == 'columns') {
                        $intValue = (int) $value;
                        if ("{$intValue}" != $value || $intValue < 0) {
                            CampTemplate::singleton()->trigger_error("invalid value {$value} of parameter {$parameter} in statement list_article_topics");
                        }
                        $parameters[$parameter] = (int) $value;
                    } else {
                        $parameters[$parameter] = $value;
                    }
                    break;
                case 'root':
                    $arrayTopics = explode(';', (string) $value);
                    for ($i = 0, $count = count($arrayTopics); $i < $count; $i++) {
                        $metaTopic = new MetaTopic($arrayTopics[$i]);
                        if (!$metaTopic->defined) {
                            CampTemplate::singleton()->trigger_error("invalid value " . $arrayTopics[$i] . " of parameter {$parameter} in statement list_article_topics");
                            return array();
                        }
                        $operator = new Operator('is', 'integer');
                        $this->m_constraints[] = new ComparisonOperation('roottopic', $operator, $metaTopic->identifier);
                    }
                    break;
                default:
                    CampTemplate::singleton()->trigger_error("invalid parameter {$parameter} in list_article_topics", $p_smarty);
            }
        }
        $operator = new Operator('is', 'integer');
        $context = CampTemplate::singleton()->context();
        if (!$context->article->defined) {
            CampTemplate::singleton()->trigger_error("undefined environment attribute 'Article' in statement list_article_topics");
            return array();
        }
        $this->m_constraints[] = new ComparisonOperation('nrarticle', $operator, $context->article->number);
        return $parameters;
    }