diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2008-08-15 01:29:47 +0200 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2008-08-15 01:29:47 +0200 |
commit | 370e83bb0dfd0c70de268c93bf07ad5ee0897192 (patch) | |
tree | 491674f4c242e4d6ba0d04eafa305174c35a3391 /includes/UserArray.php | |
parent | f4debf0f12d0524d2b2427c55ea3f16b680fad97 (diff) |
Update auf 1.13.0
Diffstat (limited to 'includes/UserArray.php')
-rw-r--r-- | includes/UserArray.php | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/includes/UserArray.php b/includes/UserArray.php new file mode 100644 index 00000000..27847e6f --- /dev/null +++ b/includes/UserArray.php @@ -0,0 +1,62 @@ +<?php + +abstract class UserArray implements Iterator { + static function newFromResult( $res ) { + $userArray = null; + if ( !wfRunHooks( 'UserArrayFromResult', array( &$userArray, $res ) ) ) { + return null; + } + if ( $userArray === null ) { + $userArray = self::newFromResult_internal( $res ); + } + return $userArray; + } + + protected static function newFromResult_internal( $res ) { + $userArray = new UserArrayFromResult( $res ); + return $userArray; + } +} + +class UserArrayFromResult extends UserArray { + var $res; + var $key, $current; + + function __construct( $res ) { + $this->res = $res; + $this->key = 0; + $this->setCurrent( $this->res->current() ); + } + + protected function setCurrent( $row ) { + if ( $row === false ) { + $this->current = false; + } else { + $this->current = User::newFromRow( $row ); + } + } + + function current() { + return $this->current; + } + + function key() { + return $this->key; + } + + function next() { + $row = $this->res->next(); + $this->setCurrent( $row ); + $this->key++; + } + + function rewind() { + $this->res->rewind(); + $this->key = 0; + $this->setCurrent( $this->res->current() ); + } + + function valid() { + return $this->current !== false; + } +} |