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