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

Reply via email to