From 57cec6f4dc6c35840008163e4206b31a513d03d7 Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Fri, 30 Jan 2004 12:47:19 +0000 Subject: [PATCH] More hide/show links in RC --- includes/GlobalFunctions.php | 21 ++++++++++++++++ includes/SpecialRecentchanges.php | 41 +++++++++++++++++-------------- languages/Language.php | 4 +-- 3 files changed, 46 insertions(+), 20 deletions(-) diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php index afddeaa25c..782fb7b575 100644 --- a/includes/GlobalFunctions.php +++ b/includes/GlobalFunctions.php @@ -718,4 +718,25 @@ function &wfSetRef( &$dest, $source ) return $temp; } +# This function takes two arrays as input, and returns a CGI-style string, e.g. +# "days=7&limit=100". Options in the first array override options in the second. +# Options set to "" will not be output. +function wfArrayToCGI( $array1, $array2 = NULL ) +{ + if ( !is_null( $array2 ) ) { + $array1 = $array1 + $array2; + } + + $cgi = ""; + foreach ( $array1 as $key => $value ) { + if ( "" !== $value ) { + if ( "" != $cgi ) { + $cgi .= "&"; + } + $cgi .= "{$key}={$value}"; + } + } + return $cgi; +} + ?> diff --git a/includes/SpecialRecentchanges.php b/includes/SpecialRecentchanges.php index abd7d45c3d..e8b763dcf6 100644 --- a/includes/SpecialRecentchanges.php +++ b/includes/SpecialRecentchanges.php @@ -51,29 +51,17 @@ 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"; - $mltitle = wfMsg( "show" ); - $mlhide = 0; } else { $hidem = ""; - $mltitle = wfMsg( "hide" ); - $mlhide = 1; - } - - if ( isset( $from ) ) { - $mlparams = "from={$from}&hideminor={$mlhide}"; - } else { - $mlparams = "days={$days}&limit={$limit}&hideminor={$mlhide}"; } - - $mlink = $sk->makeKnownLink( $wgLang->specialPage( "Recentchanges" ), - $mltitle, $mlparams ); if ( !isset( $hidebots ) ) { $hidebots = 1; @@ -81,10 +69,25 @@ 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 recentchanges.*" . ($uid ? ",wl_user" : "") . " FROM recentchanges " . @@ -106,11 +109,11 @@ function wfSpecialRecentchanges( $par ) } $wgOut->addHTML( "\n
\n{$note}\n
" ); - $note = rcDayLimitLinks( $days, $limit, "Recentchanges", "hideminor={$hideminor}", false, $mlink ); + $note = rcDayLimitLinks( $days, $limit, "Recentchanges", $hideparams, false, $minorLink, $botLink, $liuLink ); $note .= "
\n" . wfMsg( "rclistfrom", $sk->makeKnownLink( $wgLang->specialPage( "Recentchanges" ), - $wgLang->timeanddate( $now, true ), "hideminor={$hideminor}&from=$now" ) ); + $wgLang->timeanddate( $now, true ), "{$hideparams}&from=$now" ) ); $wgOut->addHTML( "{$note}\n" ); @@ -152,7 +155,8 @@ function rcDaysLink( $lim, $d, $page="Recentchanges", $more="" ) return $s; } -function rcDayLimitLinks( $days, $limit, $page="Recentchanges", $more="", $doall = false, $mlink = "" ) +function rcDayLimitLinks( $days, $limit, $page="Recentchanges", $more="", $doall = false, $minorLink = "", + $botLink = "", $liuLink = "" ) { if ($more != "") $more .= "&"; $cl = rcCountLink( 50, $days, $page, $more ) . " | " . @@ -166,11 +170,12 @@ function rcDayLimitLinks( $days, $limit, $page="Recentchanges", $more="", $doall rcDaysLink( $limit, 14, $page, $more ) . " | " . rcDaysLink( $limit, 30, $page, $more ) . ( $doall ? ( " | " . rcDaysLink( $limit, 0, $page, $more ) ) : "" ); - $shm = wfMsg( "showhideminor", $mlink ); + $shm = wfMsg( "showhideminor", $minorLink, $botLink, $liuLink ); $note = wfMsg( "rclinks", $cl, $dl, $shm ); return $note; } +# Obsolete? Isn't called from anywhere and $mlink isn't defined function rcLimitLinks( $page="Recentchanges", $more="", $doall = false ) { if ($more != "") $more .= "&"; diff --git a/languages/Language.php b/languages/Language.php index 8fa96b14cf..d74f8ab5f2 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -840,8 +840,8 @@ from server time (UTC).", "rclistfrom" => "Show new changes starting from $1", # "rclinks" => "Show last $1 changes in last $2 hours / last $3 days", # "rclinks" => "Show last $1 changes in last $2 days.", -"showhideminor" => "$1 minor edits", -"rclinks" => "Show last $1 changes in last $2 days; $3", +"showhideminor" => "$1 minor edits | $2 bots | $3 logged in users ", +"rclinks" => "Show last $1 changes in last $2 days
$3", "rchide" => "in $4 form; $1 minor edits; $2 secondary namespaces; $3 multiple edits.", "rcliu" => "; $1 edits from logged in users", "diff" => "diff", -- 2.20.1