public function execute() { $params = $this->extractRequestParams(); $substr = $params['substr']; $namespace = $params['namespace']; $property = $params['property']; $category = $params['category']; $concept = $params['concept']; $external_url = $params['external_url']; $baseprop = $params['baseprop']; $basevalue = $params['basevalue']; //$limit = $params['limit']; if (is_null($baseprop) && strlen($substr) == 0) { $this->dieUsage('The substring must be specified', 'param_substr'); } if (!is_null($baseprop)) { if (!is_null($property)) { $data = self::getAllValuesForProperty($property, null, $baseprop, $basevalue); } } elseif (!is_null($property)) { $data = self::getAllValuesForProperty($property, $substr); } elseif (!is_null($category)) { $data = SFUtils::getAllPagesForCategory($category, 3, $substr); } elseif (!is_null($concept)) { $data = SFUtils::getAllPagesForConcept($concept, $substr); } elseif (!is_null($namespace)) { $data = SFUtils::getAllPagesForNamespace($namespace, $substr); } elseif (!is_null($external_url)) { $data = SFUtils::getValuesFromExternalURL($external_url, $substr); } else { $data = array(); } // If we got back an error message, exit with that message. if (!is_array($data)) { $this->dieUsage($data); } // to prevent JS parsing problems, display should be the same // even if there are no results /* if ( count( $data ) <= 0 ) { return; } */ // Format data as the API requires it - this is not needed // for "values from url", where the data is already formatted // correctly. if (is_null($external_url)) { $formattedData = array(); foreach ($data as $value) { $formattedData[] = array('title' => $value); } } else { $formattedData = $data; } // Set top-level elements. $result = $this->getResult(); $result->setIndexedTagName($formattedData, 'p'); $result->addValue(null, $this->getModuleName(), $formattedData); }