Migrated as a QueryPage extension
authorAntoine Musso <hashar@users.mediawiki.org>
Sat, 12 Jun 2004 20:14:55 +0000 (20:14 +0000)
committerAntoine Musso <hashar@users.mediawiki.org>
Sat, 12 Jun 2004 20:14:55 +0000 (20:14 +0000)
* isExpensive : false

includes/SpecialListusers.php

index 756e92e..ad11a78 100644 (file)
@@ -1,39 +1,48 @@
 <?php
 
-function wfSpecialListusers()
-{
-       global $wgUser, $wgOut, $wgLang, $wgIsPg;
-
-       list( $limit, $offset ) = wfCheckLimits();
-
-       $top = wfShowingResults( $offset, $limit );
-       $wgOut->addHTML( "<p>{$top}\n" );
+require_once("QueryPage.php");
 
-       $sl = wfViewPrevNext( $offset, $limit,
-         $wgLang->specialPage( "Listusers" ) );
-       $wgOut->addHTML( "<br />{$sl}</p>\n<ol start='" . ( $offset + 1 ) . "'>" );
+class ListUsersPage extends QueryPage {
 
-       $usertable=$wgIsPg?'"user"':'user';
-       $sql = "SELECT user_name,user_rights FROM $usertable ORDER BY user_name" .
-               wfLimitResult($limit,$offset);
-       $res = wfQuery( $sql, DB_READ, "wfSpecialListusers" );
+       function getName() {
+               return "Listusers";
+       }
 
-       $sk = $wgUser->getSkin();
-       while ( $s = wfFetchObject( $res ) ) {
-               $n = $s->user_name;
-               $r = $s->user_rights;
+       function isExpensive() {
+               return false;
+       }
 
-               $l = $sk->makeLink( $wgLang->getNsText(
-                 Namespace::getUser() ) . ":{$n}", $n );
+       function getSQL() {
+               global $wgIsPg;
+               $usertable = $wgIsPg?'"user"':'user';
+               $userspace = Namespace::getUser();
+               return "SELECT user_rights as type, $userspace as namespace, user_name as title, user_name as value FROM $usertable";
+       }
+       
+       function sortDescending() {
+               return false;
+       }
 
-               if ( "" != $r ) {
-                       $link = $sk->makeKnownLink( wfMsg( "administrators" ), $r );
-                       $l .= " ({$link})";
+       function formatResult( $skin, $result ) {
+               global $wgLang;
+               $name = $skin->makeKnownLink( $wgLang->getNsText($result->namespace) . ':' . $result->title, $result->title );
+               if( '' != $result->type ) {
+                       $name .= ' (' .
+                       $skin->makeKnownLink( wfMsg( "administrators" ), $result->type) .
+                       ')';
                }
-               $wgOut->addHTML( "<li>{$l}</li>\n" );
+               return $name;
        }
-       wfFreeResult( $res );
-       $wgOut->addHTML( "</ol>\n<p>{$sl}</p>\n" );
+}
+
+function wfSpecialListusers() {
+       global $wgUser, $wgOut, $wgLang, $wgIsPg;
+
+       list( $limit, $offset ) = wfCheckLimits();
+
+       $slu = new ListUsersPage();
+
+       return $slu->doQuery( $offset, $limit );
 }
 
 ?>