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

Revision: 110091
Author:   reedy
Date:     2012-01-26 22:19:18 +0000 (Thu, 26 Jan 2012)
Log Message:
-----------
Followup r110040, de-indent some of the code

Inverted a few inner ifs, if $formatter isn't an array, earlier

else if to elseif

Moved some code around to flip the indenting

Modified Paths:
--------------
    trunk/extensions/ZeroRatedMobileAccess/ZeroRatedMobileAccess.body.php

Modified: trunk/extensions/ZeroRatedMobileAccess/ZeroRatedMobileAccess.body.php
===================================================================
--- trunk/extensions/ZeroRatedMobileAccess/ZeroRatedMobileAccess.body.php       
2012-01-26 22:08:38 UTC (rev 110090)
+++ trunk/extensions/ZeroRatedMobileAccess/ZeroRatedMobileAccess.body.php       
2012-01-26 22:19:18 UTC (rev 110091)
@@ -326,76 +326,89 @@
                return true;
        }
 
+       /**
+        * @param $formatter array
+        * @param $wikiText string
+        * @param $nChild bool
+        * @return array
+        */
        public function parseWikiTextToArray( Array $formatter, $wikiText, 
$nChild = false ) {
+               $options = array();
+               if ( !is_array( $formatter ) ) {
+                       return $options;
+               }
                wfProfileIn( __METHOD__ );
-               $options = array();
                $data = explode( PHP_EOL, $wikiText );
-               if ( is_array( $formatter ) && !$nChild ) {
-                       $arrayKeys = array_keys( $formatter );
-                       $keyCount = count( $arrayKeys );
-                       $index = 0;
+               if( $nChild ) {
                        foreach ( $data as $key => $rawData ) {
-                               $index = ( intval( $key ) % $keyCount === 0 ) ? 
0 : $index + 1;
-                               if ( in_array( $index, $arrayKeys ) ) {
+                               if ( strpos( $rawData, '*' ) === 0 && strpos( 
$rawData, '**' ) !== 0 && $key >= 0 ) {
                                        $data = trim( str_replace( '*', '', 
$rawData ) );
-                                       if ( is_array( $formatter[$index] ) ) {
-                                               $name = 
$formatter[$index]['name'];
-                                               if ( isset( 
$formatter[$index]['callback'] ) ) {
-                                                       $callback = 
$formatter[$index]['callback'];
-                                                       if ( method_exists( 
$this, $callback ) ) {
-                                                               if ( isset( 
$formatter[$index]['parameters'] ) ) {
-                                                                       if ( 
is_array( $formatter[$index]['parameters'] ) ) {
-                                                                               
$parameters = array();
-                                                                               
foreach ( $formatter[$index]['parameters'] as $parameter ) {
-                                                                               
        if ( isset( $options[$prefixName][$parameter] ) ) {
-                                                                               
                $parameters[$parameter] = $options[$prefixName][$parameter];
-                                                                               
        }
-                                                                               
}
-                                                                               
$data = $this->$callback( $data, $parameters );
-                                                                       } else {
-                                                                               
$parameter = $formatter[$index]['parameters'];
-                                                                               
if ( isset( $options[$prefixName][$parameter] ) ) {
-                                                                               
        $parameterValue = $options[$prefixName][$parameter];
-                                                                               
        $data = $this->$callback( $data, $parameterValue );
-                                                                               
}
-                                                                       }
-                                                               } else {
-                                                                       $data = 
$this->$callback( $data );
-                                                               }
-                                                       }
+                                       $prefixName = strtoupper( $data );
+                                       $options[$prefixName] = '';
+                               } elseif ( strpos( $rawData, '**' ) === 0 && 
$key > 0 ) {
+                                       $data = trim( str_replace( '*', '', 
$rawData ) );
+                                       if ( !is_array( $formatter ) ) {
+                                               $options[$prefixName][] = $data;
+                                               continue;
+                                       }
+                                       if ( !isset( $formatter[0]['callback'] 
) ) {
+                                               continue;
+                                       }
+                                       $callback = $formatter[0]['callback'];
+                                       if ( method_exists( $this, $callback ) 
) {
+                                               $data = $this->$callback( $data 
);
+                                               if ( $data ) {
+                                                       $options[$prefixName][] 
= $data;
                                                }
-                                       } else {
-                                               $name = $formatter[$index];
                                        }
-                                       if ( $index === 0 ) {
-                                               $prefixName = strtoupper( $data 
);
-                                       }
-                                       $options[$prefixName][$name] = $data;
                                }
                        }
-               } else if ( is_array( $formatter ) && $nChild ) {
-                       foreach ( $data as $key => $rawData ) {
-                               if ( strpos( $rawData, '*' ) === 0 && strpos( 
$rawData, '**' ) !== 0 && $key >= 0 ) {
-                                       $data = trim( str_replace( '*', '', 
$rawData ) );
-                                       $prefixName = strtoupper( $data );
-                                       $options[$prefixName] = '';
-                               } else if ( strpos( $rawData, '**' ) === 0 && 
$key > 0 ) {
-                                       $data = trim( str_replace( '*', '', 
$rawData ) );
-                                       if ( is_array( $formatter ) ) {
-                                               if ( isset( 
$formatter[0]['callback'] ) ) {
-                                                       $callback = 
$formatter[0]['callback'];
-                                                       if ( method_exists( 
$this, $callback ) ) {
-                                                               $data = 
$this->$callback( $data );
-                                                               if ( $data ) {
-                                                                       
$options[$prefixName][] = $data;
+                       wfProfileOut( __METHOD__ );
+                       return $options;
+               }
+
+               $arrayKeys = array_keys( $formatter );
+               $keyCount = count( $arrayKeys );
+               $index = 0;
+               foreach ( $data as $key => $rawData ) {
+                       $index = ( intval( $key ) % $keyCount === 0 ) ? 0 : 
$index + 1;
+                       if ( !in_array( $index, $arrayKeys ) ) {
+                               continue;
+                       }
+                       $data = trim( str_replace( '*', '', $rawData ) );
+                       if ( is_array( $formatter[$index] ) ) {
+                               $name = $formatter[$index]['name'];
+                               if ( isset( $formatter[$index]['callback'] ) ) {
+                                       $callback = 
$formatter[$index]['callback'];
+                                       if ( method_exists( $this, $callback ) 
) {
+                                               if ( isset( 
$formatter[$index]['parameters'] ) ) {
+                                                       if ( is_array( 
$formatter[$index]['parameters'] ) ) {
+                                                               $parameters = 
array();
+                                                               foreach ( 
$formatter[$index]['parameters'] as $parameter ) {
+                                                                       if ( 
isset( $options[$prefixName][$parameter] ) ) {
+                                                                               
$parameters[$parameter] = $options[$prefixName][$parameter];
+                                                                       }
                                                                }
+                                                               $data = 
$this->$callback( $data, $parameters );
+                                                       } else {
+                                                               $parameter = 
$formatter[$index]['parameters'];
+                                                               if ( isset( 
$options[$prefixName][$parameter] ) ) {
+                                                                       
$parameterValue = $options[$prefixName][$parameter];
+                                                                       $data = 
$this->$callback( $data, $parameterValue );
+                                                               }
                                                        }
+                                               } else {
+                                                       $data = 
$this->$callback( $data );
                                                }
-                                       } else {
-                                               $options[$prefixName][] = $data;
                                        }
                                }
+                       } else {
+                               $name = $formatter[$index];
                        }
+                       if ( $index === 0 ) {
+                               $prefixName = strtoupper( $data );
+                       }
+                       $options[$prefixName][$name] = $data;
                }
                wfProfileOut( __METHOD__ );
                return $options;
@@ -435,12 +448,12 @@
                if ( !$carrierOptions ) {
                        if ( $rev ) {
                                $formatter = array(
-                                        0 => 'name',
-                                        1 => array( 'name' => 'link',
+                                       0 => 'name',
+                                       1 => array( 'name' => 'link',
                                                                 'callback' => 
'createUrlCallback',
                                                                 'parameters' 
=> 'name',
                                                ),
-                                        2 => array( 'name' => 'partnerId',
+                                       2 => array( 'name' => 'partnerId',
                                                                 'callback' => 
'intValCallback'
                                                ),
                                );


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

Reply via email to