X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSpecialRecentchanges.php;h=e8b763dcf63c7821f79db94c7a065858302030be;hb=ef98e54686112443e4a7799407b41fa33bc72fbc;hp=c0fa2ca88dbaee1c66bdeb9f91aae42ad9e0908a;hpb=0a164de2ba75fdbadb235403147e14f5ee73868b;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SpecialRecentchanges.php b/includes/SpecialRecentchanges.php index c0fa2ca88d..e8b763dcf6 100644 --- a/includes/SpecialRecentchanges.php +++ b/includes/SpecialRecentchanges.php @@ -2,8 +2,8 @@ function wfSpecialRecentchanges( $par ) { - global $wgUser, $wgOut, $wgLang, $wgTitle; - global $days, $hideminor, $from, $hidebots; # From query string + global $wgUser, $wgOut, $wgLang, $wgTitle, $wgMemc, $wgDBname; + global $days, $hideminor, $from, $hidebots, $hideliu; # From query string $fname = "wfSpecialRecentchanges"; if( $par ) { @@ -12,12 +12,16 @@ function wfSpecialRecentchanges( $par ) if( in_array( "bots", $bits ) ) $hidebots = 0; if( in_array( "hideminor", $bits ) ) $hideminor = 1; if( in_array( "minor", $bits ) ) $hideminor = 0; + if( in_array( "hideliu", $bits) ) $hideliu = 1; } $sql = "SELECT MAX(rc_timestamp) AS lastmod FROM recentchanges"; $res = wfQuery( $sql, DB_READ, $fname ); $s = wfFetchObject( $res ); - $wgOut->checkLastModified( $s->lastmod ); + if( $wgOut->checkLastModified( $s->lastmod ) ){ + # Client cache fresh and headers sent, nothing more to do. + return; + } $rctext = wfMsg( "recentchangestext" ); @@ -37,7 +41,9 @@ function wfSpecialRecentchanges( $par ) $days = (int)$days; list( $limit, $offset ) = wfCheckLimits( 100, "rclimit" ); $now = wfTimestampNow(); - $cutoff = wfUnix2Timestamp( time() - ( $days * 86400 ) ); + $cutoff_unixtime = time() - ( $days * 86400 ); + $cutoff_unixtime = $cutoff_unixtime - ($cutoff_unixtime % 86400); + $cutoff = wfUnix2Timestamp( $cutoff_unixtime ); if(preg_match('/^[0-9]{14}$/', $from) and $from > $cutoff) { $cutoff = $from; } else { @@ -45,18 +51,16 @@ function wfSpecialRecentchanges( $par ) } $sk = $wgUser->getSkin(); - + $showhide = array( wfMsg( "show" ), wfMsg( "hide" )); + if ( ! isset( $hideminor ) ) { $hideminor = $wgUser->getOption( "hideminor" ); } + $hideminor = ($hideminor ? 1 : 0); if ( $hideminor ) { $hidem = "AND rc_minor=0"; - $mlink = $sk->makeKnownLink( $wgLang->specialPage( "Recentchanges" ), - WfMsg( "show" ), "days={$days}&limit={$limit}&hideminor=0" ); } else { $hidem = ""; - $mlink = $sk->makeKnownLink( $wgLang->specialPage( "Recentchanges" ), - WfMsg( "hide" ), "days={$days}&limit={$limit}&hideminor=1" ); } if ( !isset( $hidebots ) ) { @@ -65,14 +69,37 @@ function wfSpecialRecentchanges( $par ) if( $hidebots ) { $hidem .= " AND rc_bot=0"; } + $hidebots = ($hidebots ? 1 : 0); + + if ( !isset( $hideliu ) ) { + $hideliu = 0; + } + if ( $hideliu ) { + $hidem .= " AND rc_user=0"; + } + $hideliu = ($hideliu ? 1 : 0); + #$hideparams = "hideminor={$hideminor}&hideliu={$hideliu}&hidebots={$hidebots}"; + $urlparams = array( "hideminor" => $hideminor, "hideliu" => $hideliu, "hidebots" => $hidebots ); + $hideparams = wfArrayToCGI( $urlparams ); + + $minorLink = $sk->makeKnownLink( $wgLang->specialPage( "Recentchanges" ), + $showhide[1-$hideminor], wfArrayToCGI( array( "hideminor" => 1-$hideminor ), $urlparams ) ); + $botLink = $sk->makeKnownLink( $wgLang->specialPage( "Recentchanges" ), + $showhide[1-$hidebots], wfArrayToCGI( array( "hidebots" => 1-$hidebots ), $urlparams ) ); + $liuLink = $sk->makeKnownLink( $wgLang->specialPage( "Recentchanges" ), + $showhide[1-$hideliu], wfArrayToCGI( array( "hideliu" => 1-$hideliu ), $urlparams ) ); $uid = $wgUser->getID(); - $sql2 = "SELECT rc_cur_id,rc_namespace,rc_title,rc_user,rc_new," . - "rc_comment,rc_user_text,rc_timestamp,rc_minor,rc_this_oldid,rc_last_oldid,rc_bot" . ($uid ? ",wl_user" : "") . " FROM recentchanges " . + $sql2 = "SELECT recentchanges.*" . ($uid ? ",wl_user" : "") . " FROM recentchanges " . ($uid ? "LEFT OUTER JOIN watchlist ON wl_user={$uid} AND wl_title=rc_title AND wl_namespace=rc_namespace & 65534 " : "") . "WHERE rc_timestamp > '{$cutoff}' {$hidem} " . "ORDER BY rc_timestamp DESC LIMIT {$limit}"; + $res = wfQuery( $sql2, DB_READ, $fname ); + $rows = array(); + while( $row = wfFetchObject( $res ) ){ + $rows[] = $row; + } if(isset($from)) { $note = wfMsg( "rcnotefrom", $limit, @@ -82,38 +109,23 @@ function wfSpecialRecentchanges( $par ) } $wgOut->addHTML( "\n