Feature-Request #816659,#668443: No (next 50) link if there is no next page
authorJens Frank <jeluf@users.mediawiki.org>
Tue, 20 Jan 2004 19:02:12 +0000 (19:02 +0000)
committerJens Frank <jeluf@users.mediawiki.org>
Tue, 20 Jan 2004 19:02:12 +0000 (19:02 +0000)
Implemented for:
   PageHistory,
   QueryPage and all derived from it,
   SpecialContributions

includes/GlobalFunctions.php
includes/PageHistory.php
includes/QueryPage.php
includes/SpecialContributions.php

index b0a0fd1..afddeaa 100644 (file)
@@ -583,7 +583,7 @@ function wfShowingResultsNum( $offset, $limit, $num )
        return wfMsg( "showingresultsnum", $limit, $offset+1, $num );
 }
 
-function wfViewPrevNext( $offset, $limit, $link, $query = "" )
+function wfViewPrevNext( $offset, $limit, $link, $query = "", $atend = false )
 {
        global $wgUser;
        $prev = wfMsg( "prevn", $limit );
@@ -602,7 +602,11 @@ function wfViewPrevNext( $offset, $limit, $link, $query = "" )
        $q = "limit={$limit}&offset={$no}";
        if ( "" != $query ) { $q .= "&{$query}"; }
 
-       $nlink = "<a href=\"" . wfLocalUrlE( $link, $q ) . "\">{$next}</a>";
+       if ( $atend ) {
+               $nlink = $next;
+       } else {
+               $nlink = "<a href=\"" . wfLocalUrlE( $link, $q ) . "\">{$next}</a>";
+       }
        $nums = wfNumLink( $offset, 20, $link , $query ) . " | " .
          wfNumLink( $offset, 50, $link, $query ) . " | " .
          wfNumLink( $offset, 100, $link, $query ) . " | " .
index cca1d66..df5a580 100644 (file)
@@ -69,7 +69,7 @@ class PageHistory {
                $numbar = wfViewPrevNext(
                        $offset, $limit,
                        $this->mTitle->getPrefixedText(),
-                       "action=history" );
+                       "action=history", $atend );
                $s = $numbar;
                $s .= $this->beginHistoryList();
 
index 50f34c3..cbb9e7e 100644 (file)
@@ -60,7 +60,7 @@ class QueryPage {
            }
        }
 
-       $sql = $this->getSQL( $offset, $limit );
+       $sql = $this->getSQL( $offset, $limit+1 );
 
        $res = wfQuery( $sql, DB_READ, $fname );
 
@@ -69,13 +69,16 @@ class QueryPage {
        $top = wfShowingResults( $offset, $limit );
        $wgOut->addHTML( "<p>{$top}\n" );
 
-       $sl = wfViewPrevNext( $offset, $limit, $wgLang->specialPage( $sname ) );
+       $sl = wfViewPrevNext( $offset, $limit, $wgLang->specialPage( $sname ), "",
+                               wfNumRows( $res ) < ($limit+1) );
        $wgOut->addHTML( "<br>{$sl}\n" );
 
        $s = "<ol start=" . ( $offset + 1 ) . ">";
-       while ( $obj = wfFetchObject( $res ) ) {
+       $i = 0;
+       while ( ($i<$limit) && ($obj = wfFetchObject( $res )) ) {
            $format = $this->formatResult( $sk, $obj );
            $s .= "<li>{$format}</li>\n";
+           $i++;
        }
        wfFreeResult( $res );
        $s .= "</ol>";
index b5016de..ca206c7 100644 (file)
@@ -17,6 +17,7 @@ function wfSpecialContributions( $par = "" )
        }
        list( $limit, $offset ) = wfCheckLimits( 50, "" );
        $offlimit = $limit + $offset;
+       $querylimit = $offlimit + 1;
        $hideminor = ($hideminor ? 1 : 0);
 
        $nt = Title::newFromURL( $target );
@@ -50,37 +51,39 @@ function wfSpecialContributions( $par = "" )
                  "&offset={$offset}&limit={$limit}&hideminor=1" );
        }
 
-       $top = wfShowingResults( $offset, $limit );
-       $wgOut->addHTML( "<p>{$top}\n" );
-
-       $sl = wfViewPrevNext( $offset, $limit,
-         $wgLang->specialpage( "Contributions" ), "hideminor={$hideminor}&target=" . wfUrlEncode( $target ) );
-
-        $shm = wfMsg( "showhideminor", $mlink );
-       $wgOut->addHTML( "<br>{$sl} ($shm) \n");
-       
        if ( 0 == $id ) {
                $sql = "SELECT cur_namespace,cur_title,cur_timestamp,cur_comment,cur_minor_edit FROM cur " .
                  "WHERE cur_user_text='" . wfStrencode( $nt->getText() ) . "' {$cmq} " .
-                 "ORDER BY inverse_timestamp LIMIT {$offlimit}";
+                 "ORDER BY inverse_timestamp LIMIT {$querylimit}";
                $res1 = wfQuery( $sql, DB_READ, $fname );
 
                $sql = "SELECT old_namespace,old_title,old_timestamp,old_comment,old_minor_edit FROM old " .
                  "WHERE old_user_text='" . wfStrencode( $nt->getText() ) . "' {$omq} " .
-                 "ORDER BY inverse_timestamp LIMIT {$offlimit}";
+                 "ORDER BY inverse_timestamp LIMIT {$querylimit}";
                $res2 = wfQuery( $sql, DB_READ, $fname );
        } else {
                $sql = "SELECT cur_namespace,cur_title,cur_timestamp,cur_comment,cur_minor_edit FROM cur " .
-                 "WHERE cur_user={$id} {$cmq} ORDER BY inverse_timestamp LIMIT {$offlimit}";
+                 "WHERE cur_user={$id} {$cmq} ORDER BY inverse_timestamp LIMIT {$querylimit}";
                $res1 = wfQuery( $sql, DB_READ, $fname );
 
                $sql = "SELECT old_namespace,old_title,old_timestamp,old_comment,old_minor_edit FROM old " .
-                 "WHERE old_user={$id} {$omq} ORDER BY inverse_timestamp LIMIT {$offlimit}";
+                 "WHERE old_user={$id} {$omq} ORDER BY inverse_timestamp LIMIT {$querylimit}";
                $res2 = wfQuery( $sql, DB_READ, $fname );
        }
        $nCur = wfNumRows( $res1 );
        $nOld = wfNumRows( $res2 );
 
+       $top = wfShowingResults( $offset, $limit );
+       $wgOut->addHTML( "<p>{$top}\n" );
+
+       $sl = wfViewPrevNext( $offset, $limit,
+         $wgLang->specialpage( "Contributions" ),
+         "hideminor={$hideminor}&target=" . wfUrlEncode( $target ),
+         ($nCur + $nOld) <= $offlimit);
+
+        $shm = wfMsg( "showhideminor", $mlink );
+       $wgOut->addHTML( "<br>{$sl} ($shm) \n");
+       
 
        if ( 0 == $nCur && 0 == $nOld ) {
                $wgOut->addHTML( "\n<p>" . wfMsg( "nocontribs" ) . "</p>\n" );