Georggi199 has uploaded a new change for review. https://gerrit.wikimedia.org/r/263168
Change subject: Export: Exporting now includes custom tags ...................................................................... Export: Exporting now includes custom tags Bug: T22691 Change-Id: I61f77df1a443e15c92f709a1811b207ae125d3fd --- M includes/export/WikiExporter.php M includes/export/XmlDumpWriter.php M maintenance/backup.inc M maintenance/dumpBackup.php 4 files changed, 28 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/68/263168/1 diff --git a/includes/export/WikiExporter.php b/includes/export/WikiExporter.php index ab2632d..6cdccd0 100644 --- a/includes/export/WikiExporter.php +++ b/includes/export/WikiExporter.php @@ -40,6 +40,9 @@ /** @var bool */ public $dumpUploadFileContents = false; + /** @var bool */ + public $changetags = false; + /** @var string */ public $author_list = ""; @@ -366,6 +369,11 @@ $join['text'] = array( 'INNER JOIN', 'rev_text_id=old_id' ); } + $fields = array( '*' ); + if ( $this->changetags ) { + ChangeTags::modifyDisplayQuery($tables, $fields, $cond, $join, $opts); + } + if ( $this->buffer == WikiExporter::STREAM ) { $prev = $this->db->bufferResults( false ); } @@ -376,7 +384,7 @@ array( $this->db, &$tables, &$cond, &$opts, &$join ) ); # Do the query! - $result = $this->db->select( $tables, '*', $cond, __METHOD__, $opts, $join ); + $result = $this->db->select( $tables, $fields, $cond, __METHOD__, $opts, $join ); # Output dump results $this->outputPageStream( $result ); diff --git a/includes/export/XmlDumpWriter.php b/includes/export/XmlDumpWriter.php index 3bd4c96..580d721 100644 --- a/includes/export/XmlDumpWriter.php +++ b/includes/export/XmlDumpWriter.php @@ -223,6 +223,21 @@ $out .= " " . Xml::elementClean( 'comment', array(), strval( $row->rev_comment ) ) . "\n"; } + if ( isset( $row->ts_tags ) && !is_null( $row->ts_tags ) ){ + $indent = " "; + $out .= $indent . "<tags>\n"; + if ( strpos($row->ts_tags, ',') ) { + $tags = explode(',' ,$row->ts_tags); + //I could do it as separate function if you say so + foreach($tags as $tag){ + $out .= $indent . " " . Xml::element( 'tag', null, $tag ) . "\n"; + } + } else { + $out .= $indent . " " . Xml::element( 'tag', null, $row->ts_tags ) . "\n"; + } + $out .= $indent . "</tags>\n"; + } + if ( isset( $row->rev_content_model ) && !is_null( $row->rev_content_model ) ) { $content_model = strval( $row->rev_content_model ); } else { diff --git a/maintenance/backup.inc b/maintenance/backup.inc index 9af9604..616eb97 100644 --- a/maintenance/backup.inc +++ b/maintenance/backup.inc @@ -41,6 +41,7 @@ public $revEndId = 0; public $dumpUploads = false; public $dumpUploadFileContents = false; + public $changetags = false; protected $reportingInterval = 100; protected $pageCount = 0; @@ -254,6 +255,7 @@ $exporter = new WikiExporter( $db, $history, WikiExporter::STREAM, $text ); $exporter->dumpUploads = $this->dumpUploads; $exporter->dumpUploadFileContents = $this->dumpUploadFileContents; + $exporter->changetags = $this->changetags; $wrapper = new ExportProgressFilter( $this->sink, $this ); $exporter->setOutputSink( $wrapper ); diff --git a/maintenance/dumpBackup.php b/maintenance/dumpBackup.php index 18737a4..f9550d8 100644 --- a/maintenance/dumpBackup.php +++ b/maintenance/dumpBackup.php @@ -61,6 +61,7 @@ $this->addOption( 'stub', 'Don\'t perform old_text lookups; for 2-pass dump' ); $this->addOption( 'uploads', 'Include upload records without files' ); $this->addOption( 'include-files', 'Include files within the XML stream' ); + $this->addOption( 'change-tags', 'Export change tags for each revision' ); if ( $args ) { $this->loadWithArgv( $args ); @@ -120,6 +121,7 @@ $this->revEndId = intval( $this->getOption( 'revend' ) ); } + $this->changetags = $this->hasOption( 'change-tags' ); $this->skipHeader = $this->hasOption( 'skip-header' ); $this->skipFooter = $this->hasOption( 'skip-footer' ); $this->dumpUploads = $this->hasOption( 'uploads' ); -- To view, visit https://gerrit.wikimedia.org/r/263168 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I61f77df1a443e15c92f709a1811b207ae125d3fd Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Georggi199 <bmp2...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits