X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FExport.php;h=9307795d8c77f44f83a653a04ead8c186e60f4be;hb=fa5dec53ce155e2b1b7eb3f816e7e395703467c3;hp=19a6172f138a8c8381e54e4f24ab3b1abdec0b22;hpb=3f80b41dc21bc7f7e2c8f78847cf762ada97b48d;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Export.php b/includes/Export.php index 19a6172f13..9307795d8c 100644 --- a/includes/Export.php +++ b/includes/Export.php @@ -16,50 +16,42 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # http://www.gnu.org/copyleft/gpl.html -/** - * - * @package MediaWiki - * @subpackage SpecialPage - */ - -/** */ - -define( 'MW_EXPORT_FULL', 0 ); -define( 'MW_EXPORT_CURRENT', 1 ); - -define( 'MW_EXPORT_BUFFER', 0 ); -define( 'MW_EXPORT_STREAM', 1 ); - -define( 'MW_EXPORT_TEXT', 0 ); -define( 'MW_EXPORT_STUB', 1 ); /** - * @package MediaWiki - * @subpackage SpecialPage + * + * @addtogroup SpecialPage */ class WikiExporter { - var $list_authors = false ; # Return distinct author list (when not returning full history) var $author_list = "" ; - + + const FULL = 0; + const CURRENT = 1; + + const BUFFER = 0; + const STREAM = 1; + + const TEXT = 0; + const STUB = 1; + /** - * If using MW_EXPORT_STREAM to stream a large amount of data, + * If using WikiExporter::STREAM to stream a large amount of data, * provide a database connection which is not managed by * LoadBalancer to read from: some history blob types will * make additional queries to pull source data while the * main query is still running. * * @param Database $db - * @param mixed $history one of MW_EXPORT_FULL or MW_EXPORT_CURRENT, or an + * @param mixed $history one of WikiExporter::FULL or WikiExporter::CURRENT, or an * associative array: * offset: non-inclusive offset at which to start the query * limit: maximum number of rows to return * dir: "asc" or "desc" timestamp order - * @param int $buffer one of MW_EXPORT_BUFFER or MW_EXPORT_STREAM + * @param int $buffer one of WikiExporter::BUFFER or WikiExporter::STREAM */ - function WikiExporter( &$db, $history = MW_EXPORT_CURRENT, - $buffer = MW_EXPORT_BUFFER, $text = MW_EXPORT_TEXT ) { + function __construct( &$db, $history = WikiExporter::CURRENT, + $buffer = WikiExporter::BUFFER, $text = WikiExporter::TEXT ) { $this->db =& $db; $this->history = $history; $this->buffer = $buffer; @@ -147,7 +139,10 @@ class WikiExporter { $fname = "do_list_authors" ; wfProfileIn( $fname ); $this->author_list = ""; - $sql = "SELECT DISTINCT rev_user_text,rev_user FROM {$page},{$revision} WHERE page_id=rev_page AND " . $cond ; + //rev_deleted + $nothidden = '(rev_deleted & '.Revision::DELETED_USER.') = 0'; + + $sql = "SELECT DISTINCT rev_user_text,rev_user FROM {$page},{$revision} WHERE page_id=rev_page AND $nothidden AND " . $cond ; $result = $this->db->query( $sql, $fname ); $resultset = $this->db->resultObject( $result ); while( $row = $resultset->fetchObject() ) { @@ -171,13 +166,13 @@ class WikiExporter { $page = $this->db->tableName( 'page' ); $revision = $this->db->tableName( 'revision' ); $text = $this->db->tableName( 'text' ); - + $order = 'ORDER BY page_id'; $limit = ''; - - if( $this->history == MW_EXPORT_FULL ) { + + if( $this->history == WikiExporter::FULL ) { $join = 'page_id=rev_page'; - } elseif( $this->history == MW_EXPORT_CURRENT ) { + } elseif( $this->history == WikiExporter::CURRENT ) { if ( $this->list_authors && $cond != '' ) { // List authors, if so desired $this->do_list_authors ( $page , $revision , $cond ); } @@ -192,7 +187,7 @@ class WikiExporter { $order .= ', rev_timestamp DESC'; } if ( !empty( $this->history['offset'] ) ) { - $join .= " AND rev_timestamp $op " . $this->db->addQuotes( + $join .= " AND rev_timestamp $op " . $this->db->addQuotes( $this->db->timestamp( $this->history['offset'] ) ); } if ( !empty( $this->history['limit'] ) ) { @@ -207,7 +202,7 @@ class WikiExporter { } $where = ( $cond == '' ) ? '' : "$cond AND"; - if( $this->buffer == MW_EXPORT_STREAM ) { + if( $this->buffer == WikiExporter::STREAM ) { $prev = $this->db->bufferResults( false ); } if( $cond == '' ) { @@ -219,7 +214,7 @@ class WikiExporter { $revindex = ''; $straight = ''; } - if( $this->text == MW_EXPORT_STUB ) { + if( $this->text == WikiExporter::STUB ) { $sql = "SELECT $straight * FROM $page $pageindex, $revision $revindex @@ -236,12 +231,12 @@ class WikiExporter { $result = $this->db->query( $sql, $fname ); $wrapper = $this->db->resultObject( $result ); $this->outputStream( $wrapper ); - + if ( $this->list_authors ) { $this->outputStream( $wrapper ); } - if( $this->buffer == MW_EXPORT_STREAM ) { + if( $this->buffer == WikiExporter::STREAM ) { $this->db->bufferResults( $prev ); } @@ -286,6 +281,9 @@ class WikiExporter { } } +/** + * @addtogroup Dump + */ class XmlDumpWriter { /** @@ -344,8 +342,7 @@ class XmlDumpWriter { } function homelink() { - $page = Title::newFromText( wfMsgForContent( 'mainpage' ) ); - return wfElement( 'base', array(), $page->getFullUrl() ); + return wfElement( 'base', array(), Title::newMainPage()->getFullUrl() ); } function caseSetting() { @@ -469,6 +466,7 @@ class XmlDumpWriter { /** * Base class for output stream; prints to stdout or buffer or whereever. + * @addtogroup Dump */ class DumpOutput { function writeOpenStream( $string ) { @@ -502,6 +500,7 @@ class DumpOutput { /** * Stream outputter to send data to a file. + * @addtogroup Dump */ class DumpFileOutput extends DumpOutput { var $handle; @@ -519,6 +518,7 @@ class DumpFileOutput extends DumpOutput { * Stream outputter to send data to a file via some filter program. * Even if compression is available in a library, using a separate * program can allow us to make use of a multi-processor system. + * @addtogroup Dump */ class DumpPipeOutput extends DumpFileOutput { function DumpPipeOutput( $command, $file = null ) { @@ -531,6 +531,7 @@ class DumpPipeOutput extends DumpFileOutput { /** * Sends dump output via the gzip compressor. + * @addtogroup Dump */ class DumpGZipOutput extends DumpPipeOutput { function DumpGZipOutput( $file ) { @@ -540,6 +541,7 @@ class DumpGZipOutput extends DumpPipeOutput { /** * Sends dump output via the bgzip2 compressor. + * @addtogroup Dump */ class DumpBZip2Output extends DumpPipeOutput { function DumpBZip2Output( $file ) { @@ -549,6 +551,7 @@ class DumpBZip2Output extends DumpPipeOutput { /** * Sends dump output via the p7zip compressor. + * @addtogroup Dump */ class Dump7ZipOutput extends DumpPipeOutput { function Dump7ZipOutput( $file ) { @@ -566,6 +569,7 @@ class Dump7ZipOutput extends DumpPipeOutput { * Dump output filter class. * This just does output filtering and streaming; XML formatting is done * higher up, so be careful in what you do. + * @addtogroup Dump */ class DumpFilter { function DumpFilter( &$sink ) { @@ -604,13 +608,14 @@ class DumpFilter { * Override for page-based filter types. * @return bool */ - function pass( $page, $string ) { + function pass( $page ) { return true; } } /** * Simple dump output filter to exclude all talk pages. + * @addtogroup Dump */ class DumpNotalkFilter extends DumpFilter { function pass( $page ) { @@ -620,6 +625,7 @@ class DumpNotalkFilter extends DumpFilter { /** * Dump output filter to include or exclude pages in a given set of namespaces. + * @addtogroup Dump */ class DumpNamespaceFilter extends DumpFilter { var $invert = false; @@ -674,6 +680,7 @@ class DumpNamespaceFilter extends DumpFilter { /** * Dump output filter to include only the last revision in each page sequence. + * @addtogroup Dump */ class DumpLatestFilter extends DumpFilter { var $page, $pageString, $rev, $revString; @@ -705,6 +712,7 @@ class DumpLatestFilter extends DumpFilter { /** * Base class for output stream; prints to stdout or buffer or whereever. + * @addtogroup Dump */ class DumpMultiWriter { function DumpMultiWriter( $sinks ) {