/** * 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; }
/** * @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; }
/** * @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(); } }
/** * 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(); } }
/** * 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); }
/** * 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); }
/** * 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)); }