X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSpecialNewpages.php;h=123ab1db1b7de6055fafdf537d8320311cca52ba;hb=37b73a88820fda845e73f6a03f7406bad1e1d3b6;hp=47e09d621219357132348519c50728a797c272cb;hpb=d82c14fb4fbac288b42ca5918b0a72f33ecb1e69;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SpecialNewpages.php b/includes/SpecialNewpages.php index 47e09d6212..123ab1db1b 100644 --- a/includes/SpecialNewpages.php +++ b/includes/SpecialNewpages.php @@ -1,54 +1,107 @@ -getID() != 0 && + ( $wgUser->isAllowed('patrol') || !$wgOnlySysopsCanPatrol ) ) ? 1 : 0; + $dbr =& wfGetDB( DB_SLAVE ); + extract( $dbr->tableNames( 'recentchanges', 'cur' ) ); + + return + "SELECT 'Newpages' as type, + rc_namespace AS namespace, + rc_title AS title, + rc_cur_id AS value, + rc_user AS user, + rc_user_text AS user_text, + rc_comment as comment, + rc_timestamp AS timestamp, + '{$usepatrol}' as usepatrol, + rc_patrolled AS patrolled, + rc_id AS rcid, + length(cur_text) as length, + cur_text as text + FROM $recentchanges,$cur + WHERE rc_cur_id=cur_id AND rc_new=1 + AND rc_namespace=0 AND cur_is_redirect=0"; + } + + function formatResult( $skin, $result ) { + global $wgLang, $wgContLang, $wgUser, $wgOnlySysopsCanPatrol, $wgUseRCPatrol; + $u = $result->user; + $ut = $result->user_text; + + $length = wfMsg( "nbytes", $wgLang->formatNum( $result->length ) ); + $c = $skin->formatComment($result->comment ); + + if ( $u == 0 ) { # not by a logged-in user + $ul = $ut; + } + else { + $ul = $skin->makeLink( $wgContLang->getNsText(NS_USER) . ":{$ut}", $ut ); + } + + $d = $wgLang->timeanddate( $result->timestamp, true ); + + # Since there is no diff link, we need to give users a way to + # mark the article as patrolled if it isn't already + if ( $wgUseRCPatrol && !is_null ( $result->usepatrol ) && $result->usepatrol && + $result->patrolled == 0 && $wgUser->getID() != 0 && + ( $wgUser->isAllowed('patrol') || !$wgOnlySysopsCanPatrol ) ) + $link = $skin->makeKnownLink( $result->title, '', "rcid={$result->rcid}" ); + else + $link = $skin->makeKnownLink( $result->title, '' ); + + $s = "{$d} {$link} ({$length}) . . {$ul}"; + + if ( "" != $c && "*" != $c ) { + $s .= " ({$c})"; + } + + return $s; + } +} + +/** + * constructor + */ function wfSpecialNewpages() { - global $wgUser, $wgOut, $wgLang, $wgTitle; - global $limit, $offset; # From query string - $fname = "wfSpecialNewpages"; + global $wgRequest; + list( $limit, $offset ) = wfCheckLimits(); - if ( ! $limit ) { - $limit = $wgUser->getOption( "rclimit" ); - if ( ! $limit ) { $limit = 50; } - } - if ( ! $offset ) { $offset = 0; } - -# $sql = "SELECT cur_title,cur_user,cur_user_text,cur_comment," . -# "cur_timestamp FROM cur " . -# "WHERE cur_is_new=1 AND cur_namespace=0 AND cur_is_redirect=0 " . -# " ORDER BY cur_timestamp DESC LIMIT {$offset}, {$limit}"; - $sql = "SELECT rc_title AS cur_title,rc_user AS cur_user,rc_user_text AS cur_user_text,cur_comment," . - "rc_timestamp AS cur_timestamp FROM recentchanges,cur " . - "WHERE rc_cur_id=cur_id AND rc_new=1 AND rc_namespace=0 AND cur_text NOT LIKE '#REDIRECT%' " . - " ORDER BY rc_timestamp DESC LIMIT {$offset}, {$limit}"; - $res = wfQuery( $sql, $fname ); - - $top = wfShowingResults( $offset, $limit ); - $wgOut->addHTML( "

{$top}\n" ); - - $sl = wfViewPrevNext( $offset, $limit, - $wgLang->specialPage( "Newpages" ) ); - $wgOut->addHTML( "
{$sl}\n" ); - - $sk = $wgUser->getSkin(); - $s = "

    "; - while ( $obj = wfFetchObject( $res ) ) { - $u = $obj->cur_user; - $ut = $obj->cur_user_text; - $c = wfEscapeHTML( $obj->cur_comment ); - if ( 0 == $u ) { $ul = $ut; } - else { $ul = $sk->makeLink( $wgLang->getNsText(2).":{$ut}", $ut ); } - - $d = $wgLang->timeanddate( $obj->cur_timestamp, true ); - $link = $sk->makeKnownLink( $obj->cur_title, "" ); - $s .= "
  1. {$d} {$link} . . {$ul}"; - - if ( "" != $c && "*" != $c ) { $s .= " ({$c})"; } - $s .= "
  2. \n"; + $npp = new NewPagesPage(); + + if( !$npp->doFeed( $wgRequest->getVal( 'feed' ) ) ) { + $npp->doQuery( $offset, $limit ); } - wfFreeResult( $res ); - $s .= "
"; - $wgOut->addHTML( $s ); - $wgOut->addHTML( "

{$sl}\n" ); } ?>