Reverting SpecialImagelist and SpecialNewimages from odd half-state.
authorBrion Vibber <brion@users.mediawiki.org>
Mon, 9 Jan 2006 22:06:40 +0000 (22:06 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Mon, 9 Jan 2006 22:06:40 +0000 (22:06 +0000)
If they're actually being replaced, they should be actually replaced, not left half-there and unused.
New code not yet reviewed.

includes/SpecialFilelist.php [deleted file]
includes/SpecialImagelist.php
includes/SpecialNewimages.php
includes/SpecialPage.php

diff --git a/includes/SpecialFilelist.php b/includes/SpecialFilelist.php
deleted file mode 100644 (file)
index 3483dbe..0000000
+++ /dev/null
@@ -1,441 +0,0 @@
-<?php
-if (!defined('MEDIAWIKI')) die();
-/**
- * A Special Page to replace Special:Imagelist and Special:Newimages
- *
- * @package MediaWiki
- * @subpackage Extensions
- *
- * @author Magnus Manske <magnus.manske@web.de>
- * @copyright Copyright © 2006, Magnus Manske
- * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- */
-
-require_once( 'ImageGallery.php' );
-
-function wfSpecialFilelist ( $par, $specialPage , $force_gallery = true ) {
-
-       class SpecialFilelist extends SpecialPage {
-
-               var $dbr , $sk ;
-       
-               /**
-                * Constructor
-                */
-               function SpecialFilelist() {
-                       SpecialPage::SpecialPage( 'Filelist' );
-                       $this->includable( false );
-               }
-               
-               /**
-                * Get the SQL to hide bot-users
-                @param hide Hide the bots? (boolean)
-               */
-               function getHideBotSQL ( $hide ) {
-                       if ( !$hide ) {
-                               # Don't hide bots
-                               return "" ;
-                       }
-                       
-                       global $wgGroupPermissions ;
-                       $botconds=array();
-                       foreach ($wgGroupPermissions as $groupname=>$perms) {
-                               if(array_key_exists('bot',$perms) && $perms['bot']) {
-                                       $botconds[]="ug_group='$groupname'";
-                               }
-                       }
-                       $isbotmember=$this->dbr->makeList($botconds, LIST_OR);
-
-                       /** This join, in conjunction with WHERE ug_group
-                           IS NULL, returns only those rows from IMAGE
-                           where the uploading user is not a member of
-                           a group which has the 'bot' permission set.
-                       */
-                       $ug = $this->dbr->tableName('user_groups');
-                       $joinsql=" LEFT OUTER JOIN $ug ON img_user=ug_user AND ("
-                         . $isbotmember.')';
-                       return $joinsql ;
-               }
-               
-               /**
-                * Returns the latest timestamp for an image in the image table
-                @param params Parameters, not changed by this function (passed as refrence for speedup)
-               */
-               function getTimeStamp ( &$params ) {
-                       $sql="SELECT img_timestamp from " . $params['imagetable'];
-                       if($params['hidebots']) {
-                               $sql .= $params['botsql'].' WHERE ug_group IS NULL';
-                       }
-                       if ( isset ( $params['user'] ) ) {
-                               $sql .= " AND img_user='" . $params['user']->getID() . "'" ;
-                       }
-                       $sql .= ' ORDER BY img_timestamp' ;
-                       $sql .= ' DESC' ;
-                       $sql .= ' LIMIT 1';
-                       $res = $this->dbr->query($sql, 'SpecialFilelist::getTimeStamp');
-                       $row = $this->dbr->fetchRow($res);
-                       if($row!==false) {
-                               $ts=$row[0];
-                       } else {
-                               $ts=false;
-                       }
-                       $this->dbr->freeResult($res);
-
-                       /** If we were clever, we'd use this to cache. */
-                       $latestTimestamp = wfTimestamp( TS_MW, $ts);
-                       return $latestTimestamp ;
-               }
-               
-               /**
-                * Returns an array of images from the database
-                @param params Parameters, not changed by this function (passed as refrence for speedup)
-               */
-               function getImages ( &$params ) {
-                       $where = array();
-                       $searchpar = '';
-                       if ( $params['match'] != '' ) {
-                               $nt = Title::newFromUrl( $params['match'] );
-                               if($nt ) {
-                                       $m = $this->dbr->strencode( strtolower( $nt->getDBkey() ) );
-                                       $m = str_replace( '%', "\\%", $m );
-                                       $m = str_replace( '_', "\\_", $m );
-                                       $where[] = "LCASE(img_name) LIKE '%{$m}%'";
-                                       $searchpar = '&wpIlMatch=' . ( $params['match'] );
-                               }
-                       }
-
-                       if( $params['until'] != "" ) {
-                               $where[] = 'img_timestamp >= ' . $this->dbr->timestamp( $params['until'] );
-                       } else if ( $params['date'] != "" ) {
-                               $where[] = 'img_timestamp < ' . $this->dbr->timestamp( $params['date'] );
-                       }
-
-                       $sql = 'SELECT img_size, img_name, img_user, img_user_text,'.
-                            'img_description,img_timestamp FROM ' . $params['imagetable'] ;
-
-                       # Hide the bots?
-                       if($params['hidebots']) {
-                               $sql .= $params['botsql'] ;
-                               $where[] = 'ug_group IS NULL' ;
-                       }
-                       
-                       # Single user?
-                       if ( isset ( $params['user'] ) ) {
-                               $where[] = "img_user='" . $params['user']->getID() . "'" ;
-                       }
-                       
-                       if(count($where)) {
-                               $sql.=' WHERE '.$this->dbr->makeList($where, LIST_AND);
-                       }
-                       $sql.=' ORDER BY img_timestamp '. ( $params['latestfirst'] ? '' : ' DESC' );
-                       $sql.=' LIMIT '.($params['limit']+1);
-                       $res = $this->dbr->query($sql, 'SpecialFilelist::getImages');
-
-                       /**
-                        * We have to flip things around to get the last N after a certain date
-                        */
-                       $images = array();
-                       while ( $s = $this->dbr->fetchObject( $res ) ) {
-                               if( $params['latestfirst'] ) {
-                                       array_unshift( $images, $s );
-                               } else {
-                                       array_push( $images, $s );
-                               }
-                       }
-                       $this->dbr->freeResult( $res );
-                       return $images ;                
-               }
-               
-               /**
-                * Returns HTML for a gallery
-               */
-               function makeGallery ( &$images , &$params ) {
-                       global $wgLang ;
-                       $gallery = new ImageGallery();
-                       $firstTimestamp = null;
-                       $lastTimestamp = null;
-                       $shownImages = 0;
-                       $params['therearemore'] = false ;
-                       foreach( $images as $s ) {
-                               if( ++$shownImages > $params['limit'] ) {
-                                       # One extra just to test for whether to show a page link;
-                                       # don't actually show it, but remember there are more.
-                                       $params['therearemore'] = true ;
-                                       break;
-                               }
-       
-                               $name = $s->img_name;
-                               $ut = $s->img_user_text;
-       
-                               $nt = Title::newFromText( $name, NS_IMAGE );
-                               $img = Image::newFromTitle( $nt );
-                               $ul = $this->sk->makeLinkObj( Title::makeTitle( NS_USER, $ut ), $ut );
-               
-                               $gallery->add( $img, "$ul<br />\n<i>".$wgLang->timeanddate( $s->img_timestamp, true )."</i><br />\n" );
-       
-                               $timestamp = wfTimestamp( TS_MW, $s->img_timestamp );
-                               if( empty( $firstTimestamp ) ) {
-                                       $firstTimestamp = $timestamp;
-                               }
-                               $lastTimestamp = $timestamp;
-                       }
-                       $params['lasttimestamp'] = $lastTimestamp ;
-                       $params['firsttimestamp'] = $firstTimestamp ;
-                       return $gallery->toHTML() ;
-               }
-
-               /**
-                * Returns a list of files
-               */
-               function makeList ( &$images , &$params ) {
-                       global $wgLang ;
-                       $firstTimestamp = null;
-                       $lastTimestamp = null;
-                       $shownImages = 0;
-                       $params['therearemore'] = false ;
-                       $out = "" ;
-                       foreach( $images as $s ) {
-                               if( ++$shownImages > $params['limit'] ) {
-                                       # One extra just to test for whether to show a page link;
-                                       # don't actually show it, but remember there are more.
-                                       $params['therearemore'] = true ;
-                                       break;
-                               }
-                               
-                               $name = $s->img_name;
-                               $ut = $s->img_user_text;
-                               if ( 0 == $s->img_user ) {
-                                       $ul = $ut;
-                               } else {
-                                       $ul = $this->sk->makeLinkObj( Title::makeTitle( NS_USER, $ut ), $ut );
-                               }
-       
-                               $ilink = "<a href=\"" . htmlspecialchars( Image::imageUrl( $name ) ) .
-                                 "\">" . strtr(htmlspecialchars( $name ), '_', ' ') . "</a>";
-       
-                               $nb = wfMsg( "nbytes", $wgLang->formatNum( $s->img_size ) );
-                               $l = "(" .
-                                 $this->sk->makeKnownLinkObj( Title::makeTitle( NS_IMAGE, $name ),
-                                 wfMsg( "imgdesc" ) ) .
-                                 ") {$ilink} . . {$nb} . . {$ul} . . " .
-                                 $wgLang->timeanddate( $s->img_timestamp, true );
-                       
-                               $l .= $this->sk->commentBlock( $s->img_description );
-                               $out .= $l . "<br />\n" ;
-
-                               $timestamp = wfTimestamp( TS_MW, $s->img_timestamp );
-                               if( empty( $firstTimestamp ) ) {
-                                       $firstTimestamp = $timestamp;
-                               }
-                               $lastTimestamp = $timestamp;
-                       }
-                       $params['lasttimestamp'] = $lastTimestamp ;
-                       $params['firsttimestamp'] = $firstTimestamp ;
-                       return $out ;
-               }
-
-               /**
-                * Preparing parameter for URL
-               */
-               function convertURLparams ( &$params ) {
-                       $p2 = array() ;
-                       if ( isset ( $p2['user'] ) ) {
-                               $p2['user'] = urlencode ( $p2['user']->getName() ) ;
-                       }
-                       
-                       if ( $params['gallery'] != true ) $p2['gallery'] = $params['gallery'] ? "1" : "0" ;
-                       if ( $params['hidebots'] != true ) $p2['hidebots'] = $params['hidebots'] ? "1" : "0" ;
-                       if ( $params['date'] != "" ) $p2['date'] = $params['date'] ;
-                       if ( $params['until'] != "" ) $p2['until'] = $params['until'] ;
-                       if ( $params['match'] != "" ) $p2['match'] = $params['match'] ;
-                       $p2['limit'] = $params['limit'] ;
-
-                       return $p2 ;
-               }
-               
-               /**
-                * Return URL parameters
-               */
-               function getURLparams ( &$params ) {
-                       $ret = "" ;
-                       foreach ( $params AS $k => $v ) {
-                               if ( $v == "" ) continue ;
-                               if ( $ret != "" ) {
-                                       $ret .= "&" ;
-                               }
-                               $ret .= $k . "=" . urlencode ( $v ) ;
-                       }
-                       return $ret ;
-               }
-
-               /**
-                * Returns the form for keyword matching
-               */
-               function matchform ( &$params ) {
-                       $titleObj = Title::makeTitle( NS_SPECIAL, 'Filelist' );
-                       $action = $titleObj->escapeLocalURL();
-                       $sub = wfMsg( 'ilsubmit' );
-                       $p2 = $this->convertURLparams ( $params ) ;
-                       unset ( $p2['match'] ) ;
-                       $action .= "?" . $this->getURLparams ( $p2 ) ;
-                       $ret = "<form id=\"matchform\" method=\"post\" action=\"" .
-                         "{$action}\">" .
-                         "<input type='text' size='20' name=\"match\" value=\"" .
-                         htmlspecialchars( $params['match'] ) . "\" /> " .
-                         "<input type='submit' name=\"domatch\" value=\"{$sub}\" /></form>" ;
-                       return "<p>" . $ret . "</p>" ;
-               }
-               
-               /**
-                * Returns the limits links
-               */
-               function limits ( &$params ) {
-                       global $wgLang ;
-                       $titleObj = Title::makeTitle( NS_SPECIAL, 'Filelist' );
-                       $ret = array () ;
-                       
-                       if ( $params['gallery'] ) {
-                               $al = array ( 12 , 36 , 48 , 60 ) ;
-                       } else {
-                               $al = array ( 10 , 25 , 50 , 100 ) ;
-                       }
-
-                       $p2 = $this->convertURLparams ( $params ) ;
-                       
-                       foreach ( $al AS $l ) {
-                               $p2['limit'] = $l ;
-                               $p = $this->getURLparams ( $p2 ) ;
-
-                               $ret[] = $this->sk->makeKnownLinkObj( $titleObj, $wgLang->formatNum( $l ), $p ) ;
-                       }
-
-                       $text = wfMsg( "showlast", implode ( " | " , $ret ), wfMsg('bydate') );
-                       return $text ;
-               }
-               
-               /**
-                * Returns the option links
-               */
-               function options ( &$params ) {
-                       $titleObj = Title::makeTitle( NS_SPECIAL, 'Filelist' );
-                       $ret = array () ;
-
-                       $p2 = $this->convertURLparams ( $params ) ;
-                       $p2['hidebots'] = $params['hidebots'] ? "0" : "1" ;
-                       $bots = wfMsg( 'showhidebots', ($params['hidebots'] ? wfMsg('show') : wfMsg('hide'))) ;
-                       $ret[] = $this->sk->makeKnownLinkObj( $titleObj, $bots, $this->getURLparams ( $p2 ) );
-                       
-                       $p2 = $this->convertURLparams ( $params ) ;
-                       $p2['gallery'] = $params['gallery'] ? "0" : "1" ;
-                       $bots = $params['gallery'] ? wfMsg('filelist_show_list') : wfMsg('filelist_show_gallery') ;
-                       $ret[] = $this->sk->makeKnownLinkObj( $titleObj, $bots, $this->getURLparams ( $p2 ) );
-                       
-                       return "<p>" . implode ( " | " , $ret ) . "</p>" ;
-               }
-               
-               /**
-                * Returns the previous/next links
-               */
-               function prevnext ( &$params ) {
-                       global $wgLang ;
-                       $out = "" ;
-                       $titleObj = Title::makeTitle( NS_SPECIAL, 'Filelist' );
-                               
-                       $prevLink = wfMsg( 'prevn', $wgLang->formatNum( $params['limit'] ) );
-                       if( $params['therearebefore'] ) {
-                               $p2 = $this->convertURLparams ( $params ) ;
-                               $p2['until'] = $params['firsttimestamp'] ;
-                               unset ( $p2['date'] ) ;
-                               $prevLink = $this->sk->makeKnownLinkObj( $titleObj, $prevLink, $this->getURLparams ( $p2 ) );
-                       }
-
-                       $nextLink = wfMsg( 'nextn', $wgLang->formatNum( $params['limit'] ) );
-                       if( $params['therearemore'] ) {
-                               $p2 = $this->convertURLparams ( $params ) ;
-                               $p2['date'] = $params['lasttimestamp'] ;
-                               unset ( $p2['until'] ) ;
-                               $nextLink = $this->sk->makeKnownLinkObj( $titleObj, $nextLink, $this->getURLparams ( $p2 ) );
-                       }
-                       
-                       $out .= $prevLink . " | " . $nextLink ;
-                       
-                       return "<p>" . $out . "</p>" ;
-               }
-
-               /**
-                * main()
-                */
-               function execute( $par = null , $specialPage , $force_gallery = true ) {
-                       global $wgOut, $wgRequest, $wgUser;
-                       $this->dbr =& wfGetDB( DB_SLAVE );
-                       $this->sk = $wgUser->getSkin();
-                       
-                       # Setting a bunch of parameters to passed or default values; also some variables which makes them easier to pass to functions
-                       $params['gallery'] = $wgRequest->getBool ( 'gallery' , $force_gallery ) ;
-                       $params['hidebots'] = $wgRequest->getBool ( 'hidebots' , true ) ;
-                       $params['date'] = $wgRequest->getVal ( 'date' , "" ) ;
-                       $params['until'] = $wgRequest->getVal ( 'until' , "" ) ;
-                       $params['match'] = $wgRequest->getVal ( 'match' , "" ) ;
-                       $params['limit'] = $wgRequest->getInt ( 'limit' , ($params['gallery']?48:50) ) ;
-                       $params['user'] = urldecode ( $wgRequest->getVal ( 'user' , ($par==NULL?"":$par) ) ) ;
-                       $params['botsql'] = $this->getHideBotSQL ( $params['hidebots'] ) ;
-                       $params['imagetable'] = $this->dbr->tableName('image');
-                       
-                       # If "until" is set, "date" should be invalid; also, "latestfirst" should be true to force inverted 
-                       if ( $params['until'] != "" ) {
-                               $params['date'] = "" ;
-                               $params['latestfirst'] = true ;
-                       } else {
-                               $params['latestfirst'] = false ;
-                       }
-
-                       # Preventing full DB scan for single user; remove this and the following line once the user field has an index
-                       $params['user'] = "" ;
-                       
-                       # Set $user variable if there is a valid user requested
-                       if ( $params['user'] != "" ) {
-                               $user = User::newFromName ( $params['user'] ) ;
-                               if ( 0 != $user->getID() ) {
-                                       $params['user'] = $user ;
-                               } else {
-                                       unset ( $params['user'] ) ;
-                               }
-                               unset ( $user ) ;
-                       } else {
-                               unset ( $params['user'] ) ;
-                       }
-
-                       # Ths following depends on the user above, so don't move it upwards!
-                       $params['timestamp'] = $this->getTimeStamp ( $params ) ;
-                       
-                       $images = $this->getImages ( $params ) ;
-                       
-                       if ( $params['gallery'] ) {
-                               $between = $this->makeGallery ( $images , $params ) ;
-                       } else {
-                               $between = $this->makeList ( $images , $params ) ;
-                       }
-                       
-                       # This is strange
-                       $params['therearebefore'] = ( $params['firsttimestamp'] != $params['timestamp'] ) ;
-                       
-                       $noi = count ( $images ) > $params['limit'] ? $params['limit'] : count ( $images ) ;
-                       
-                       $out = '<p>' . wfMsgForContent ( "imagelisttext" , $noi , wfMsg('bydate') ) . '</p>' ;
-                       $out .= $this->matchform ( $params ) ;
-                       $out .= $this->options ( $params ) ;
-                       $out .= $this->limits ( $params ) ;
-                       $out .= $this->prevnext ( $params ) ;
-                       $out .= $between ;
-                       $out .= $this->prevnext ( $params ) ;
-                       
-                       
-                       $this->setHeaders();
-                       $wgOut->addHtml( $out );
-               }
-       } # End of class
-       
-       $sp = new SpecialFilelist ;
-       $sp->execute( $par , $specialPage , $force_gallery) ;
-
-}
index 3bfa0f7..6438e9c 100644 (file)
@@ -5,22 +5,10 @@
  * @subpackage SpecialPage
  */
 
-
-require_once ( "SpecialFilelist.php" ) ;
-
-function wfSpecialImagelist( $par, $specialPage ) {
-       wfSpecialFilelist ( $par , $specialPage , false ) ;
-}
-
-# _____________________________________________
-# The rest of this file is obsolete
-# _____________________________________________
-
-
 /**
  *
  */
-function OLD_wfSpecialImagelist() {
+function wfSpecialImagelist() {
        global $wgUser, $wgOut, $wgLang, $wgRequest, $wgMiserMode;
 
        $sort = $wgRequest->getVal( 'sort' );
index 83115f0..98c6c36 100644 (file)
@@ -5,24 +5,13 @@
  * @subpackage SpecialPage
  */
 
-require_once ( "SpecialFilelist.php" ) ;
-
-function wfSpecialNewimages( $par, $specialPage ) {
-       wfSpecialFilelist ( $par , $specialPage , true ) ;
-}
-
-# _____________________________________________
-# The rest of this file is obsolete
-# _____________________________________________
-
-
 /** */
 require_once( 'ImageGallery.php' );
 
 /**
  *
  */
-function OLD_wfSpecialNewimages( $par, $specialPage ) {
+function wfSpecialNewimages( $par, $specialPage ) {
        global $wgUser, $wgOut, $wgLang, $wgContLang, $wgRequest,
               $wgGroupPermissions;
 
index 5c5fa77..f9a5ed9 100644 (file)
@@ -77,8 +77,7 @@ $wgSpecialPages = array(
        'Userrights'    => new SpecialPage( 'Userrights', 'userrights' ),
        'MIMEsearch'    => new SpecialPage( 'MIMEsearch' ),
        'Unwatchedpages' => new SpecialPage( 'Unwatchedpages', 'unwatchedpages' ),
-       'Listredirects' => new SpecialPage( 'Listredirects' ),
-       'Filelist' => new SpecialPage( 'Filelist' )
+       'Listredirects' => new SpecialPage( 'Listredirects' )
 );
 
 if( !$wgDisableCounters ) {