Robert Vogel has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/173755

Change subject: Fix: preg_replace /e modifier deprecation error
......................................................................

Fix: preg_replace /e modifier deprecation error

There was a very old code path that uses /e modifier in
preg_replace statement. On PHP5 this causes issues. The replacement
actually never gets executed, but the pattern gets still compiled and
causes error_log output. I moved it to preg_replace_callback and adjusted
the callbacks argument processing.

THIS IS A MANUAL MERGE OF https://gerrit.wikimedia.org/r/#/c/173754/

Change-Id: I04bd7ccf54c879efcaf69e801cf343160cac4bd7
---
M includes/outputhandler/views/view.BaseElement.php
1 file changed, 12 insertions(+), 2 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BlueSpiceFoundation 
refs/changes/55/173755/1

diff --git a/includes/outputhandler/views/view.BaseElement.php 
b/includes/outputhandler/views/view.BaseElement.php
index fc1ff13..86efbc1 100644
--- a/includes/outputhandler/views/view.BaseElement.php
+++ b/includes/outputhandler/views/view.BaseElement.php
@@ -235,7 +235,11 @@
                elseif ( count( $this->_mItems ) ) {
                        if ( $this->_mTemplate != '' ) {
                                $output = $this->_mTemplate;
-                               $output = preg_replace( 
'/###([-_|A-Za-z0-9]*?)###/e', "\$this->processItem('\\1')", $output );
+                               $output = preg_replace_callback(
+                                       '/###([-_|A-Za-z0-9]*?)###/',
+                                       array( $this, 'processItem' ),
+                                       $output
+                               );
                        }
                        else {
                                $output .= $this->getAutoElementOpener();
@@ -261,7 +265,11 @@
                $this->_mPresentDataset = $dataSet;
                if($this->_mTemplate != '') {
                        $output = $this->_mTemplate;
-                       $output = preg_replace( '/###([-_|A-Za-z0-9]*?)###/e', 
"\$this->processItem('\\1')", $output ); // TODO RBV (12.10.10 16:37): Könnte 
man das nicht etwas ansehnlicher mit preg_replace_callback gestalten?
+                       $output = preg_replace_callback(
+                               '/###([-_|A-Za-z0-9]*?)###/',
+                               array( $this, 'processItem' ),
+                               $output
+                       );
                        foreach( $dataSet as $key => $value ) {
                                $output = str_replace('{'.$key.'}', $value, 
$output);
                        }
@@ -280,6 +288,8 @@
        }
 
        protected function processItem( $request ) {
+               $request = $matches[1];
+
                // TODO MRG20100816: Ist diese Token-Syntax irgendwo 
beschrieben? Ausserdem müssen wir sicherstellen, dass
                // | nicht anderweitig verwendet wird.
                $tokens = explode( '|', $request );

-- 
To view, visit https://gerrit.wikimedia.org/r/173755
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I04bd7ccf54c879efcaf69e801cf343160cac4bd7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BlueSpiceFoundation
Gerrit-Branch: master
Gerrit-Owner: Robert Vogel <vo...@hallowelt.biz>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to