From b9b85843572bf283f48285001e276ba7e61b63f6 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sun, 22 Feb 2009 13:37:51 +0100 Subject: updated to MediaWiki 1.14.0 --- includes/specials/SpecialNewimages.php | 127 +++++++++++++++------------------ 1 file changed, 59 insertions(+), 68 deletions(-) (limited to 'includes/specials/SpecialNewimages.php') diff --git a/includes/specials/SpecialNewimages.php b/includes/specials/SpecialNewimages.php index e57f6fc1..575e37a7 100644 --- a/includes/specials/SpecialNewimages.php +++ b/includes/specials/SpecialNewimages.php @@ -5,66 +5,56 @@ * FIXME: this code is crap, should use Pager and Database::select(). */ -/** - * - */ function wfSpecialNewimages( $par, $specialPage ) { - global $wgUser, $wgOut, $wgLang, $wgRequest, $wgGroupPermissions, $wgMiserMode; + global $wgUser, $wgOut, $wgLang, $wgRequest, $wgMiserMode; $wpIlMatch = $wgRequest->getText( 'wpIlMatch' ); $dbr = wfGetDB( DB_SLAVE ); $sk = $wgUser->getSkin(); $shownav = !$specialPage->including(); - $hidebots = $wgRequest->getBool('hidebots',1); + $hidebots = $wgRequest->getBool( 'hidebots' , 1 ); $hidebotsql = ''; - if ($hidebots) { - - /** Make a list of group names which have the 'bot' flag - set. - */ - $botconds=array(); - foreach ($wgGroupPermissions as $groupname=>$perms) { - if(array_key_exists('bot',$perms) && $perms['bot']) { - $botconds[]="ug_group='$groupname'"; - } + if ( $hidebots ) { + # Make a list of group names which have the 'bot' flag set. + $botconds = array(); + foreach ( User::getGroupsWithPermission('bot') as $groupname ) { + $botconds[] = 'ug_group = ' . $dbr->addQuotes( $groupname ); } - /* If not bot groups, do not set $hidebotsql */ - if ($botconds) { - $isbotmember=$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 = $dbr->tableName('user_groups'); - $hidebotsql = " LEFT OUTER JOIN $ug ON img_user=ug_user AND ($isbotmember)"; + # If not bot groups, do not set $hidebotsql + if ( $botconds ) { + $isbotmember = $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 mem- + # ber of a group which has the 'bot' permission set. + $ug = $dbr->tableName( 'user_groups' ); + $hidebotsql = " LEFT JOIN $ug ON img_user=ug_user AND ($isbotmember)"; } } - $image = $dbr->tableName('image'); + $image = $dbr->tableName( 'image' ); - $sql="SELECT img_timestamp from $image"; + $sql = "SELECT img_timestamp from $image"; if ($hidebotsql) { $sql .= "$hidebotsql WHERE ug_group IS NULL"; } - $sql.=' ORDER BY img_timestamp DESC LIMIT 1'; - $res = $dbr->query($sql, 'wfSpecialNewImages'); - $row = $dbr->fetchRow($res); - if($row!==false) { - $ts=$row[0]; + $sql .= ' ORDER BY img_timestamp DESC LIMIT 1'; + $res = $dbr->query( $sql, __FUNCTION__ ); + $row = $dbr->fetchRow( $res ); + if( $row !== false ) { + $ts = $row[0]; } else { - $ts=false; + $ts = false; } - $dbr->freeResult($res); - $sql=''; + $dbr->freeResult( $res ); + $sql = ''; - /** If we were clever, we'd use this to cache. */ - $latestTimestamp = wfTimestamp( TS_MW, $ts); + # If we were clever, we'd use this to cache. + $latestTimestamp = wfTimestamp( TS_MW, $ts ); - /** Hardcode this for now. */ + # Hardcode this for now. $limit = 48; if ( $parval = intval( $par ) ) { @@ -77,10 +67,8 @@ function wfSpecialNewimages( $par, $specialPage ) { $searchpar = ''; if ( $wpIlMatch != '' && !$wgMiserMode) { $nt = Title::newFromUrl( $wpIlMatch ); - if($nt ) { - $m = $dbr->strencode( strtolower( $nt->getDBkey() ) ); - $m = str_replace( '%', "\\%", $m ); - $m = str_replace( '_', "\\_", $m ); + if( $nt ) { + $m = $dbr->escapeLike( strtolower( $nt->getDBkey() ) ); $where[] = "LOWER(img_name) LIKE '%{$m}%'"; $searchpar = '&wpIlMatch=' . urlencode( $wpIlMatch ); } @@ -97,16 +85,16 @@ function wfSpecialNewimages( $par, $specialPage ) { $sql='SELECT img_size, img_name, img_user, img_user_text,'. "img_description,img_timestamp FROM $image"; - if($hidebotsql) { + if( $hidebotsql ) { $sql .= $hidebotsql; - $where[]='ug_group IS NULL'; + $where[] = 'ug_group IS NULL'; } - if(count($where)) { - $sql.=' WHERE '.$dbr->makeList($where, LIST_AND); + if( count( $where ) ) { + $sql .= ' WHERE ' . $dbr->makeList( $where, LIST_AND ); } $sql.=' ORDER BY img_timestamp '. ( $invertSort ? '' : ' DESC' ); - $sql.=' LIMIT '.($limit+1); - $res = $dbr->query($sql, 'wfSpecialNewImages'); + $sql.=' LIMIT ' . ( $limit + 1 ); + $res = $dbr->query( $sql, __FUNCTION__ ); /** * We have to flip things around to get the last N after a certain date @@ -126,7 +114,8 @@ function wfSpecialNewimages( $par, $specialPage ) { $lastTimestamp = null; $shownImages = 0; foreach( $images as $s ) { - if( ++$shownImages > $limit ) { + $shownImages++; + if( $shownImages > $limit ) { # One extra just to test for whether to show a page link; # don't actually show it. break; @@ -135,7 +124,7 @@ function wfSpecialNewimages( $par, $specialPage ) { $name = $s->img_name; $ut = $s->img_user_text; - $nt = Title::newFromText( $name, NS_IMAGE ); + $nt = Title::newFromText( $name, NS_FILE ); $ul = $sk->makeLinkObj( Title::makeTitle( NS_USER, $ut ), $ut ); $gallery->add( $nt, "$ul
\n".$wgLang->timeanddate( $s->img_timestamp, true )."
\n" ); @@ -147,33 +136,35 @@ function wfSpecialNewimages( $par, $specialPage ) { $lastTimestamp = $timestamp; } + $titleObj = SpecialPage::getTitleFor( 'Newimages' ); + $action = $titleObj->getLocalURL( $hidebots ? '' : 'hidebots=0' ); + if ( $shownav && !$wgMiserMode ) { + $wgOut->addHTML( + Xml::openElement( 'form', array( 'action' => $action, 'method' => 'post', 'id' => 'imagesearch' ) ) . + Xml::fieldset( wfMsg( 'newimages-legend' ) ) . + Xml::inputLabel( wfMsg( 'newimages-label' ), 'wpIlMatch', 'wpIlMatch', 20, $wpIlMatch ) . ' ' . + Xml::submitButton( wfMsg( 'ilsubmit' ), array( 'name' => 'wpIlSubmit' ) ) . + Xml::closeElement( 'fieldset' ) . + Xml::closeElement( 'form' ) + ); + } + $bydate = wfMsg( 'bydate' ); $lt = $wgLang->formatNum( min( $shownImages, $limit ) ); - if ($shownav) { + if ( $shownav ) { $text = wfMsgExt( 'imagelisttext', array('parse'), $lt, $bydate ); $wgOut->addHTML( $text . "\n" ); } - $sub = wfMsg( 'ilsubmit' ); - $titleObj = SpecialPage::getTitleFor( 'Newimages' ); - $action = $titleObj->escapeLocalURL( $hidebots ? '' : 'hidebots=0' ); - if ($shownav && !$wgMiserMode) { - $wgOut->addHTML( "
" . - Xml::input( 'wpIlMatch', 20, $wpIlMatch ) . ' ' . - Xml::submitButton( $sub, array( 'name' => 'wpIlSubmit' ) ) . - "
" ); - } - /** * Paging controls... */ # If we change bot visibility, this needs to be carried along. - if(!$hidebots) { - $botpar='&hidebots=0'; + if( !$hidebots ) { + $botpar = '&hidebots=0'; } else { - $botpar=''; + $botpar = ''; } $now = wfTimestampNow(); $d = $wgLang->date( $now, true ); @@ -186,12 +177,12 @@ function wfSpecialNewimages( $par, $specialPage ) { $opts = array( 'parsemag', 'escapenoentities' ); - $prevLink = wfMsgExt( 'prevn', $opts, $wgLang->formatNum( $limit ) ); + $prevLink = wfMsgExt( 'pager-newer-n', $opts, $wgLang->formatNum( $limit ) ); if( $firstTimestamp && $firstTimestamp != $latestTimestamp ) { $prevLink = $sk->makeKnownLinkObj( $titleObj, $prevLink, 'from=' . $firstTimestamp . $botpar . $searchpar ); } - $nextLink = wfMsgExt( 'nextn', $opts, $wgLang->formatNum( $limit ) ); + $nextLink = wfMsgExt( 'pager-older-n', $opts, $wgLang->formatNum( $limit ) ); if( $shownImages > $limit && $lastTimestamp ) { $nextLink = $sk->makeKnownLinkObj( $titleObj, $nextLink, 'until=' . $lastTimestamp.$botpar.$searchpar ); } -- cgit v1.2.2