X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;ds=sidebyside;f=includes%2Fexport%2FXmlDumpWriter.php;h=42168d7603cdc5ee65e22fd70c418b306338a844;hb=22806b0a4509e97b56fb52b387e17e3c80fb7eb2;hp=3bd4c96bfcb28a90b4b401731bd9b3e741d5280d;hpb=0e289eae349ce35d03af3e8fc10e9ad2e0119f26;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/export/XmlDumpWriter.php b/includes/export/XmlDumpWriter.php index 3bd4c96bfc..5a1f92c4cc 100644 --- a/includes/export/XmlDumpWriter.php +++ b/includes/export/XmlDumpWriter.php @@ -38,9 +38,9 @@ class XmlDumpWriter { * @return string */ function openStream() { - global $wgLanguageCode; + global $wgContLang; $ver = WikiExporter::schemaVersion(); - return Xml::element( 'mediawiki', array( + return Xml::element( 'mediawiki', [ 'xmlns' => "http://www.mediawiki.org/xml/export-$ver/", 'xmlns:xsi' => "http://www.w3.org/2001/XMLSchema-instance", /* @@ -51,12 +51,12 @@ class XmlDumpWriter { * you copy in the new xsd file. * * After it is reviewed, merged and deployed (sync-docroot), the index.html needs purging. - * echo "http://www.mediawiki.org/xml/index.html" | mwscript purgeList.php --wiki=aawiki + * echo "https://www.mediawiki.org/xml/index.html" | mwscript purgeList.php --wiki=aawiki */ 'xsi:schemaLocation' => "http://www.mediawiki.org/xml/export-$ver/ " . "http://www.mediawiki.org/xml/export-$ver.xsd", 'version' => $ver, - 'xml:lang' => $wgLanguageCode ), + 'xml:lang' => $wgContLang->getHtmlCode() ], null ) . "\n" . $this->siteInfo(); @@ -66,13 +66,13 @@ class XmlDumpWriter { * @return string */ function siteInfo() { - $info = array( + $info = [ $this->sitename(), $this->dbname(), $this->homelink(), $this->generator(), $this->caseSetting(), - $this->namespaces() ); + $this->namespaces() ]; return " \n " . implode( "\n ", $info ) . "\n \n"; @@ -83,7 +83,7 @@ class XmlDumpWriter { */ function sitename() { global $wgSitename; - return Xml::element( 'sitename', array(), $wgSitename ); + return Xml::element( 'sitename', [], $wgSitename ); } /** @@ -91,7 +91,7 @@ class XmlDumpWriter { */ function dbname() { global $wgDBname; - return Xml::element( 'dbname', array(), $wgDBname ); + return Xml::element( 'dbname', [], $wgDBname ); } /** @@ -99,14 +99,14 @@ class XmlDumpWriter { */ function generator() { global $wgVersion; - return Xml::element( 'generator', array(), "MediaWiki $wgVersion" ); + return Xml::element( 'generator', [], "MediaWiki $wgVersion" ); } /** * @return string */ function homelink() { - return Xml::element( 'base', array(), Title::newMainPage()->getCanonicalURL() ); + return Xml::element( 'base', [], Title::newMainPage()->getCanonicalURL() ); } /** @@ -116,7 +116,7 @@ class XmlDumpWriter { global $wgCapitalLinks; // "case-insensitive" option is reserved for future $sensitivity = $wgCapitalLinks ? 'first-letter' : 'case-sensitive'; - return Xml::element( 'case', array(), $sensitivity ); + return Xml::element( 'case', [], $sensitivity ); } /** @@ -128,10 +128,10 @@ class XmlDumpWriter { foreach ( $wgContLang->getFormattedNamespaces() as $ns => $title ) { $spaces .= ' ' . Xml::element( 'namespace', - array( + [ 'key' => $ns, 'case' => MWNamespace::isCapitalized( $ns ) ? 'first-letter' : 'case-sensitive', - ), $title ) . "\n"; + ], $title ) . "\n"; } $spaces .= " "; return $spaces; @@ -157,25 +157,25 @@ class XmlDumpWriter { public function openPage( $row ) { $out = " \n"; $title = Title::makeTitle( $row->page_namespace, $row->page_title ); - $out .= ' ' . Xml::elementClean( 'title', array(), self::canonicalTitle( $title ) ) . "\n"; - $out .= ' ' . Xml::element( 'ns', array(), strval( $row->page_namespace ) ) . "\n"; - $out .= ' ' . Xml::element( 'id', array(), strval( $row->page_id ) ) . "\n"; + $out .= ' ' . Xml::elementClean( 'title', [], self::canonicalTitle( $title ) ) . "\n"; + $out .= ' ' . Xml::element( 'ns', [], strval( $row->page_namespace ) ) . "\n"; + $out .= ' ' . Xml::element( 'id', [], strval( $row->page_id ) ) . "\n"; if ( $row->page_is_redirect ) { $page = WikiPage::factory( $title ); $redirect = $page->getRedirectTarget(); if ( $redirect instanceof Title && $redirect->isValidRedirectTarget() ) { $out .= ' '; - $out .= Xml::element( 'redirect', array( 'title' => self::canonicalTitle( $redirect ) ) ); + $out .= Xml::element( 'redirect', [ 'title' => self::canonicalTitle( $redirect ) ] ); $out .= "\n"; } } if ( $row->page_restrictions != '' ) { - $out .= ' ' . Xml::element( 'restrictions', array(), + $out .= ' ' . Xml::element( 'restrictions', [], strval( $row->page_restrictions ) ) . "\n"; } - Hooks::run( 'XmlDumpWriterOpenPage', array( $this, &$out, $row, $title ) ); + Hooks::run( 'XmlDumpWriterOpenPage', [ $this, &$out, $row, $title ] ); return $out; } @@ -209,7 +209,7 @@ class XmlDumpWriter { $out .= $this->writeTimestamp( $row->rev_timestamp ); if ( isset( $row->rev_deleted ) && ( $row->rev_deleted & Revision::DELETED_USER ) ) { - $out .= " " . Xml::element( 'contributor', array( 'deleted' => 'deleted' ) ) . "\n"; + $out .= " " . Xml::element( 'contributor', [ 'deleted' => 'deleted' ] ) . "\n"; } else { $out .= $this->writeContributor( $row->rev_user, $row->rev_user_text ); } @@ -218,9 +218,9 @@ class XmlDumpWriter { $out .= " \n"; } if ( isset( $row->rev_deleted ) && ( $row->rev_deleted & Revision::DELETED_COMMENT ) ) { - $out .= " " . Xml::element( 'comment', array( 'deleted' => 'deleted' ) ) . "\n"; + $out .= " " . Xml::element( 'comment', [ 'deleted' => 'deleted' ] ) . "\n"; } elseif ( $row->rev_comment != '' ) { - $out .= " " . Xml::elementClean( 'comment', array(), strval( $row->rev_comment ) ) . "\n"; + $out .= " " . Xml::elementClean( 'comment', [], strval( $row->rev_comment ) ) . "\n"; } if ( isset( $row->rev_content_model ) && !is_null( $row->rev_content_model ) ) { @@ -245,18 +245,18 @@ class XmlDumpWriter { $text = ''; if ( isset( $row->rev_deleted ) && ( $row->rev_deleted & Revision::DELETED_TEXT ) ) { - $out .= " " . Xml::element( 'text', array( 'deleted' => 'deleted' ) ) . "\n"; + $out .= " " . Xml::element( 'text', [ 'deleted' => 'deleted' ] ) . "\n"; } elseif ( isset( $row->old_text ) ) { // Raw text from the database may have invalid chars $text = strval( Revision::getRevisionText( $row ) ); $text = $content_handler->exportTransform( $text, $content_format ); $out .= " " . Xml::elementClean( 'text', - array( 'xml:space' => 'preserve', 'bytes' => intval( $row->rev_len ) ), + [ 'xml:space' => 'preserve', 'bytes' => intval( $row->rev_len ) ], strval( $text ) ) . "\n"; } else { // Stub output $out .= " " . Xml::element( 'text', - array( 'id' => $row->rev_text_id, 'bytes' => intval( $row->rev_len ) ), + [ 'id' => $row->rev_text_id, 'bytes' => intval( $row->rev_len ) ], "" ) . "\n"; } @@ -269,7 +269,9 @@ class XmlDumpWriter { $out .= " \n"; } - Hooks::run( 'XmlDumpWriterWriteRevision', array( &$this, &$out, $row, $text ) ); + // Avoid PHP 7.1 warning from passing $this by reference + $writer = $this; + Hooks::run( 'XmlDumpWriterWriteRevision', [ &$writer, &$out, $row, $text ] ); $out .= " \n"; @@ -292,13 +294,13 @@ class XmlDumpWriter { $out .= $this->writeTimestamp( $row->log_timestamp, " " ); if ( $row->log_deleted & LogPage::DELETED_USER ) { - $out .= " " . Xml::element( 'contributor', array( 'deleted' => 'deleted' ) ) . "\n"; + $out .= " " . Xml::element( 'contributor', [ 'deleted' => 'deleted' ] ) . "\n"; } else { $out .= $this->writeContributor( $row->log_user, $row->user_name, " " ); } if ( $row->log_deleted & LogPage::DELETED_COMMENT ) { - $out .= " " . Xml::element( 'comment', array( 'deleted' => 'deleted' ) ) . "\n"; + $out .= " " . Xml::element( 'comment', [ 'deleted' => 'deleted' ] ) . "\n"; } elseif ( $row->log_comment != '' ) { $out .= " " . Xml::elementClean( 'comment', null, strval( $row->log_comment ) ) . "\n"; } @@ -307,12 +309,12 @@ class XmlDumpWriter { $out .= " " . Xml::element( 'action', null, strval( $row->log_action ) ) . "\n"; if ( $row->log_deleted & LogPage::DELETED_ACTION ) { - $out .= " " . Xml::element( 'text', array( 'deleted' => 'deleted' ) ) . "\n"; + $out .= " " . Xml::element( 'text', [ 'deleted' => 'deleted' ] ) . "\n"; } else { $title = Title::makeTitle( $row->log_namespace, $row->log_title ); $out .= " " . Xml::elementClean( 'logtitle', null, self::canonicalTitle( $title ) ) . "\n"; $out .= " " . Xml::elementClean( 'params', - array( 'xml:space' => 'preserve' ), + [ 'xml:space' => 'preserve' ], strval( $row->log_params ) ) . "\n"; } @@ -389,13 +391,13 @@ class XmlDumpWriter { # @todo Too bad this loads the contents into memory (script might swap) $contents = ' ' . chunk_split( base64_encode( - $be->getFileContents( array( 'src' => $file->getPath() ) ) ) ) . + $be->getFileContents( [ 'src' => $file->getPath() ] ) ) ) . " \n"; } else { $contents = ''; } if ( $file->isDeleted( File::DELETED_COMMENT ) ) { - $comment = Xml::element( 'comment', array( 'deleted' => 'deleted' ) ); + $comment = Xml::element( 'comment', [ 'deleted' => 'deleted' ] ); } else { $comment = Xml::elementClean( 'comment', null, $file->getDescription() ); } @@ -405,7 +407,7 @@ class XmlDumpWriter { " " . $comment . "\n" . " " . Xml::element( 'filename', null, $file->getName() ) . "\n" . $archiveName . - " " . Xml::element( 'src', null, $file->getCanonicalURL() ) . "\n" . + " " . Xml::element( 'src', null, $file->getCanonicalUrl() ) . "\n" . " " . Xml::element( 'size', null, $file->getSize() ) . "\n" . " " . Xml::element( 'sha1base36', null, $file->getSha1() ) . "\n" . " " . Xml::element( 'rel', null, $file->getRel() ) . "\n" . @@ -431,6 +433,9 @@ class XmlDumpWriter { global $wgContLang; $prefix = $wgContLang->getFormattedNsText( $title->getNamespace() ); + // @todo Emit some kind of warning to the user if $title->getNamespace() !== + // NS_MAIN and $prefix === '' (viz. pages in an unregistered namespace) + if ( $prefix !== '' ) { $prefix .= ':'; }