un -> in
[lhc/web/wiklou.git] / includes / RevisionList.php
index 4d72c24..fb444bd 100644 (file)
@@ -23,7 +23,7 @@
 /**
  * List for revision table items for a single page
  */
-abstract class RevisionListBase extends ContextSource {
+abstract class RevisionListBase extends ContextSource implements Iterator {
        /** @var Title */
        public $title;
 
@@ -81,7 +81,7 @@ abstract class RevisionListBase extends ContextSource {
         */
        public function reset() {
                if ( !$this->res ) {
-                       $this->res = $this->doQuery( wfGetDB( DB_SLAVE ) );
+                       $this->res = $this->doQuery( wfGetDB( DB_REPLICA ) );
                } else {
                        $this->res->rewind();
                }
@@ -89,6 +89,10 @@ abstract class RevisionListBase extends ContextSource {
                return $this->current;
        }
 
+       public function rewind() {
+               $this->reset();
+       }
+
        /**
         * Get the current list item, or false if we are at the end
         * @return Revision
@@ -107,6 +111,14 @@ abstract class RevisionListBase extends ContextSource {
                return $this->current;
        }
 
+       public function key() {
+               return $this->res ? $this->res->key(): 0;
+       }
+
+       public function valid() {
+               return $this->res ? $this->res->valid() : false;
+       }
+
        /**
         * Get the number of items in the list.
         * @return int
@@ -268,19 +280,19 @@ class RevisionList extends RevisionListBase {
         * @return mixed
         */
        public function doQuery( $db ) {
-               $conds = array( 'rev_page' => $this->title->getArticleID() );
+               $conds = [ 'rev_page' => $this->title->getArticleID() ];
                if ( $this->ids !== null ) {
                        $conds['rev_id'] = array_map( 'intval', $this->ids );
                }
                return $db->select(
-                       array( 'revision', 'page', 'user' ),
+                       [ 'revision', 'page', 'user' ],
                        array_merge( Revision::selectFields(), Revision::selectUserFields() ),
                        $conds,
                        __METHOD__,
-                       array( 'ORDER BY' => 'rev_id DESC' ),
-                       array(
+                       [ 'ORDER BY' => 'rev_id DESC' ],
+                       [
                                'page' => Revision::pageJoinCond(),
-                               'user' => Revision::userJoinCond() )
+                               'user' => Revision::userJoinCond() ]
                );
        }
 
@@ -350,11 +362,11 @@ class RevisionItem extends RevisionItemBase {
                return Linker::linkKnown(
                        $this->list->title,
                        $date,
-                       array(),
-                       array(
+                       [],
+                       [
                                'oldid' => $this->revision->getId(),
                                'unhide' => 1
-                       )
+                       ]
                );
        }
 
@@ -372,12 +384,12 @@ class RevisionItem extends RevisionItemBase {
                        return Linker::linkKnown(
                                        $this->list->title,
                                        $this->list->msg( 'diff' )->escaped(),
-                                       array(),
-                                       array(
+                                       [],
+                                       [
                                                'diff' => $this->revision->getId(),
                                                'oldid' => 'prev',
                                                'unhide' => 1
-                                       )
+                                       ]
                                );
                }
        }