http://www.mediawiki.org/wiki/Special:Code/MediaWiki/73714
Revision: 73714
Author: jeroendedauw
Date: 2010-09-25 05:03:58 +0000 (Sat, 25 Sep 2010)
Log Message:
-----------
Changes for 0.7 - work on location parameter handling
Modified Paths:
--------------
trunk/extensions/Maps/includes/manipulations/Maps_ParamCoordSet.php
trunk/extensions/Maps/includes/parserHooks/Maps_DisplayPoint.php
Modified: trunk/extensions/Maps/includes/manipulations/Maps_ParamCoordSet.php
===================================================================
--- trunk/extensions/Maps/includes/manipulations/Maps_ParamCoordSet.php
2010-09-25 04:51:04 UTC (rev 73713)
+++ trunk/extensions/Maps/includes/manipulations/Maps_ParamCoordSet.php
2010-09-25 05:03:58 UTC (rev 73714)
@@ -14,12 +14,25 @@
class MapsParamCoordSet extends ItemParameterManipulation {
/**
+ * In some usecases, the parameter values will contain extra location
+ * metadata, which should be ignored here. This field holds the
delimiter
+ * used to seperata this data from the actual location.
+ *
+ * @since 0.7
+ *
+ * @var string
+ */
+ protected $metaDataSeparator;
+
+ /**
* Constructor.
*
* @since 0.7
*/
- public function __construct() {
+ public function __construct( $metaDataSeparator = false ) {
parent::__construct();
+
+ $this->metaDataSeparator = $metaDataSeparator;
}
/**
@@ -28,12 +41,20 @@
* @since 0.7
*/
public function doManipulation( &$value, array &$parameters ) {
+ if ( $this->metaDataSeparator !== false ) {
+ $parts = explode( $this->metaDataSeparator, $value );
+ $value = array_shift( $parts );
+ }
+
if ( MapsGeocoders::canGeocode() ) {
- // TODO
$value = MapsGeocoders::attemptToGeocodeToString(
$value/*, $geoService, $mappingService*/ );
} else {
$value = MapsCoordinateParser::parseAndFormat( $value );
}
+
+ if ( $this->metaDataSeparator !== false ) {
+ $value = array_merge( array( $value ), $parts );
+ }
}
}
\ No newline at end of file
Modified: trunk/extensions/Maps/includes/parserHooks/Maps_DisplayPoint.php
===================================================================
--- trunk/extensions/Maps/includes/parserHooks/Maps_DisplayPoint.php
2010-09-25 04:51:04 UTC (rev 73713)
+++ trunk/extensions/Maps/includes/parserHooks/Maps_DisplayPoint.php
2010-09-25 05:03:58 UTC (rev 73714)
@@ -93,21 +93,12 @@
$params['mappingservice']->default =
$egMapsDefaultServices['display_point'];
- $params['coordinates'] = new Parameter(
- 'coordinates',
- Parameter::TYPE_STRING,
- null,
- array( 'coords', 'location', 'locations', 'address',
'addresses' ),
- array(
- new CriterionIsLocation(),
- )
- );
+ $params['coordinates'] = new Parameter( 'coordinates' );
+ $params['coordinates']->addAliases( 'coords', 'location',
'address', 'addresses', 'locations' );
+ $params['coordinates']->addCriteria( new CriterionIsLocation(
'~' ) );
+ $params['coordinates']->addManipulations( new
MapsParamCoordSet( '~' ) );
+ $params['coordinates']->lowerCaseValue = false;
- $params['coordinates']->lowerCaseValue = false;
-
- // TODO
- $params['coordinates']->outputTypes = array( 'coordinateSet' =>
array( 'coordinateSet', '~' ) );
-
$params['centre'] = new Parameter(
'centre',
Parameter::TYPE_STRING,
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs