https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114600

Revision: 114600
Author:   netbrain
Date:     2012-03-29 12:21:49 +0000 (Thu, 29 Mar 2012)
Log Message:
-----------
added parameter metadata separator

Modified Paths:
--------------
    trunk/extensions/Maps/includes/criteria/CriterionLine.php
    trunk/extensions/Maps/includes/criteria/CriterionPolygon.php
    trunk/extensions/Maps/includes/features/Maps_BasePointLineMap.php
    trunk/extensions/Maps/includes/manipulations/Maps_ParamLine.php
    trunk/extensions/Maps/includes/manipulations/Maps_ParamPolygon.php
    trunk/extensions/Maps/includes/parserHooks/Maps_DisplayLine.php

Modified: trunk/extensions/Maps/includes/criteria/CriterionLine.php
===================================================================
--- trunk/extensions/Maps/includes/criteria/CriterionLine.php   2012-03-29 
11:16:43 UTC (rev 114599)
+++ trunk/extensions/Maps/includes/criteria/CriterionLine.php   2012-03-29 
12:21:49 UTC (rev 114600)
@@ -15,6 +15,15 @@
 class CriterionLine extends ItemParameterCriterion
 {
 
+    protected $metaDataSeparator;
+
+    public function __construct( $metaDataSeparator ) {
+        parent::__construct();
+
+        $this->metaDataSeparator = $metaDataSeparator;
+    }
+
+
     /**
      * Returns true if the parameter value contains atleast 1 comma
      * meaning that there are atleast two enpoints on which to draw a line.
@@ -43,9 +52,9 @@
         }
 
         //strip away line parameters and check for valid locations
-        $parts = preg_split('/[:]/', $value);
+        $parts = explode(':', $value);
         foreach ($parts as $part) {
-            $toIndex = strpos($part, '|');
+            $toIndex = strpos($part, $this->metaDataSeparator);
             if ($toIndex != false) {
                 $part = substr($part, 0, $toIndex);
             }

Modified: trunk/extensions/Maps/includes/criteria/CriterionPolygon.php
===================================================================
--- trunk/extensions/Maps/includes/criteria/CriterionPolygon.php        
2012-03-29 11:16:43 UTC (rev 114599)
+++ trunk/extensions/Maps/includes/criteria/CriterionPolygon.php        
2012-03-29 12:21:49 UTC (rev 114600)
@@ -15,6 +15,14 @@
 class CriterionPolygon extends ItemParameterCriterion
 {
 
+    protected $metaDataSeparator;
+
+    public function __construct( $metaDataSeparator ) {
+        parent::__construct();
+
+        $this->metaDataSeparator = $metaDataSeparator;
+    }
+
     /**
      * Returns true if the parameter value contains atleast 1 colon
      * meaning that there are atleast two enpoints on which to draw a polygon.
@@ -43,10 +51,10 @@
             $mappingService = $parameter->hasDependency('mappingservice') ? 
$parameters['mappingservice']->getValue() : false;
         }
 
-        //strip away line parameters and check for valid locations
-        $parts = preg_split('/[:]/', $value);
+        //strip away polygon parameters and check for valid locations
+        $parts = explode(':', $value);
         foreach ($parts as $part) {
-            $toIndex = strpos($part, '|');
+            $toIndex = strpos($part, $this->metaDataSeparator);
             if ($toIndex != false) {
                 $part = substr($part, 0, $toIndex);
             }

Modified: trunk/extensions/Maps/includes/features/Maps_BasePointLineMap.php
===================================================================
--- trunk/extensions/Maps/includes/features/Maps_BasePointLineMap.php   
2012-03-29 11:16:43 UTC (rev 114599)
+++ trunk/extensions/Maps/includes/features/Maps_BasePointLineMap.php   
2012-03-29 12:21:49 UTC (rev 114600)
@@ -24,6 +24,16 @@
             $line['text'] = ( $hasTitleAndtext ? '<b>' . $line['title'] . 
'</b><hr />' : $line['title'] ) . $line['text'];
             $line['title'] = strip_tags( $line['title'] );
         }
+
+        foreach($params['polygons'] as &$polygon){
+
+            $polygon['title'] = $parserClone->parse( $polygon['title'], 
$parserClone->getTitle(), new ParserOptions() )->getText();
+            $polygon['text'] = $parserClone->parse( $polygon['text'], 
$parserClone->getTitle(), new ParserOptions() )->getText();
+
+            $hasTitleAndtext = $polygon['title'] !== '' && $polygon['text'] 
!== '';
+            $polygon['text'] = ( $hasTitleAndtext ? '<b>' . $polygon['title'] 
. '</b><hr />' : $polygon['title'] ) . $polygon['text'];
+            $polygon['title'] = strip_tags( $polygon['title'] );
+        }
     }
 
 

Modified: trunk/extensions/Maps/includes/manipulations/Maps_ParamLine.php
===================================================================
--- trunk/extensions/Maps/includes/manipulations/Maps_ParamLine.php     
2012-03-29 11:16:43 UTC (rev 114599)
+++ trunk/extensions/Maps/includes/manipulations/Maps_ParamLine.php     
2012-03-29 12:21:49 UTC (rev 114600)
@@ -3,11 +3,12 @@
 
 
 
-    /**
-     * Constructor
-     */
-    public function __construct() {
+    protected $metaDataSeparator;
+
+    public function __construct( $metaDataSeparator ) {
         parent::__construct();
+
+        $this->metaDataSeparator = $metaDataSeparator;
     }
 
     /**
@@ -23,8 +24,8 @@
      */
     public function doManipulation(&$value, Parameter $parameter, array 
&$parameters)
     {
-      $parts = preg_split('/[\|]+/',$value);
-      $lineCoords = preg_split('/[:]/',$parts[0]);
+      $parts = explode($this->metaDataSeparator,$value);
+      $lineCoords = explode(':',$parts[0]);
 
       $value = new MapsLine($lineCoords);
       $value->setTitle( isset($parts[1]) ? $parts[1] : '' );

Modified: trunk/extensions/Maps/includes/manipulations/Maps_ParamPolygon.php
===================================================================
--- trunk/extensions/Maps/includes/manipulations/Maps_ParamPolygon.php  
2012-03-29 11:16:43 UTC (rev 114599)
+++ trunk/extensions/Maps/includes/manipulations/Maps_ParamPolygon.php  
2012-03-29 12:21:49 UTC (rev 114600)
@@ -1,11 +1,12 @@
 <?php
 class MapsParamPolygon extends ItemParameterManipulation {
 
-    /**
-     * Constructor
-     */
-    public function __construct() {
+    protected $metaDataSeparator;
+
+    public function __construct( $metaDataSeparator ) {
         parent::__construct();
+
+        $this->metaDataSeparator = $metaDataSeparator;
     }
 
     /**
@@ -21,8 +22,8 @@
      */
     public function doManipulation(&$value, Parameter $parameter, array 
&$parameters)
     {
-      $parts = preg_split('/[\|]+/',$value);
-      $polygonCoords = preg_split('/[:]/',$parts[0]);
+      $parts = explode($this->metaDataSeparator,$value);
+      $polygonCoords = explode(':',$parts[0]);
 
       $value = new MapsPolygon($polygonCoords);
       $value->setTitle( isset($parts[1]) ? $parts[1] : '' );

Modified: trunk/extensions/Maps/includes/parserHooks/Maps_DisplayLine.php
===================================================================
--- trunk/extensions/Maps/includes/parserHooks/Maps_DisplayLine.php     
2012-03-29 11:16:43 UTC (rev 114599)
+++ trunk/extensions/Maps/includes/parserHooks/Maps_DisplayLine.php     
2012-03-29 12:21:49 UTC (rev 114600)
@@ -65,13 +65,13 @@
 
         $params['lines'] = new ListParameter( 'lines', ';' );
         $params['lines']->setDefault(array());
-        $params['lines']->addCriteria(new CriterionLine());
-        $params['lines']->addManipulations( new MapsParamLine() );
+        $params['lines']->addCriteria(new CriterionLine($type === 
ParserHook::TYPE_FUNCTION ? '~' : '|' ));
+        $params['lines']->addManipulations(new MapsParamLine($type === 
ParserHook::TYPE_FUNCTION ? '~' : '|' ));
 
         $params['polygons'] = new ListParameter( 'polygons', ';' );
         $params['polygons']->setDefault(array());
-        $params['polygons']->addCriteria(new CriterionPolygon());
-        $params['polygons']->addManipulations( new MapsParamPolygon() );
+        $params['polygons']->addCriteria(new CriterionPolygon($type === 
ParserHook::TYPE_FUNCTION ? '~' : '|' ));
+        $params['polygons']->addManipulations(new MapsParamPolygon($type === 
ParserHook::TYPE_FUNCTION ? '~' : '|' ));
 
         $params['copycoords'] = new Parameter(
             'copycoords',


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to