X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FQueryPage.php;h=4ac5aa9d54d69ba2512e843b774cb4e26762e93d;hb=f964df3f43dd71b4a0fb494b20eb83babcc5e00d;hp=7257ddb057c5540ca722414699681908a2165d94;hpb=6026abb11f38ba28378d37fb44a1d0f18304dbd5;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/QueryPage.php b/includes/QueryPage.php index 7257ddb057..4ac5aa9d54 100644 --- a/includes/QueryPage.php +++ b/includes/QueryPage.php @@ -79,6 +79,7 @@ class QueryPage { * Formats the results of the query for display. The skin is the current * skin; you can use it for making links. The result is a single row of * result data. You should be able to grab SQL results off of it. + * If the function return "false", the line output will be skipped. */ function formatResult( $skin, $result ) { return ''; @@ -90,6 +91,16 @@ class QueryPage { function getPageHeader( ) { return ''; } + + /** + * Some special pages (for example SpecialListusers) might not return the + * current object formatted, but return the previous one instead. + * Setting this to return true, will call one more time wfFormatResult to + * be sure that the very last result is formatted and shown. + */ + function tryLastResult( ) { + return false; + } /** * This is the actual workhorse. It does everything needed to make a @@ -180,17 +191,34 @@ class QueryPage { $sl = wfViewPrevNext( $offset, $limit , $wgContLang->specialPage( $sname ), "" ,$atend ); $wgOut->addHTML( "
{$sl}

\n" ); - $s = "
    "; - # Only read at most $num rows, because $res may contain the whole 1000 - for ( $i = 0; $i < $num && $obj = $dbr->fetchObject( $res ); $i++ ) { - $format = $this->formatResult( $sk, $obj ); - $attr = ( isset ( $obj->usepatrol ) && $obj->usepatrol && - $obj->patrolled == 0 ) ? ' class="not_patrolled"' : ''; - $s .= "{$format}\n"; + if ( $num > 0 ) { + $s = "
      "; + + # Only read at most $num rows, because $res may contain the whole 1000 + for ( $i = 0; $i < $num && $obj = $dbr->fetchObject( $res ); $i++ ) { + $format = $this->formatResult( $sk, $obj ); + if ( $format ) { + $attr = ( isset ( $obj->usepatrol ) && $obj->usepatrol && + $obj->patrolled == 0 ) ? ' class="not-patrolled"' : ''; + $s .= "{$format}\n"; + } + } + + if($this->tryLastResult()) { + // flush the very last result + $obj = null; + $format = $this->formatResult( $sk, $obj ); + if( $format ) { + $attr = ( isset ( $obj->usepatrol ) && $obj->usepatrol && + $obj->patrolled == 0 ) ? ' class="not-patrolled"' : ''; + $s .= "{$format}\n"; + } + } + + $dbr->freeResult( $res ); + $s .= '
    '; + $wgOut->addHTML( $s ); } - $dbr->freeResult( $res ); - $s .= '
'; - $wgOut->addHTML( $s ); $wgOut->addHTML( "

{$sl}

\n" ); }