/**
  * Returns an array containing the parameter info.
  * 
  * @since 1.0
  * 
  * @return array
  */
 protected function getParameterInfo()
 {
     global $egMapsDefaultLabel, $egMapsDefaultTitle;
     global $smgQPForceShow, $smgQPShowTitle, $smgQPTemplate, $smgQPHideNamespace;
     $params = ParamDefinition::getCleanDefinitions(MapsMapper::getCommonParameters());
     $this->service->addParameterInfo($params);
     $params['zoom']->setDefault(false);
     $params['zoom']->setDoManipulationOfDefault(false);
     $params['staticlocations'] = new ListParameter('staticlocations', ';');
     $params['staticlocations']->addAliases('locations', 'points');
     $params['staticlocations']->addCriteria(new CriterionIsLocation('~'));
     $params['staticlocations']->addManipulations(new MapsParamLocation('~'));
     $params['staticlocations']->setDefault(array());
     $params['staticlocations']->setMessage('semanticmaps-par-staticlocations');
     $params['icon'] = new Parameter('icon', Parameter::TYPE_STRING, '', array(), array(new CriterionNotEmpty()));
     $params['icon']->setMessage('maps-displaypoints-par-icon');
     $params['visitedicon'] = new Parameter('visitedicon', Parameter::TYPE_STRING, '', array(), array(new CriterionNotEmpty()));
     $params['visitedicon']->setMessage('maps-displaymap-par-visitedicon');
     $params['forceshow'] = new Parameter('forceshow', Parameter::TYPE_BOOLEAN, $smgQPForceShow, array('force show'));
     $params['forceshow']->setMessage('semanticmaps-par-forceshow');
     $params['showtitle'] = new Parameter('showtitle', Parameter::TYPE_BOOLEAN, $smgQPShowTitle, array('show title'));
     $params['showtitle']->setMessage('semanticmaps-par-showtitle');
     $params['hidenamespace'] = new Parameter('hidenamespace', Parameter::TYPE_BOOLEAN, $smgQPHideNamespace, array('hide namespace'));
     $params['hidenamespace']->setMessage('semanticmaps-par-hidenamespace');
     $params['template'] = new Parameter('template', Parameter::TYPE_STRING, $smgQPTemplate, array(), array(new CriterionNotEmpty()));
     $params['template']->setDoManipulationOfDefault(false);
     $params['template']->setMessage('semanticmaps-par-template');
     $params['title'] = new Parameter('title', Parameter::TYPE_STRING, $egMapsDefaultTitle);
     $params['title']->setMessage('maps-displaypoints-par-title');
     $params['label'] = new Parameter('label', Parameter::TYPE_STRING, $egMapsDefaultLabel, array('text'));
     $params['label']->setMessage('maps-displaypoints-par-label');
     return $params;
 }
Exemple #2
0
 /**
  * @see ParamDefinition::formatValue()
  *
  * @since 2.0
  *
  * @param mixed $value
  * @param IParam $param
  * @param IParamDefinition[] $definitions
  * @param IParam[] $params
  *
  * @return mixed
  */
 protected function formatValue($value, IParam $param, array &$definitions, array $params)
 {
     // Make sure the service is valid.
     $value = MapsMappingServices::getValidServiceName($value, $this->feature);
     // Get the service object so the service specific parameters can be retrieved.
     $serviceObject = MapsMappingServices::getServiceInstance($value);
     // Add the service specific service parameters.
     $serviceObject->addParameterInfo($definitions);
     $definitions = \ParamDefinition::getCleanDefinitions($definitions);
     return $value;
 }
 /**
  * Returns an array containing the parameter info.
  * 
  * @since 1.0
  * 
  * @return array
  */
 protected function getParameterInfo()
 {
     global $smgFIMulti, $smgFIFieldSize;
     $params = ParamDefinition::getCleanDefinitions(MapsMapper::getCommonParameters());
     $this->service->addParameterInfo($params);
     $params['zoom']->setDefault(false, false);
     $params['multi'] = new Parameter('multi', Parameter::TYPE_BOOLEAN);
     $params['multi']->setDefault($smgFIMulti, false);
     $params['fieldsize'] = new Parameter('fieldsize', Parameter::TYPE_INTEGER);
     $params['fieldsize']->setDefault($smgFIFieldSize, false);
     $params['fieldsize']->addCriteria(new CriterionInRange(5, 100));
     $params['icon'] = new Parameter('icon');
     $params['icon']->setDefault('');
     $params['icon']->addCriteria(new CriterionNotEmpty());
     $manipulation = new MapsParamLocation();
     $manipulation->toJSONObj = true;
     $params['locations'] = array('aliases' => array('points'), 'criteria' => new CriterionIsLocation(), 'manipulations' => $manipulation, 'default' => array(), 'islist' => true, 'delimiter' => self::SEPARATOR, 'message' => 'semanticmaps-par-locations');
     $params['geocodecontrol'] = new Parameter('geocodecontrol', Parameter::TYPE_BOOLEAN);
     $params['geocodecontrol']->setDefault(true, false);
     $params['geocodecontrol']->setMessage('semanticmaps-par-geocodecontrol');
     return $params;
 }
Exemple #4
0
 /**
  * @param string $format
  *
  * @return array of IParamDefinition
  */
 protected function getFormatParameters($format)
 {
     if (array_key_exists($format, $GLOBALS['smwgResultFormats'])) {
         return ParamDefinition::getCleanDefinitions(SMWQueryProcessor::getResultPrinter($format)->getParamDefinitions(SMWQueryProcessor::getParameters()));
     } else {
         return array();
     }
 }
Exemple #5
0
 /**
  * Loops through a list of provided parameters, resolves aliasing and stores errors
  * for unknown parameters and optionally for parameter overriding.
  * 
  * @param array $parameters Parameter name as key, parameter value as value
  * @param array $paramDefinitions List of parameter definitions. Either ParamDefinition objects or equivalent arrays.
  */
 public function setParameters(array $parameters, array $paramDefinitions)
 {
     $this->paramDefinitions = ParamDefinition::getCleanDefinitions($paramDefinitions);
     // Loop through all the user provided parameters, and distinguish between those that are allowed and those that are not.
     foreach ($parameters as $paramName => $paramData) {
         if ($this->options->lowercaseNames()) {
             $paramName = strtolower($paramName);
         }
         if ($this->options->trimNames()) {
             $paramName = trim($paramName);
         }
         $paramValue = is_array($paramData) ? $paramData['original-value'] : $paramData;
         $this->rawParameters[$paramName] = $paramValue;
     }
 }
 /**
  * Returns the definitions of all parameters supported by the specified format.
  *
  * @since 1.8
  *
  * @param string $format
  *
  * @return array of IParamDefinition
  */
 public static function getFormatParameters($format)
 {
     SMWParamFormat::resolveFormatAliases($format);
     if (array_key_exists($format, $GLOBALS['smwgResultFormats'])) {
         return ParamDefinition::getCleanDefinitions(SMWQueryProcessor::getResultPrinter($format)->getParamDefinitions(SMWQueryProcessor::getParameters()));
     } else {
         return array();
     }
 }
Exemple #7
0
 /**
  * Applies the parameter manipulations.
  * @see IParam::format
  *
  * @since 0.5
  *
  * @param $definitions array of IParamDefinition
  * @param $params array of IParam
  * @param ValidatorOptions $options
  */
 public function format(array &$definitions, array $params, ValidatorOptions $options)
 {
     if ($this->definition->shouldManipulateDefault() || !$this->wasSetToDefault()) {
         $this->definition->format($this, $definitions, $params);
         $definitions = ParamDefinition::getCleanDefinitions($definitions);
         // Compat code.
         $manipulations = array();
         foreach ($this->definition->getManipulations() as $manipulation) {
             if (!$manipulation instanceof ParamManipulationInteger && !$manipulation instanceof ParamManipulationFloat && !$manipulation instanceof ParamManipulationString) {
                 $manipulations[] = $manipulation;
             }
         }
         // This whole block is compat code, to be removed in 0.7.
         if ($manipulations !== array()) {
             $parameter = $this->toParameter();
             $parameters = array();
             foreach ($params as $param) {
                 $parameters[$param->getName()] = $param->toParameter();
             }
             foreach ($definitions as $definition) {
                 if (!array_key_exists($definition->getName(), $parameters)) {
                     $parameters[$definition->getName()] = $definition->toParameter();
                 }
             }
             foreach ($manipulations as $manipulation) {
                 $manipulation->manipulate($parameter, $parameters);
             }
             $this->setValue($parameter->getValue());
             foreach ($parameters as $parameterObject) {
                 if (!array_key_exists($parameterObject->getName(), $params)) {
                     $definitions[$parameterObject->getName()] = ParamDefinition::newFromParameter($parameterObject);
                 }
             }
         }
     }
 }
 /**
  * @dataProvider instanceProvider
  *
  * @param \SMWResultPrinter $printer
  */
 public function testGetParamDefinitions(\SMWResultPrinter $printer)
 {
     $params = $printer->getParamDefinitions(\SMWQueryProcessor::getParameters());
     $params = \ParamDefinition::getCleanDefinitions($params);
     $this->assertInternalType('array', $params);
 }
Exemple #9
0
 /**
  * Handles Ajax call
  * @param integer $pageId
  * @param type $template
  * @param type $printrequests
  * @return type
  */
 public static function handleGetResult($pageId, $template, $printrequests)
 {
     $title = Title::newFromID($pageId)->getPrefixedText();
     $rp = new SMWListResultPrinter('template', true);
     $paramDefinitions = ParamDefinition::getCleanDefinitions($rp->getParamDefinitions(array()));
     $params = array();
     /**
      * @param IParamDefinition $def
      */
     foreach ($paramDefinitions as $def) {
         $params[$def->getName()] = $def->getDefault();
     }
     $params = array_merge($params, array('format' => 'template', 'template' => $template, 'mainlabel' => '', 'sort' => '', 'order' => '', 'intro' => null, 'outro' => null, 'searchlabel' => null, 'link' => null, 'default' => null, 'headers' => null, 'introtemplate' => '', 'outrotemplate' => ''));
     $params = SMWQueryProcessor::getProcessedParams($params, array());
     $p = json_decode($printrequests, true);
     $extraprintouts = array();
     foreach ($p as $key => $prData) {
         // if printout mode is PRINT_PROP
         if ($prData[0] == SMWPrintRequest::PRINT_PROP) {
             // create property from property key
             $data = SMWPropertyValue::makeUserProperty($prData[2]);
         } else {
             $data = null;
         }
         // create printrequest from request mode, label, property name, output format, parameters
         $extraprintouts[] = new SMWPrintRequest($prData[0], $prData[1], $data, $prData[3], $prData[4]);
     }
     return SMWQueryProcessor::getResultFromQueryString('[[' . $title . ']]', $params, $extraprintouts, SMW_OUTPUT_HTML, SMWQueryProcessor::INLINE_QUERY);
 }
Exemple #10
0
 /**
  * Returns the data needed to describe the parser hook.
  * This is mainly needed because some of the individual get methods
  * that return the needed data are protected, and cannot be made
  * public without breaking b/c in a rather bad way.
  *
  * @since 0.4.3
  *
  * @param integer $type Item of the ParserHook::TYPE_ enum
  *
  * @return array
  */
 public function getDescriptionData($type)
 {
     return array('names' => $this->getNames(), 'description' => $this->getDescription(), 'message' => $this->getMessage(), 'parameters' => ParamDefinition::getCleanDefinitions($this->getParameterInfo($type)), 'defaults' => $this->getDefaultParameters($type));
 }