<?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 );
}
?>