|
|
| (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 |
| }} | | }} |
all extensions
| 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.
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