Extension:StructuredDiscussions

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:StructuredDiscussions and the translation is 50% complete.
Other languages:
English • ‎Türkçe • ‎español • ‎français • ‎magyar • ‎svenska • ‎中文 • ‎日本語
MediaWiki 拡張機能マニュアル
OOjs UI icon advanced.svg
StructuredDiscussions
リリースの状態: 安定
StructuredDiscussions generic screenshot.png
実装 ページの操作
説明 トークページに討議と共同作業のシステムを導入
作者 Brandon Harris, Erik Bernhardson, Matthias Mullie, Andrew Garrett, Benny Situ, Shahyar Ghobadpour, Matthew Flaschen, Roan Kattouw, Moriel Schottlender, Stephane Bisson, Kunal Mehta
最新バージョン Continuous updates
互換性ポリシー リリースブランチ
MediaWiki 1.34+
PHP 5.4+
データベースの変更 はい
ライセンス GNU 一般公衆利用許諾書 2.0 以降
ダウンロード
Talk:Structured Discussions
  • $wgFlowSearchConnectionAttempts
  • $wgFlowAbuseFilterEmergencyDisableAge
  • $wgFlowSearchBannedPlugins
  • $wgFlowEnableOptInBetaFeature
  • $wgFlowHelpPage
  • $wgFlowCluster
  • $wgFlowAbuseFilterEmergencyDisableThreshold
  • $wgFlowSearchShardCount
  • $wgFlowCacheTime
  • $wgFlowDefaultWikiDb
  • $wgFlowServerCompileTemplates
  • $wgFlowContentFormat
  • $wgFlowSearchServers
  • $wgFlowCoreActionWhitelist
  • $wgFlowCacheVersion
  • $wgFlowSearchMaintenanceTimeout
  • $wgFlowSearchReplicas
  • $wgFlowSearchCacheWarmers
  • $wgFlowExternalStore
  • $wgFlowMaxMentionCount
  • $wgFlowSearchMaxShardsPerNode
  • $wgFlowSearchEnabled
  • $wgFlowReadOnly
  • $wgFlowAjaxTimeout
  • $wgFlowSearchRefreshInterval
  • $wgFlowUseMemcache
  • $wgFlowDefaultLimit
  • $wgFlowSearchIndexAllocation
  • $wgFlowSearchMergeSettings
  • $wgFlowAbuseFilterEmergencyDisableCount
  • $wgFlowParsoidTimeout
  • $wgFlowSearchOptimizeIndexForExperimentalHighlighter
  • $wgFlowEditorList
  • $wgFlowParsoidForwardCookies
  • $wgFlowMaxThreadingDepth
  • $wgFlowParsoidHTTPProxy
  • $wgFlowParsoidPrefix
  • $wgFlowMaxLimit
  • $wgFlowAbuseFilterGroup
  • $wgFlowParsoidURL
  • flow-hide
  • flow-lock
  • flow-delete
  • flow-suppress
  • flow-edit-post
  • flow-create-board
StructuredDiscussions 拡張機能の翻訳にご協力ください
使用状況とバージョン マトリクスを確認してください。
問題点 未解決のタスク · バグを報告

StructuredDiscussions 拡張機能はトークページにおける討議と共同作業に使うシステムを提供します。 このページではインストールと管理の方法を紹介します。使い方のガイドはHelp:Structured Discussions をご参照ください。 この機能をご自分で試すには、サンドボックスのトークページが利用できます。

以前はFlowという名称で、ページによっては (Git リポジトリなど) ぞの名前を使っています。

StructuredDiscussions 拡張機能の開発にはウィキメディア財団のCollaborationチームが当たりました。 バグ修正のため管理を続けていますが、2017年9月に「StructuredDiscussions」に改名されたほかは、実体のある開発は2015年以降なされていません。 将来的に開発を再開する可能性はあります。 この拡張機能の開発状況ならびに設計の概要について詳しく知るには、Structured Discussionsをご参照ください。

インストール

警告! 警告: ご注意=StructuredDiscussions は SQLite と互換性がありません。
  • Vagrant を使用している場合は、vagrant roles enable flow --provision でインストールしてください
手動インストール
  • 必要な依存関係の導入と設定がすべて完了していることをご確認ください。
  • ダウンロードして、ファイルを extensions/ フォルダー内の Flow という名前のディレクトリ内に配置します。
  • 以下のコードを LocalSettings.php の末尾に追加します:
    wfLoadExtension( 'Flow' );
    
  • 更新スクリプトを実行します。このスクリプトは、この拡張機能が必要とするデータベース テーブルを自動的に作成します。
  • Yes 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。
既知の問題に遭遇した場合は、トラブルシューティング節をご参照ください。

インストールが終了したら

ウェブサーバーの利用者権限で「update.php」を実行します (設定にもよりますが例えば www-data)。 さもなければ、/tmp/mw-UIDGeneratorUUID-UID-xx 一時ファイルが残ってしまい、MediaWiki には開くことができません (タスク T55791). Flow のボードを初めて開こうとした時、もし「必要な権限がありません」などのエラーが表示された場合は、必ずこれらのファイルを削除します。 さらに Flow の言及機能をビジュアル編集機能で有効にするため、update.phpは{{FlowMention}}を作成し (言及はアットマーク「@」もしくはツールバーのメニューに便利な自動入力インターフェースを提供して使えるようにします)。

これに加えてコマンドラインから「composer update --no-dev」を実行し、対象は MediaWiki をインストールしたフォルダで、この処理は git 経由でダウンロードしなかった場合も必要です。

注意点は、StructuredDiscussionsを有効もしくは無効にする手順をすべて実行することで、これには提示されたスクリプトをすべて実行することも含まれます。

依存関係

必須
  • Extension:Echo - 通知用 (例:投稿への返事)
  • 対象のキャッシュが必要です。その実行には memcach (汎用の分散型メモリキャッシュシステム) の使用が推奨されます。現在、Redis を使うと問題が発生するかもしれません。
  • Extension:ParserFunctions - 自動的にインストールされるテンプレートに対応 (例=#time)
  • $wgContentHandlerUseDB = true Special:EnableStructuredDiscussions 対応に必要で、名前空間のコンテンツモデルを変更しても、同名の名前空間がすでにある場合の障害を予防します (StructuredDiscussionsへの入力もしくは出力のどちらでも)。
強く推奨
  • Parsoidは投稿をHTML形式($wgFlowContentFormat = 'html';)として保存し、パフォーマンスを改善。 WMF(ウィキメディア財団)のウィキの設定がこうなっているからで、現状ではもっともテストが行き届いた設定です。 MediaWiki-Vagrantを使用している場合、StructuredDiscussionsを有効にすると Parsoid が有効になり、形式を「html」に設定します。
省略可能

インストールの確認

StructuredDiscussions を有効にしたページのどれかを開き (#Configurationを参照)、話題の追加やその見出しの編集を試してください。

アップグレード

$wgFlowOccupyPages変数は StructuredDiscussions ボードを列挙してきましたが、タスク T105574の一環として除去されました。. バージョン 1.26 以降に更新する準備として、管理スクリプトを実行します。

php maintenance/populateContentModel.php --ns=all --table=page
php extensions/Flow/maintenance/FlowUpdateRevContentModelFromOccupyPages.php

1番目のスクリプトは MediaWiki 1.34. 以前にコアに導入されていました。 1.35 以降はもう必要がなくなりました。

設定

LocalSettings.phpで設定が必要な項目を説明します。

StructuredDiscussions を有効もしくは無効にするには

MediaWiki 1.35, 以前は、StructuredDiscussions を名前空間で有効または無効にするには、まず影響を受ける名前空間でpopulateContentModel.php を実行します (代わりにallで実行しても可)。 1.35 以降はもう必要がなくなりました。 例=NS_TALK (1) や NS_USER_TALK (3) で有効もしくは無効にする場合、以下のPHP 設定の状態なら次のようになります。

mwscript populateContentModel.php --wiki=somewiki --ns=1 --table=revision
mwscript populateContentModel.php --wiki=somewiki --ns=1 --table=archive
mwscript populateContentModel.php --wiki=somewiki --ns=1 --table=page

mwscript populateContentModel.php --wiki=somewiki --ns=3 --table=revision
mwscript populateContentModel.php --wiki=somewiki --ns=3 --table=archive
mwscript populateContentModel.php --wiki=somewiki --ns=3 --table=page

mwscript が未設定の場合は、mwscript populateContentModel.phpphp maintenance/populateContentModel.phpと入れ替えます。

上記の後に、特定の名前空間で$wgNamespaceContentModels [namespace]を設定します。 例:

  // These lines enable StructuredDiscussions on the "Talk" and "User talk" namespaces
  // All the NS_* constants here: https://www.mediawiki.org/wiki/Manual:Namespace_constants
  
  $wgNamespaceContentModels[NS_TALK] = 'flow-board';
  $wgNamespaceContentModels[NS_USER_TALK] = 'flow-board';

グローバルな設定変更してはダメです ($wgNamespaceContentModels =)。

単一ページで有効にする場合は、Special:EnableStructuredDiscussionsを利用します。 これにはフローボード作成権限 flow-create-board が必要で、どんなグループでも権限を付与されます (利用者権限のグループ権限変更のページ Manual:User rights#Changing group permissions をご参照ください)。

  $wgGroupPermissions['somegroup']['flow-create-board'] = true;

ご利用のwikiのすべてのページで StructuredDiscussions を無効にする方法はExtension:StructuredDiscussions/Turning off all StructuredDiscussions をご参照ください。

Parsoid 設定

StructuredDiscussions uses the Virtual REST Service to contact a Parsoid or RESTBase service. If your wiki loads the VisualEditor extension, then you've probably already set this up. Look for the following in your LocalSettings.php:

$wgVirtualRestConfig['modules']['parsoid'] = array(
  // URL to the Parsoid instance
  // Use port 8142 if you use the Debian package
  'url' => 'http://localhost:8000',
  // Parsoid "domain", see below (optional)
  'domain' => 'localhost',
  // Parsoid "prefix", see below (optional)
  'prefix' => 'localhost',
);

A single Parsoid server can handle multiple wikis. The Parsoid domain setting identifies your wiki configuration to Parsoid. By default it is set to the hostname named by $wgCanonicalServer, but you can pick an arbitrary string. Older versions of Parsoid also used a unique "prefix" to identify the server; you may need to list that here as well.

Parsoid must have been configured to match, using a line in Parsoid's localsettings.js like:

parsoidConfig.setMwApi({ uri: 'http://path/to/my/wiki/api.php', domain: 'localhost', prefix: 'localhost' });

Again, the "domain" property is optional in the Parsoid configuration; it defaults to the hostname used in the uri property if not specified. The "prefix" property can also be omitted unless you are running an older version of Parsoid. Make sure the domain and prefix listed in Parsoid's localsettings.js match what's in your wiki's LocalSettings.php.

See Parsoid/Setup#Configuration for more details.

"maximum function nesting level of '100' reached, aborting"

If you get this error, you need to set xdebug.max_nesting_level = 200, probably in /etc/php5/apache2/php.ini.[1]

「例外を発見:CASがXyz で実行しない」状態

StructuredDiscussions は $cache->cas()CACHE_ACCEL (APCBagOStuff)などのキャッシュした実行でCASを伴わないものを実施します。 変更し、たとえばmemcachedをインストールし$wgMainCacheType = CACHE_MEMCACHED;を設定するなど、違うキャッシュを使う必要があるかもしれません。

権限

StructuredDiscussionsで書き込みの作業をする利用者は、コアのedit権限が必要です。 この権限を'user'グループ (ログイン状態で) にのみ付与するウィキがたくさんあります。

StructuredDiscussions が定義する動作は多く、たとえばedit-postdelete-topicがあります (詳細な一覧はFlowActions.phpをご参照ください)。 投稿が皆さん自身のものかどうか、変更したかどうかにより、権限が異なります。 一例として、既定では利用者は自分自身の投稿の編集を認められますが、他者の投稿を改変できるのはflow-edit-post権限を付与された'sysop'グループの利用者のみです。 Flow に関して、どのグループにどの権限を付与するか、動作ごとに必要な権限の選定ができます。権限の概要の詳細はManual:利用者権限をご参照ください。

既存のページの移行

既存の単一ページを移行するには、Special:EnableStructuredDiscussionsを使います。 すると自動的に単一ページの過去ログ化 (それによって StructuredDiscussions を有効にする) 扱いをします。

The script maintenance/convertNamespaceFromWikitext.php automates this namespace conversion and archiving, see Flow/Converting talk pages. It is somewhat WMF-specific, so evaluate its operation and backup your database before running it. Another script maintenance/convertAllLqtPages.php converts LiquidThreads pages and their threads to Flow boards and topics, see Flow/Converting LiquidThreads. Similar caveats apply.

Flow adds a Topic: namespace, see Extension default namespaces#flow. You can visit Special:PrefixIndex/Topic: to see if there are existing pages that conflict with this; if so run the maintenance script maintenance/namespaceDupes.php.

設定

Configuration settings in Flow.php
パラメーター 既定 コメント
$wgFlowHelpPage //www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:Flow URL for more information about the Flow notification system
$wgFlowCluster false $wgFlowCluster will define what external DB server should be used.

If set to false, the current database (wfGetDB) will be used to read/write data from/to. If StructuredDiscussions data is supposed to be stored on an external database, set the value of this variable to the $wgExternalServers key representing that external connection.

$wgFlowDefaultWikiDb false Database to use for StructuredDiscussions metadata. Set to false to use the wiki db.

Any number of wikis can and should share the same StructuredDiscussions database.

$wgFlowExternalStore false Used for content storage.

False to store content in StructuredDiscussions db. Otherwise a cluster or list of clusters to use with ExternalStore. Provided clusters must exist $wgExternalStores. Multiple clusters required for HA, so inserts can continue if one of the masters is down for maint or any other reason.

$wgFlowExternalStore = array( 'DB://cluster24', 'DB://cluster25' );

$wgFlowContentFormat html By default, StructuredDiscussions will store content in HTML.

However, this requires having Parsoid up and running, as it'll be necessary to convert HTML to wikitext for the basic editor. (n.b. to use VisualEditor, you'll definitely need Parsoid, so if you do support VE, might as well set this to HTML right away)

If $wgFlowParsoidURL is null, $wgFlowContentFormat will be forced to wikitext.

The 'wikitext' format is likely to be deprecated in the future.

$wgFlowParsoidURL null
警告 警告: Deprecated. Use $wgVirtualRestConfig['modules']['parsoid']['url'].

StructuredDiscussions Parsoid config

Please note that this configuration is separate from VE's Parsoid config.

$wgFlowParsoidPrefix null
警告 警告: Deprecated. Use $wgVirtualRestConfig['modules']['parsoid']['prefix'].

Flow Parsoid config

Please note that this configuration is separate from VE's Parsoid config.

$wgFlowParsoidTimeout null
警告 警告: Deprecated. Use $wgVirtualRestConfig['modules']['parsoid']['timeout'].

Flow Parsoid config

Please note that this configuration is separate from VE's Parsoid config.

$wgFlowParsoidForwardCookies false
警告 警告: Deprecated. Use $wgVirtualRestConfig['modules']['parsoid']['forwardCookies'].

Forward users' Cookie: headers to Parsoid. Required for private wikis (login required to read).

If the wiki is not private (i.e. $wgGroupPermissions['*']['read'] is true) this configuration variable will be ignored.

This feature requires a non-locking session store. The default session store will not work and will cause deadlocks when trying to use this feature. If you experience deadlock issues, enable $wgSessionsInObjectCache.

WARNING: ONLY enable this on private wikis and ONLY IF you understand the SECURITY IMPLICATIONS of sending Cookie headers to Parsoid over HTTP.

For security reasons, it is strongly recommended that $wgVirtualRestConfig['modules']['parsoid']['forwardCookies'] be pointed to localhost if this setting is enabled.
$wgFlowDefaultWorkflow discussion When visiting the StructuredDiscussions for an article but not specifying what type of workflow should be viewed, use this workflow
$wgFlowDefaultLimit 10 Limits for paging
$wgFlowMaxLimit 100 Limits for paging
$wgFlowMaxMentionCount 100 Maximum number of users that can be mentioned in one comment
$wgFlowMaxThreadingDepth 8 Max threading depth
$wgFlowEditorList array( 'visualeditor', 'wikitext' ); A list of editors to use, in priority order. Non-supported editors will be skipped.
$wgFlowUseMemcache true Set this to false to disable all memcache usage.

Do not just turn the cache back on, it will be out of sync with the database. There is not yet an official process for re-sync'ing the cache yet, currently the per-index versions would need to incremented(ask the flow team).

This will reduce, but not necessarily kill, performance. The queries issued will be the queries necessary to fill the cache rather than only the queries needed to answer the request. A bit of a refactor in ObjectManager::findMulti to allow query without indexes, along with adjusting container.php to only include the indexes when this is true, would get most of the way towards making this a reasonably performant option.

$wgFlowCacheTime 60 * 60 * 24 * 3 The default length of time to cache StructuredDiscussions data in memcache.

This value can be tuned in conjunction with measurements of cache hit/miss ratios to achieve the desired tradeoff between memory usage, db queries, and response time. The initial default of 3 days means StructuredDiscussions will attempt to keep in memcache all data models requested in the last 3 days.

$wgFlowCacheVersion 4.7 A version string appended to cache keys.

Bump this if cache format or logic changes. StructuredDiscussions can be a cross-wiki database accessed by wikis running different versions of the Flow code; WMF sometimes overrides this globally in wmf-config/CommonSettings.php

$wgFlowSearchServers array( 'localhost' ) ElasticSearch servers
$wgFlowSearchConnectionAttempts 1 // $wgCirrusSearchConnectionAttempts を参照

StructuredDiscussions search config setting - akin to CirrusSearch

See CirrusSearch.php for documentation for these params, which have similar variable names (s/FlowSearch/CirrusSearch/)

$wgFlowSearchBannedPlugins array() // $wgCirrusSearchBannedPlugins を参照

Flow search config setting - akin to CirrusSearch

See CirrusSearch.php for documentation for these params, which have similar variable names (s/FlowSearch/CirrusSearch/)

$wgFlowSearchOptimizeIndexForExperimentalHighlighter false // $wgCirrusSearchOptimizeIndexForExperimentalHighlighter を参照 StructuredDiscussions search config setting - akin to CirrusSearch

See CirrusSearch.php for documentation for these params, which have similar

variable names (s/FlowSearch/CirrusSearch/)

$wgFlowSearchMaxShardsPerNode array() // $wgCirrusSearchMaxShardsPerNode を参照 StructuredDiscussions search config setting - akin to CirrusSearch

See CirrusSearch.php for documentation for these params, which have similar

variable names (s/FlowSearch/CirrusSearch/)

$wgFlowSearchRefreshInterval 1 // $wgCirrusSearchRefreshInterval を参照 StructuredDiscussions search config setting - akin to CirrusSearch

See CirrusSearch.php for documentation for these params, which have similar

variable names (s/FlowSearch/CirrusSearch/)

$wgFlowSearchMaintenanceTimeout 3600 // $wgCirrusSearchMaintenanceTimeout を参照 StructuredDiscussions search config setting - akin to CirrusSearch

See CirrusSearch.php for documentation for these params, which have similar

variable names (s/FlowSearch/CirrusSearch/)

$wgFlowSearchReplicas '0-2' // $wgCirrusSearchReplicas を参照 StructuredDiscussions search config setting - akin to CirrusSearch

See CirrusSearch.php for documentation for these params, which have similar

variable names (s/FlowSearch/CirrusSearch/)

$wgFlowSearchShardCount array( 'flow' => 4 ) // $wgCirrusSearchShardCount を参照 StructuredDiscussions search config setting - akin to CirrusSearch

See CirrusSearch.php for documentation for these params, which have similar

variable names (s/FlowSearch/CirrusSearch/)

$wgFlowSearchCacheWarmers array() // $wgCirrusSearchCacheWarmers を参照 StructuredDiscussions search config setting - akin to CirrusSearch

See CirrusSearch.php for documentation for these params, which have similar

variable names (s/FlowSearch/CirrusSearch/)

$wgFlowSearchMergeSettings
$wgFlowSearchMergeSettings = array(
	'flow' => array(
		'max_merge_at_once' => 10,
		'segments_per_tier' => 10,
		'reclaim_deletes_weight' => 2.0,
		'max_merged_segment' => '5g',
	),
);
// $wgCirrusSearchMergeSettings を参照
StructuredDiscussions search config setting - akin to CirrusSearch

See CirrusSearch.php for documentation for these params, which have similar

variable names (s/FlowSearch/CirrusSearch/)

$wgFlowSearchIndexAllocation
$wgFlowSearchIndexAllocation = array(
	'include' => array(),
	'exclude' => array(),
	'require' => array(),
);
// $wgCirrusSearchIndexAllocation を参照
StructuredDiscussions search config setting - akin to CirrusSearch

See CirrusSearch.php for documentation for these params, which have similar

variable names (s/FlowSearch/CirrusSearch/)

$wgFlowSearchEnabled false This allows running StructuredDiscussions without the search functionality. Right now, it's because the search functionality isn't ready for production, but we need to test it locally. We can decide later (after it's in production) whether to get rid of this setting. For example, this controls whether ApiFlowSearch is available.
$wgFlowAbuseFilterGroup 'flow' Custom group name for AbuseFilter

Acceptable values:

  • a specific value for flow-specific filters
  • 'default' to use core filters; make sure they are compatible with both core and StructuredDiscussions (e.g. StructuredDiscussions has no 'summary' variable to test on)
  • false to not use AbuseFilter
$wgFlowAbuseFilterEmergencyDisableThreshold 0.10 AbuseFilter emergency disable values for StructuredDiscussions
$wgFlowAbuseFilterEmergencyDisableCount 50 AbuseFilter emergency disable values for StructuredDiscussions
$wgFlowAbuseFilterEmergencyDisableAge 86400 // One day. AbuseFilter emergency disable values for StructuredDiscussions
$wgFlowAjaxTimeout 30 Timeout for StructuredDiscussions's AJAX requests (only affects ones that go through flow-api.js), in seconds
$wgFlowCoreActionWhitelist array( 'info', 'protect', 'unprotect', 'unwatch', 'watch', 'history', 'wikilove', 'move', 'delete' ); Actions that must pass through to MediaWiki on StructuredDiscussions-enabled pages
$wgFlowServerCompileTemplates false When set to true StructuredDiscussions will compile templates into their intermediate forms on every run. When set to false Flow will use the versions already written to disk. Production should always have this set to false.
$wgFlowEventLogging false Enable/disable event logging

システムメッセージ

Using the "Source editing" option on StructuredDiscussions boards makes visible the help text "ウィキテキストはマークアップを使用、また、いつでも結果をプレビューできます。". The "uses markup" part is linked through the system message MediaWiki:Flow-wikitext-editor-help-uses-wikitext which makes use of an interwiki link to MediaWiki.org.

In some cases, this interwiki link, instead of pointing to Help:Formatting on MediaWiki.org, points to a (usually non-existent) Help:Formatting page on the host Wiki.

This can be corrected by changing the interwiki link on MediaWiki:Flow-wikitext-editor-help-uses-wikitext to an external link such as
[https://www.mediawiki.org/wiki/Help:Formatting uses markup].

トラブルシューティング

Flow が思ったように使えませんか? 問題の原因により、修正方法が変わります。

Custom-Namespace 宣言の順序が間違っている

Flow 宣言はカスタムの名前空間名の後に 記述しなければなりません。 正しい順序:

define("NS_PORTAL_TALK", 3005); 
$wgExtraNamespaces[NS_PORTAL_TALK] = "Portal_Talk"; 
$wgNamespaceContentModels[NS_PORTAL_TALK] = 'flow-board';

Wrong Native Constants

Talk pages in the Main namespace are defined as NS_TALK, not NS_MAIN_TALK

The correct declaration is:

$wgNamespaceContentModels[NS_TALK] = 'flow-board';

Non-Registered Extension Constants

Extension:Page Forms namespace constant is supposed to be PF_NS_FORM_TALK. But that constant does not work in the Flow declare-- you must use the actual number: 107. This works:

$wgNamespaceContentModels[107] = 'flow-board';

It's unknown to this author whether Page_Forms failed to register its constants correctly, or whether all extension must use numbers (not constants) with Flow. See list of some other extension namespace constants.

Old Remnants

If you're correctly getting Flow on all talk-pages in a namespace, except for one page in that namespace, there may be remnant junk in the talk page (even if it appears empty). Do the following:

  1. Browse to the talk page that won't load Flow, e.g.: Portal_Talk:Welcome
  2. Delete the Talk page using the Delete tab.
  3. Go to the content page for that talk page, e.g.: Portal:Welcome
  4. Click Discuss.
  5. You get Flow.

アーキテクチャ

Flow/Architecture を参照してください。

スパム

See Extension:StructuredDiscussions/Spam for more information on how to fight spam in Flow.

Moderation

See Extension:StructuredDiscussions/Moderation for more information on moderation in Flow.

エクスポートとインポート

Flow のデータをエクスポートする管理スクリプトがあり、Manual:DumpBackup.phpに類似します。

php extensions/Flow/maintenance/dumpBackup.php

タスク T114703 - インポートのヒントをいくつか示します。