]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blob - includes/export/DumpLatestFilter.php
MediaWiki 1.30.2
[autoinstalls/mediawiki.git] / includes / export / DumpLatestFilter.php
1 <?php
2 /**
3  * Dump output filter to include only the last revision in each page sequence.
4  *
5  * Copyright © 2003, 2005, 2006 Brion Vibber <brion@pobox.com>
6  * https://www.mediawiki.org/
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License along
19  * with this program; if not, write to the Free Software Foundation, Inc.,
20  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  * http://www.gnu.org/copyleft/gpl.html
22  *
23  * @file
24  */
25
26 /**
27  * @ingroup Dump
28  */
29 class DumpLatestFilter extends DumpFilter {
30         public $page;
31
32         public $pageString;
33
34         public $rev;
35
36         public $revString;
37
38         /**
39          * @param object $page
40          * @param string $string
41          */
42         function writeOpenPage( $page, $string ) {
43                 $this->page = $page;
44                 $this->pageString = $string;
45         }
46
47         /**
48          * @param string $string
49          */
50         function writeClosePage( $string ) {
51                 if ( $this->rev ) {
52                         $this->sink->writeOpenPage( $this->page, $this->pageString );
53                         $this->sink->writeRevision( $this->rev, $this->revString );
54                         $this->sink->writeClosePage( $string );
55                 }
56                 $this->rev = null;
57                 $this->revString = null;
58                 $this->page = null;
59                 $this->pageString = null;
60         }
61
62         /**
63          * @param object $rev
64          * @param string $string
65          */
66         function writeRevision( $rev, $string ) {
67                 if ( $rev->rev_id == $this->page->page_latest ) {
68                         $this->rev = $rev;
69                         $this->revString = $string;
70                 }
71         }
72 }