http://www.mediawiki.org/wiki/Special:Code/MediaWiki/72497
Revision: 72497
Author: jeroendedauw
Date: 2010-09-06 16:17:22 +0000 (Mon, 06 Sep 2010)
Log Message:
-----------
Changes for 0.7 - matching changes made in Validator
Modified Paths:
--------------
trunk/extensions/Maps/Maps.php
trunk/extensions/Maps/includes/parserHooks/Maps_DisplayMap.php
trunk/extensions/Maps/includes/parserHooks/Maps_DisplayPoint.php
Added Paths:
-----------
trunk/extensions/Maps/includes/criteria/
trunk/extensions/Maps/includes/criteria/CriterionAreLocations.php
Modified: trunk/extensions/Maps/Maps.php
===================================================================
--- trunk/extensions/Maps/Maps.php 2010-09-06 16:03:54 UTC (rev 72496)
+++ trunk/extensions/Maps/Maps.php 2010-09-06 16:17:22 UTC (rev 72497)
@@ -87,7 +87,7 @@
global $egMapsDefaultService, $egMapsAvailableServices;
global $egMapsDir, $egMapsUseMinJs, $egMapsJsExt;
- // Autoload the "Includes/" classes and interfaces.
+ // Autoload the "includes/" classes and interfaces.
$incDir = dirname( __FILE__ ) . '/includes/';
$wgAutoloadClasses['MapsMapper'] =
$incDir . 'Maps_Mapper.php';
$wgAutoloadClasses['MapsCoordinateParser'] = $incDir .
'Maps_CoordinateParser.php';
@@ -101,13 +101,22 @@
$wgAutoloadClasses['MapsMappingServices'] = $incDir .
'Maps_MappingServices.php';
$wgAutoloadClasses['MapsMappingService'] = $incDir .
'Maps_MappingService.php';
- // Geocoders at "Includes/Geocoders/".
+ // Autoload the "includes/criteria/" classes.
+ $criDir = $incDir . 'criteria/';
+ $wgAutoloadClasses['CriterionAreLocations'] = $criDir .
'CriterionAreLocations.php';
+
+ // Autoload the "includes/features/" classes.
+ $ftDir = $incDir . '/features/';
+ $wgAutoloadClasses['MapsBaseMap'] =
$ftDir . 'Maps_BaseMap.php';
+ $wgAutoloadClasses['MapsBasePointMap'] = $ftDir .
'Maps_BasePointMap.php';
+
+ // Autoload the "includes/geocoders/" classes.
$geoDir = $incDir . 'geocoders/';
$wgAutoloadClasses['MapsGeonamesGeocoder'] = $geoDir .
'Maps_GeonamesGeocoder.php';
$wgAutoloadClasses['MapsGoogleGeocoder'] = $geoDir .
'Maps_GoogleGeocoder.php';
$wgAutoloadClasses['MapsYahooGeocoder'] = $geoDir .
'Maps_YahooGeocoder.php';
- // Autoload the "ParserHooks/" classes.
+ // Autoload the "includes/parserHooks/" classes.
$phDir = $incDir . '/parserHooks/';
$wgAutoloadClasses['MapsCoordinates'] = $phDir .
'Maps_Coordinates.php';
$wgAutoloadClasses['MapsDisplayMap'] = $phDir .
'Maps_DisplayMap.php';
@@ -116,12 +125,7 @@
$wgAutoloadClasses['MapsFinddestination'] = $phDir .
'Maps_Finddestination.php';
$wgAutoloadClasses['MapsGeocode'] =
$phDir . 'Maps_Geocode.php';
$wgAutoloadClasses['MapsGeodistance'] = $phDir .
'Maps_Geodistance.php';
-
- // Load the "Feature/" classes.
- $ftDir = $incDir . '/features/';
- $wgAutoloadClasses['MapsBaseMap'] =
$ftDir . 'Maps_BaseMap.php';
- $wgAutoloadClasses['MapsBasePointMap'] = $ftDir .
'Maps_BasePointMap.php';
-
+
// This function has been deprecated in 1.16, but needed for earlier
versions.
// It's present in 1.16 as a stub, but lets check if it exists in case
it gets removed at some point.
if ( function_exists( 'wfLoadExtensionMessages' ) ) {
Added: trunk/extensions/Maps/includes/criteria/CriterionAreLocations.php
===================================================================
--- trunk/extensions/Maps/includes/criteria/CriterionAreLocations.php
(rev 0)
+++ trunk/extensions/Maps/includes/criteria/CriterionAreLocations.php
2010-09-06 16:17:22 UTC (rev 72497)
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * Parameter criterion stating that the value must be a set of coordinates or
an address.
+ *
+ * @since 0.7
+ *
+ * @file CriterionAreLocations.php
+ * @ingroup Maps
+ * @ingroup Criteria
+ *
+ * @author Jeroen De Dauw
+ */
+class CriterionAreLocations extends ParameterCriterion {
+
+ protected $metaDataSeparator;
+
+ /**
+ * Constructor.
+ *
+ * @since 0.4
+ */
+ public function __construct( $metaDataSeparator = false ) {
+ parent::__construct();
+
+ $this->metaDataSeparator = $metaDataSeparator;
+ }
+
+ /**
+ * @see ParameterCriterion::validate
+ */
+ public function validate( $value ) {
+ if ( $this->metaDataSeparator !== false ) {
+ $parts = explode( $this->metaDataSeparator, $value );
+ $value = $parts[0];
+ }
+
+ if ( MapsGeocoders::canGeocode() ) {
+ // TODO
+ //$geoService = array_key_exists( 'geoservice',
$parameters ) ? $parameters['geoservice']['value'] : '';
+ //$mappingService = array_key_exists( 'mappingservice',
$parameters ) ? $parameters['mappingservice']['value'] : false;
+
+ return MapsGeocoders::isLocation( $value/*,
$geoService, $mappingService */ );
+ } else {
+ return MapsCoordinateParser::areCoordinates( $value );
+ }
+ }
+
+}
\ No newline at end of file
Property changes on:
trunk/extensions/Maps/includes/criteria/CriterionAreLocations.php
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/extensions/Maps/includes/parserHooks/Maps_DisplayMap.php
===================================================================
--- trunk/extensions/Maps/includes/parserHooks/Maps_DisplayMap.php
2010-09-06 16:03:54 UTC (rev 72496)
+++ trunk/extensions/Maps/includes/parserHooks/Maps_DisplayMap.php
2010-09-06 16:17:22 UTC (rev 72497)
@@ -75,7 +75,7 @@
'tolower' => false,
'aliases' => array( 'coords', 'location',
'address' ),
'criteria' => array(
- 'is_location' => array()
+ new CriterionAreLocations()
),
'output-type' => 'coordinateSet',
),
Modified: trunk/extensions/Maps/includes/parserHooks/Maps_DisplayPoint.php
===================================================================
--- trunk/extensions/Maps/includes/parserHooks/Maps_DisplayPoint.php
2010-09-06 16:03:54 UTC (rev 72496)
+++ trunk/extensions/Maps/includes/parserHooks/Maps_DisplayPoint.php
2010-09-06 16:17:22 UTC (rev 72497)
@@ -120,7 +120,7 @@
'type' => array( 'string', 'list', ';' ),
'aliases' => array( 'coords', 'location',
'locations', 'address', 'addresses' ),
'criteria' => array(
- 'are_locations' => array( '~' )
+ new CriterionAreLocations( '~' )
),
'output-type' => array( 'geoPoints', '~' ),
),
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs