Reference:ContentTransfer: Difference between revisions

No edit summary
Tag: 2017 source edit
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{BSExtensionInfo
{{BSExtensionInfo
|desc=Copies new or existing wiki pages into a different wiki. (v3.2 and up)
|removed=No
|status=stable
|status=stable
|developer=HalloWelt
|developer=HalloWelt
Line 7: Line 7:
|compatible=BlueSpice
|compatible=BlueSpice
|category=Administration
|category=Administration
|license=GPL v3
|features=Users can copy up to 200 pages per transfer from a wiki to the same namespace of a target wiki.  
|features=Users with the appropriate authorization can copy up to 200 pages per transfer from a wiki to the same namespace of a target wiki. This extension usually requires BlueSpice farm.


Pages that already exist in the target wiki can be manually merged by activating the extension [[:de:Referenz:MergeArticles{{!}}MergeArticles]].
Pages that already exist in the target wiki can be manually merged by activating the extension [:de:Referenz:MergeArticles{{!}}MergeArticles de:Referenz:MergeArticlesMergeArticles].


Depending on the settings selected on the ContentTransfer special page, the following files are copied:
Depending on the settings selected on the ContentTransfer special page, the following files are copied:
Line 20: Line 19:
* attached files
* attached files


=== Setup ===
== Configuration ==
The following information is necessary to transfer content between two wiki instances:
In on premise installations, the functionality is already activated.
 
'''<source-instance-name>'''
 
Name of the source wiki. This is the directory name from <code style="box-sizing: inherit; font-family: monospace, Courier; font-size: 13.5px; padding: 1px 4px; color: black; background-color: rgb(249, 249, 249); border-radius: 2px; border: 1px solid rgb(221, 221, 221);">/opt/mediawiki/w/_sf_instances/</code> .
 
'''<target-instance-descriptive-name>'''
 
Descriptive name of the target wiki. This is usually the same as <target-instance-name>, but can be chosen freely to better describe the instance. Does not allow spaces.
 
'''<target-instance-name>'''
 
Name of the target wiki. This is the directory name from <code style="box-sizing: inherit; font-family: monospace, Courier; font-size: 13.5px; padding: 1px 4px; color: black; background-color: rgb(249, 249, 249); border-radius: 2px; border: 1px solid rgb(221, 221, 221);">/opt/mediawiki/w/_sf_instances/</code> <span>. It can be extracted from the url of the wiki instance.</span>
 
'''<target-instance-label>'''
 
The display name for the target wiki. It can contain empty spaces. This information is optional and can be commented out.
 
'''<servername>'''
 
Server-url
 
'''<<span class="mw-lingo-term" data-lingo-term-id="fabcaa97871555b68aa095335975e613" data-hasqtip="2" style="box-sizing: inherit; border-bottom: 1px dotted rgb(187, 187, 255); cursor: default;">bot</span>-username-provided>'''
 
A user name in the form of  <code style="box-sizing: inherit; font-family: monospace, Courier; font-size: 13.5px; padding: 1px 4px; color: black; background-color: rgb(249, 249, 249); border-radius: 2px; border: 1px solid rgb(221, 221, 221);"><username>@<id></code>.
 
The bot user has to be generated from <code style="box-sizing: inherit; font-family: monospace, Courier; font-size: 13.5px; padding: 1px 4px; color: black; background-color: rgb(249, 249, 249); border-radius: 2px; border: 1px solid rgb(221, 221, 221);">Special:BotPasswords</code>  in the target wiki. After you click "Create", a page for selecting the bot rights is shown. Activate the following settings:
 
* High-volume editing
* Edit existing pages
* Edit protected pages
* Create, edit and move pages,
* Upload new files
* Upload, replace and move files
 
'''<<span class="mw-lingo-term" data-lingo-term-id="fabcaa97871555b68aa095335975e613" data-hasqtip="3" style="box-sizing: inherit; border-bottom: 1px dotted rgb(187, 187, 255); cursor: default;">bot</span>-password-provided>'''
 
The password is created in the wiki and needs to be used in the settings below.
 
With all this info, open <code style="box-sizing: inherit; font-family: monospace, Courier; font-size: 13.5px; padding: 1px 4px; color: black; background-color: rgb(249, 249, 249); border-radius: 2px; border: 1px solid rgb(221, 221, 221);">/opt/mediawiki/w/_sf_instances/<source-instance-name>/LocalSettings.custom.php</code> .
 
Add the following info:
<span class="nv" style="box-sizing: inherit;">$wgContentTransferTargets</span><span class="p" style="box-sizing: inherit;">[</span><span class="s1" style="box-sizing: inherit;">'<target-instance-descriptive-name>'</span><span class="p" style="box-sizing: inherit;">]</span> <span class="o" style="box-sizing: inherit;">=</span> <span class="p" style="box-sizing: inherit;">[</span>
    <span class="s2" style="box-sizing: inherit;">"url"</span> <span class="o" style="box-sizing: inherit;">=></span> <span class="s2" style="box-sizing: inherit;">"<span class="mw-lingo-term" data-lingo-term-id="5e056c500a1c4b6a7110b50d807bade5" data-hasqtip="4" style="box-sizing: inherit; border-bottom: 1px dotted rgb(187, 187, 255); cursor: default;">https</span>://<servername>/<target-instance-name>/api.php"</span><span class="p" style="box-sizing: inherit;">,</span>
    <span class="s2" style="box-sizing: inherit;">"user"</span> <span class="o" style="box-sizing: inherit;">=></span> <span class="s2" style="box-sizing: inherit;">"<<span class="mw-lingo-term" data-lingo-term-id="fabcaa97871555b68aa095335975e613" data-hasqtip="5" style="box-sizing: inherit; border-bottom: 1px dotted rgb(187, 187, 255); cursor: default;">bot</span>-username-provided>"</span><span class="p" style="box-sizing: inherit;">,</span>
    <span class="s2" style="box-sizing: inherit;">"password"</span> <span class="o" style="box-sizing: inherit;">=></span> <span class="s2" style="box-sizing: inherit;">"<<span class="mw-lingo-term" data-lingo-term-id="fabcaa97871555b68aa095335975e613" data-hasqtip="6" style="box-sizing: inherit; border-bottom: 1px dotted rgb(187, 187, 255); cursor: default;">bot</span>-password-provided>"</span><span class="p" style="box-sizing: inherit;">,</span>
    <span class="s2" style="box-sizing: inherit;">"draftNamespace"</span> <span class="o" style="box-sizing: inherit;">=></span> <span class="s2" style="box-sizing: inherit;">"Draft"</span><span class="p" style="box-sizing: inherit;">,</span>
    <span class="s2" style="box-sizing: inherit;">"pushToDraft"</span> <span class="o" style="box-sizing: inherit;">=></span> <span class="k" style="box-sizing: inherit;">true</span><span class="p" style="box-sizing: inherit;">,</span>
    <span class="s2" style="box-sizing: inherit;">"displayText"</span> <span class="o" style="box-sizing: inherit;">=></span> <span class="s2" style="box-sizing: inherit;">"<target-instance-label>"</span><span class="p" style="box-sizing: inherit;">,</span>
<span class="p" style="box-sizing: inherit;">];</span>
If ContentTransfer is used without the extension [[:de:Referenz:MergeArticles{{!}}MergeArticles]], the information about drafts has to be deactivated in the settings block:
# "draftNamespace" => "Draft",
"pushToDraft" => false,
Example:
$wgContentTransferTargets['MeinWiki'] = [
    "url" => "<nowiki>http://172.16.200.23/MeinWikiName/api.php</nowiki>",
    "user" => "Snow@Schneewittchen",
    "password" => "uuicqdv9mubfrepbpqu1bvsl5957cpa9",
  #  "draftNamespace" => "Draft",
    "pushToDraft" => false,
    "displayText" => "Mein Wiki",
];
{{Messagebox{{!}}boxtype=note{{!}}Note text=To conclude the confguration, you need to run update.php}}


=== Additional settings ===
=== Additional settings ===
Line 91: Line 28:
  <span class="nv" style="box-sizing: inherit;">$wgContentTransferAllowTalkNamespaces</span> <span class="o" style="box-sizing: inherit;">=</span> <span class="k" style="box-sizing: inherit;">false</span><span class="p" style="box-sizing: inherit;">;</span> <span class="c1" style="box-sizing: inherit;">// Allow talk namespaces to be selected in filters</span>
  <span class="nv" style="box-sizing: inherit;">$wgContentTransferAllowTalkNamespaces</span> <span class="o" style="box-sizing: inherit;">=</span> <span class="k" style="box-sizing: inherit;">false</span><span class="p" style="box-sizing: inherit;">;</span> <span class="c1" style="box-sizing: inherit;">// Allow talk namespaces to be selected in filters</span>


===Certificates===
=== Certificates ===
If self-signed certificates are being used (and if no outbound connections are allowed) one must set
If self-signed certificates are being used (and if no outbound connections are allowed) one must set
<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
Line 97: Line 34:
</syntaxhighlight>
</syntaxhighlight>
in <code>data/bluespice/pre-init-settings.php</code>.
in <code>data/bluespice/pre-init-settings.php</code>.
=== Transfer permission in locked target namespaces ===
For highly customized permission concepts, it might be necessary to declare a user who has the appropriate transfer permissions so that the transfer takes place via this user instead of the default ''ContentTransferBot'' user who might not have write-permissions for the target namespaces. The defined user can then be added to any custom wiki groups that have the necessary namespace permissions.<syntaxhighlight lang="php">
php extensions/BlueSpiceWikiFarm/src/Maintenance/CreateAccessToken.php --sfr=Foo --for-user=WikiSysop
</syntaxhighlight>
|desc=Copies new or existing wiki pages into a different wiki. (v3.2 and up)
|license=GPL v3
}}
}}

Latest revision as of 12:20, 29 October 2025

all extensions


Overview
Description:

Enables pushing content from one wiki to another

State: stable Dependency: BlueSpice
Developer: HalloWelt License: GPL-3.0-only
Type: BlueSpice Category: Administration
Edition: BlueSpice farm Version:

Features

Users can copy up to 200 pages per transfer from a wiki to the same namespace of a target wiki.

Pages that already exist in the target wiki can be manually merged by activating the extension [:de:Referenz:MergeArticles|MergeArticles de:Referenz:MergeArticlesMergeArticles].

Depending on the settings selected on the ContentTransfer special page, the following files are copied:

  • the selected wiki pages
  • the related category pages
  • the book page associated with wiki pages
  • the templates associated with wiki pages
  • attached files

Configuration

In on premise installations, the functionality is already activated.

Additional settings

$wgContentTransferIgnoreInsecureSSL = false; // Ignore invalid SSL certificates (for test systems)
$wgContentTransferPageLimit = 200; // Max number of pages to be allowed at one 
$wgContentTransferOnlyContentNamespaces = true; // Only allow content namespaces to be selected in filters
$wgContentTransferAllowTalkNamespaces = false; // Allow talk namespaces to be selected in filters

Certificates

If self-signed certificates are being used (and if no outbound connections are allowed) one must set

$GLOBALS['wgWikiFarmConfig_internalServer'] = 'http://wiki-web:9090';

in data/bluespice/pre-init-settings.php.

Transfer permission in locked target namespaces

For highly customized permission concepts, it might be necessary to declare a user who has the appropriate transfer permissions so that the transfer takes place via this user instead of the default ContentTransferBot user who might not have write-permissions for the target namespaces. The defined user can then be added to any custom wiki groups that have the necessary namespace permissions.
php extensions/BlueSpiceWikiFarm/src/Maintenance/CreateAccessToken.php --sfr=Foo --for-user=WikiSysop

Technical Information

Technical details for BlueSpice cloud can differ in some cases.

Requirements

  • MediaWiki: 1.43.0

Integrates into

  • ContentTransfer

Special pages

  • ContentTransfer

Permissions

Name Description Role
content-transfer Transfer content to other wikis admin

Configuration

Name Value
ContentTransferAllowTalkNamespaces false
ContentTransferEnableBetaFeatures false
ContentTransferIgnoreInsecureSSL false
ContentTransferOnlyContentNamespaces false
ContentTransferPageLimit 200
ContentTransferTargets array ( )

API Modules

  • content-transfer-do-push-single
  • content-transfer-get-pages
  • content-transfer-purge-pages
  • content-transfer-push-info

Hooks




PDF exclude - start

To submit feedback about this documentation, visit our community forum.

PDF exclude - end