Refactor out common code
authorSam Reed <reedy@users.mediawiki.org>
Sun, 1 May 2011 21:28:00 +0000 (21:28 +0000)
committerSam Reed <reedy@users.mediawiki.org>
Sun, 1 May 2011 21:28:00 +0000 (21:28 +0000)
includes/specials/SpecialComparePages.php

index fe5d8db..6b9ef0a 100644 (file)
@@ -100,28 +100,8 @@ class SpecialComparePages extends SpecialPage {
        }
 
        public static function showDiff( $data ){
-
-               if( $data['Revision1'] ){
-                       $rev1 = $data['Revision1'];
-               } elseif( $data['Page1'] ) {
-                       $title = Title::newFromText( $data['Page1'] );
-                       if( $title instanceof Title ){
-                               $rev1 = $title->getLatestRevID();
-                       }
-               } else {
-                       $rev1 = null;
-               }
-
-               if( $data['Revision2'] ){
-                       $rev2 = $data['Revision2'];
-               } elseif( $data['Page2'] ) {
-                       $title = Title::newFromText( $data['Page2'] );
-                       if( $title instanceof Title ){
-                               $rev2 = $title->getLatestRevID();
-                       }
-               } else {
-                       $rev2 = null;
-               }
+               $rev1 = self::revOrTitle( $data['Revision1'], $data['Page1'] );
+               $rev2 = self::revOrTitle( $data['Revision2'], $data['Page2'] );
 
                if( $rev1 && $rev2 ) {
                        $de = new DifferenceEngine( null,
@@ -133,4 +113,16 @@ class SpecialComparePages extends SpecialPage {
                        $de->showDiffPage( true );
                }
        }
+
+       public static function revOrTitle( $revision, $title ) {
+               if( $revision ){
+                       return $revision;
+               } elseif( $title ) {
+                       $title = Title::newFromText( $title );
+                       if( $title instanceof Title ){
+                               return $title->getLatestRevID();
+                       }
+               }
+               return null;
+       }
 }