2 rcs_id('$Id: AllRevisionsIter.php,v 1.1 2001-09-18 19:16:23 dairiki Exp $');
5 * An iterator which returns all revisions of page.
7 * This iterator uses only the WikiDB_backend::get_versiondata interface
8 * of a WikiDB_backend, and so it should work with all backends.
10 class WikiDB_backend_dumb_AllRevisionsIter
11 extends WikiDB_backend_iterator
17 * @param $backend object A WikiDB_backend.
18 * @param $pagename string Page whose revisions to get.
20 function WikiDB_backend_dumb_AllRevisionsIter(&$backend, $pagename) {
21 $this->_backend = &$backend;
22 $this->_pagename = $pagename;
23 $this->_lastversion = -1;
27 * Get next revision in sequence.
29 * @see WikiDB_backend_iterator_next;
32 $backend = &$this->_backend;
33 $pagename = &$this->_pagename;
34 $version = &$this->_lastversion;
37 if ($this->_lastversion == -1)
38 $version = $backend->get_latest_version($pagename);
39 elseif ($this->_lastversion > 0)
40 $version = $backend->get_previous_version($pagename, $version);
43 $vdata = $backend->get_versiondata($pagename, $version);
49 $rev = array('versiondata' => $vdata,
50 'pagename' => $pagename,
51 'version' => $version);
53 if (!empty($vdata['%pagedata']))
54 $rev['pagedata'] = &$vdata['%pagedata'];
60 // (c-file-style: "gnu")
65 // c-hanging-comment-ender-p: nil
66 // indent-tabs-mode: nil