Extension:StructuredDiscussions/ja

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

この拡張機能は以前はFlowとして知られており、いくつかの場所(Git リポジトリなど)での名前はまだそれを反映しています.

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

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

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

依存関係

 * 必須
 * - 通知用 (例：投稿への返事)
 * 対象のキャッシュが必要です. その実行には memcach (汎用の分散型メモリキャッシュシステム) の使用が推奨されます. 現在、Redis を使うと問題が発生するかもしれません.
 * - 自動的にインストールされるテンプレートに対応 (例＝#time)
 * Special:EnableStructuredDiscussions 対応に必要で、名前空間のコンテンツモデルを変更しても、同名の名前空間がすでにある場合の障害を予防します (StructuredDiscussionsへの入力もしくは出力のどちらでも).


 * 強く推奨


 * Parsoidは投稿をHTML形式として保存し、パフォーマンスを改善. WMF（ウィキメディア財団）のウィキの設定がこうなっているからで、現状ではもっともテストが行き届いた設定です.  MediaWiki-Vagrantを使用している場合、StructuredDiscussionsを有効にすると Parsoid が有効になり、形式を「html」に設定します.


 * 省略可能


 * - 利用者のトークページで選択制のベータ機能を利用するため.
 * - 人間にわかりやすい「3日前」のようなタイムスタンプを使用
 * - ビジュアル編集機能 VisualEditor への対応
 * バグ? ビジュアルエディタをインストールしてある場合 (例：OOUIを提供するため) は、たとえ有効にしていなくても StructuredDiscussions が Parsoid を呼び出そうとする現象
 * StructuredDiscussions は、、と統合します. 詳細はをご参照ください
 * StructuredDiscussionsはをインストールした環境で統合します.
 * - 投稿した利用者に「感謝」を送信
 * - アクセス解析

インストールの確認
StructuredDiscussions を有効にしたページのどれかを開き (を参照)、話題の追加やその見出しの編集を試してください.

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

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

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

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

mwscript が未設定の場合は、 を と入れ替えます.

上記の後に、特定の名前空間で を設定します. 例：

グローバルな設定変更してはダメです.

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

ご利用のwikiのすべてのページで StructuredDiscussions を無効にする方法はをご参照ください.

Parsoid 設定
StructuredDiscussions は Parsoid または RESTBase サービスに接続するため、バーチャル REST サービスを使います. ご利用のウィキで拡張機能を読み込んだ場合、これの設定はすでに済んでいる可能性があります. で以下を探します.

単体のParsoid は複数のウィキを取り扱います. Parsoid の  設定はお使いのウィキの設定を Parsoid に指定します. 既定ではが命名するホスト名に設定されるものの、任意の文字列を選ぶこともできます. 旧版の Parsoid でも固有の「接頭辞」を用いてこのサーバを特定します. ここにそれをリストする必要があるかもしれません.

Parsoid をあらかじめ適合するように設定する必要があります. Parsoid の の1行を使い次のように記述します.

ここでも Parsoid 設定で「domain」（ドメイン）属性はオプションです. 指定しないと既定で 属性で採用するホスト名を採用します. 「prefix」（接頭辞）属性も除去可能ですが、旧版の Parsoid を利用する場合は例外です. Parsoid の  に記述された   と   がご利用のウィキの   と一致することを確認します.

詳細はParsoid/Setup#Configuration をご参照ください.

「入れ子の関数の最大レベル「100」に達したため、中止します」
このエラーが表示された場合、おそらく . において  の設定が必要です

「例外を発見：CASがXyz で実行しない」状態
StructuredDiscussions は と  (APCBagOStuff)などのキャッシュした実行でCASを伴わないものを実施します. 変更し、たとえばmemcachedをインストールし を設定するなど、違うキャッシュを使う必要があるかもしれません.

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

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

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

というスクリプトはこの名前空間の変換と有効化を自動化します. 詳細はFlow/Converting talk pages参照. これはどちらかというと WMF固有であり、実行前にご利用のデータベースをまずバックアップし、操作の仕方を調べてください. 別の というスクリプトはLiquidThreadsページとスレッドをFlowのボードと話題に変換します. 注意事項はFlow/Converting LiquidThreadsを参照.

Flow はTopic:名前空間を追加します. Extension default namespacesを参照. これと衝突する既存のページの有無は、Special:PrefixIndex/Topic:で確認してください. 見つかった場合は管理スクリプト を走らせます.

システムメッセージ
StructuredDiscussions のボードでソース編集 オプションを使うと、ヘルプ文の を表示できます. 「マークアップを使用」の部分のリンク先はシステムメッセージMediaWiki:Flow-wikitext-editor-help-uses-wikitextを介し、MediaWiki.orgへのウィキ間リンクを利用します.

場合によっては、このウィキ間リンクはMediaWiki.orgでを指す代わりに、ホスト先のウィキで（通常は存在しない）Help:Formattingページを指します. その修正はMediaWiki:Flow-wikitext-editor-help-uses-wikitextのウィキ間リンクを外部リンクとして. のように書き換えます.

トラブルシューティング
Flow が思ったように使えませんか？ 問題の原因により、修正方法が変わります.

Custom-Namespace 宣言の順序が間違っている
Flow 宣言はカスタムの名前空間名の後に 記述しなければなりません. 正しい順序：

間違ったネイティブの定数
メインの名前空間では と定義されるトークページの定数は、 ではありません.

正しい宣言とは：

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

登録のない拡張機能の定数
名前空間の定数は になる見込みです. ただしその定数は Flow 宣言では無効です -- そこで実際の数字を使う必要があります: 107. するとその作用は次のとおりです.

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

筆者には、Flow に関してPage_Formsが定数を正しく登録しない理由、あるいは拡張機能 すべてで (定数の代わりに) 数字を使うべきか原因は不明です. 他の名前空間用の定数の一覧をご参照ください.

古い名残
特定の名前区間のトークページすべてできちんと Flow が働くようになり、その名前空間であるページ のみ例外だったとして、トークページにジャンクの名残があるのかもしれません（見た目には何もないように見えても. ） 次の処理をします.


 * 1) Flow を読み込まないトークページを閲覧します. たとえば： Portal_Talk:Welcome
 * 2) 削除タブを使い、トークページを削除します.
 * 3) そのトークページが付いたコンテンツのページを開きます. 例： Portal:Welcome
 * 4) 「Discuss」をクリックします.
 * 5) すると Flow が有効になります.

アーキテクチャ
Flow/Architecture を参照してください.

スパム
FlowFlow のスパム対策詳細は をご参照ください.

モデレーション
Flowにおけるモデレーションの詳細については、を参照してください.

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

- インポートのヒントをいくつか示します.