From 1a79bbd6b26760951f6a0370860e6cd133df6ebf Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Sat, 1 Jul 2006 07:00:49 +0000 Subject: [PATCH] * Add target namespace override selector for transwiki imports. $wgImportTargetNamespace specifies the default, to be used for Wiktionary's 'Transwiki:' namespace etc. Note that the pageOutCallback changed on WikiImporter. Not used externally yet, hopefully --- RELEASE-NOTES | 3 ++ includes/DefaultSettings.php | 9 ++++ includes/SpecialImport.php | 99 +++++++++++++++++++++++++++--------- 3 files changed, 86 insertions(+), 25 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index f1ca72e3db..cc81ba8019 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -616,6 +616,9 @@ Some default configuration options have changed: * (bug 6498) Use localized forms for image size in Special:Undelete * (bug 6485) Update to Indonesian translation (id) #24 * Extension messages translation is now possible. +* Add target namespace override selector for transwiki imports. + $wgImportTargetNamespace specifies the default, to be used for + Wiktionary's 'Transwiki:' namespace etc. == Compatibility == diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index ca659c6735..c907c48cc3 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -1461,6 +1461,15 @@ $wgCapitalLinks = true; */ $wgImportSources = array(); +/** + * Optional default target namespace for interwiki imports. + * Can use this to create an incoming "transwiki"-style queue. + * Set to numeric key, not the name. + * + * Users may override this in the Special:Import dialog. + */ +$wgImportTargetNamespace = null; + /** * If set to false, disables the full-history option on Special:Export. * This is currently poorly optimized for long edit histories, so is diff --git a/includes/SpecialImport.php b/includes/SpecialImport.php index 156ea8b59b..9e15d900a8 100644 --- a/includes/SpecialImport.php +++ b/includes/SpecialImport.php @@ -28,15 +28,16 @@ */ function wfSpecialImport( $page = '' ) { global $wgUser, $wgOut, $wgRequest, $wgTitle, $wgImportSources; + global $wgImportTargetNamespace; - ### -# $wgOut->addWikiText( "Special:Import is not ready for this beta release, sorry." ); -# return; - ### - + $interwiki = false; + $namespace = $wgImportTargetNamespace; + $frompage = ''; + $history = true; + if( $wgRequest->wasPosted() && $wgRequest->getVal( 'action' ) == 'submit') { $isUpload = false; - $interwiki = false; + $namespace = $wgRequest->getIntOrNull( 'namespace' ); switch( $wgRequest->getVal( "source" ) ) { case "upload": @@ -50,9 +51,10 @@ function wfSpecialImport( $page = '' ) { case "interwiki": $interwiki = $wgRequest->getVal( 'interwiki' ); $history = $wgRequest->getCheck( 'interwikiHistory' ); + $frompage = $wgRequest->getText( "frompage" ); $source = ImportStreamSource::newFromInterwiki( $interwiki, - $wgRequest->getText( "frompage" ), + $frompage, $history ); break; default: @@ -65,6 +67,9 @@ function wfSpecialImport( $page = '' ) { $wgOut->addWikiText( wfMsg( "importstart" ) ); $importer = new WikiImporter( $source ); + if( !is_null( $namespace ) ) { + $importer->setTargetNamespace( $namespace ); + } $reporter = new ImportReporter( $importer, $isUpload, $interwiki ); $reporter->open(); @@ -115,24 +120,32 @@ function wfSpecialImport( $page = '' ) { " . - wfInput( 'frompage', 40 ) . + wfInput( 'frompage', 50, $frompage ) . " " . wfCheckLabel( wfMsg( 'import-interwiki-history' ), - 'interwikiHistory', 'interwikiHistory', true ) . + 'interwikiHistory', 'interwikiHistory', $history ) . " + + + + Transfer pages into namespace: " . + HTMLnamespaceselector( $namespace, '' ) . " + + " . @@ -162,11 +175,10 @@ class ImportReporter { $wgOut->addHtml( "