https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114946
Revision: 114946
Author: foxtrott
Date: 2012-04-17 21:06:32 +0000 (Tue, 17 Apr 2012)
Log Message:
-----------
'keep parameters' for serieslink
Modified Paths:
--------------
trunk/extensions/SemanticPageSeries/includes/SPSSpecialSeriesEdit.php
trunk/extensions/SemanticPageSeries/includes/SPSUtils.php
Modified: trunk/extensions/SemanticPageSeries/includes/SPSSpecialSeriesEdit.php
===================================================================
--- trunk/extensions/SemanticPageSeries/includes/SPSSpecialSeriesEdit.php
2012-04-17 20:32:43 UTC (rev 114945)
+++ trunk/extensions/SemanticPageSeries/includes/SPSSpecialSeriesEdit.php
2012-04-17 21:06:32 UTC (rev 114946)
@@ -23,7 +23,7 @@
}
public function execute( $parameters ) {
- global $wgRequest, $wgOut;
+ global $wgRequest;
$this->setHeaders();
@@ -165,7 +165,7 @@
private function evaluateForm( WebRequest &$request ) {
- global $wgOut, $wgUser, $spsgIterators;
+ global $wgUser, $spsgIterators;
$requestValues = $_POST;
@@ -180,6 +180,7 @@
$targetFormName = null;
$targetFieldName = null;
$originPageId = null;
+ $keepParameters = false;
foreach ( $iteratorData as $param => $value ) {
@@ -197,8 +198,10 @@
case 'origin':
$originPageId = $value;
break;
+ case 'keep_parameters':
+ $keepParameters = true;
default :
- $iteratorParams[$param] =
$this->getAndRemoveFromArray( $requestValues, $value );
+ $iteratorParams[$param] =
$this->getAndRemoveFromArray( $requestValues, $value, $keepParameters );
}
}
@@ -295,6 +298,9 @@
// targetFormName
$targetFormName = $request->getVal( 'target_form' );
+ // keep parameters?
+ $keepParams = $request->getVal( 'keep_parameters' ) !== null;
+
if ( is_null( $targetFormName ) ) {
throw new SPSException( SPSUtils::buildMessage(
'spserror-notargetformname' ) );
}
@@ -321,6 +327,10 @@
'origin' => $request->getVal( 'origin' )
);
+ if ($keepParams) {
+ $params['keep_parameters'] = true;
+ }
+
// add the iterator-specific values
$paramNames = $iterator->getParameterNames();
$errors = '';
@@ -358,13 +368,15 @@
* @param type $key
* @param type $toplevel
*/
- private function getAndRemoveFromArray( &$array, $key, $toplevel = true
) {
+ private function getAndRemoveFromArray( &$array, $key, $keepParameters
= false, $toplevel = true ) {
$matches = array();
if ( array_key_exists( $key, $array ) ) {
$value = $array[$key];
- unset( $array[$key] );
+ if ( !$keepParameters ) {
+ unset( $array[$key] );
+ }
return $value;
} elseif ( preg_match( '/^([^\[\]]*)\[([^\[\]]*)\](.*)/', $key,
$matches ) ) {
@@ -381,7 +393,7 @@
return null;
}
- $value = $this->getAndRemoveFromArray( $array[$key],
$matches[2] . $matches[3], false );
+ $value = $this->getAndRemoveFromArray( $array[$key],
$matches[2] . $matches[3], $keepParameters, false );
if ( empty( $array[$key] ) ) {
unset( $array[$key] );
Modified: trunk/extensions/SemanticPageSeries/includes/SPSUtils.php
===================================================================
--- trunk/extensions/SemanticPageSeries/includes/SPSUtils.php 2012-04-17
20:32:43 UTC (rev 114945)
+++ trunk/extensions/SemanticPageSeries/includes/SPSUtils.php 2012-04-17
21:06:32 UTC (rev 114946)
@@ -44,8 +44,6 @@
*/
static public function renderSeriesLink( &$parser ) {
- global $wgTitle;
-
$params = func_get_args();
array_shift( $params ); // We don't need the parser.
@@ -54,6 +52,8 @@
$elements = explode( '=', $value, 2 );
if ( $elements[0] === 'target' ){
unset($params[$key]);
+ } elseif ( $elements[0] === 'keep parameters') {
+ $params[$key] = 'keep parameters=1';
}
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs