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);
 }