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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits