Moving image and category detection
authorMagnus Manske <magnusmanske@users.mediawiki.org>
Tue, 10 Jan 2006 18:41:23 +0000 (18:41 +0000)
committerMagnus Manske <magnusmanske@users.mediawiki.org>
Tue, 10 Jan 2006 18:41:23 +0000 (18:41 +0000)
includes/Wiki.php
index.php

index a95e319..9deb9ee 100644 (file)
@@ -16,6 +16,20 @@ class MediaWiki {
                return $default ;
        }
 
+       function setCorrectArticleClass ( &$article , &$title , $namespace ) {
+               // Categories and images are handled by a different class
+               if ( $namespace == NS_IMAGE ) {
+                       unset($article);
+                       require_once( 'includes/ImagePage.php' );
+                       return new ImagePage( $title );
+               } elseif ( $namespace == NS_CATEGORY ) {
+                       unset($article);
+                       require_once( 'includes/CategoryPage.php' );
+                       return new CategoryPage( $title );
+               }
+               return $article ;
+       }
+
        function performAction ( $action , &$output , &$article , &$title , &$user , &$request ) {
                switch( $action ) {
                        case 'view':
index 9fb5c76..3f469de 100644 (file)
--- a/index.php
+++ b/index.php
@@ -167,20 +167,12 @@ if( !$wgDisableInternalSearch && !is_null( $search ) && $search !== '' ) {
                }
        }
 
-       // Categories and images are handled by a different class
-       if ( $ns == NS_IMAGE ) {
-               unset($wgArticle);
-               require_once( 'includes/ImagePage.php' );
-               $wgArticle = new ImagePage( $wgTitle );
-       } elseif ( $ns == NS_CATEGORY ) {
-               unset($wgArticle);
-               require_once( 'includes/CategoryPage.php' );
-               $wgArticle = new CategoryPage( $wgTitle );
-       }
 
        require_once ( "includes/Wiki.php" ) ;
        $mediaWiki = new MediaWiki() ;
 
+       $wgArticle =& $mediaWiki->setCorrectArticleClass ( $wgArticle , $wgTitle , $ns ) ;
+
        if ( in_array( $action, $wgDisabledActions ) ) {
                $wgOut->errorpage( 'nosuchaction', 'nosuchactiontext' );
        } else {