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

Reply via email to