Manual:プレビューの強制
強制プレビューとは特定の個人やグループが最低1回はプレビューしないとウィキページを保存できないようにするJavaScriptです。
このコードを使用するには、ご利用のウィキのMediaWiki:Common.js pageに追加します。
この方法は完璧ではない点にご注意ください。 利用者がブラウザでJavaScriptを無効にしてあると、プレビューを強制されることはありません。 この方針を徹底したい場合には、必ずExtension:ForcePreview を参照します。
NOTE: some of these scripts are outdated and use addOnloadHook
that is deprecated.
MediaWiki 1.23以降
// 強制プレビューと編集の要約 - 開始
if (mw.config.get("wgAction") === "edit")
$.when(mw.loader.using("user.options"), $.ready).then(function () {
var $wpSave = $("#wpSave"),
$wpPreview = $("#wpPreview"),
saveVal = $wpSave.val(),
classNames = "oo-ui-widget-enabled oo-ui-flaggedElement-progressive oo-ui-flaggedElement-primary";
if (!mw.user.options.get("forceeditsummary") || mw.user.options.get("previewonfirst"))
mw.loader.using("mediawiki.api", function () {
new mw.Api().saveOptions({forceeditsummary: 1, previewonfirst: 0});
});
if (!$("#wikiPreview,#wikiDiff").is(":visible") && $wpSave.length && $wpPreview.length) {
$wpSave.prop("disabled", true)
.val("Save page (use preview first)")
.parent().removeClass(classNames).addClass("oo-ui-widget-disabled");
$wpPreview.one("click", function (e) { // 再有効化
$wpSave.prop("disabled", false)
.val(saveVal)
.parent().removeClass("oo-ui-widget-disabled").addClass(classNames);
}).parent().addClass(classNames);
}
});
// 強制プレビューと編集の要約 - 終了
MediaWiki 1.17 以降
Not right working with LivePreview (v.1.17) and OOUI (v.1.23).
// -------------------------------------------------------------------------------
// 強制プレビュー JavaScript コード - 開始
//
// 強制プレビューを回避するグループを指定するには、
// permittedGroups配列にグループ名を入力します。
// 例:
// var permittedGroups = []; // すべての人が対象
// var permittedGroups = [ "user"]; // ログイン利用者に許可
// var permittedGroups = [ "sysop", "bureaucrat"]; // 管理者とビューロクラットに許可
// -------------------------------------------------------------------------------
var permittedGroups = [];
function forcePreview() {
if ( mw.config.get( "wgAction" ) !== "edit" ) return;
if ( mw.config.get( "wgUserGroups" ).filter(function(group) {
return permittedGroups.indexOf(group) > -1;
}).length ) return;
var saveButton = document.getElementById( "wpSave" );
if ( !saveButton ) return;
saveButton.disabled = true;
saveButton.value = "Save page (use preview first)";
saveButton.style.fontWeight = "normal";
document.getElementById("wpPreview").style.fontWeight = "bold";
}
jQuery(document).ready( forcePreview );
// -----------------------------------------------------
// 強制プレビュー JavaScript コード - 終了
// -----------------------------------------------------
MediaWiki 1.14 以降向け
下記の設定で、プレビューモードを強制する対象をコントロールします。 対象とする利用者グループを1、2件設定して、プレビューを回避して、直接、保存できるようにします。 利用者グループに強制プレビュー回避を許可するには、コメント欄に表示したように、JavaScript コードを使い、グループ名をpermittedGroups配列に記入します。
// -------------------------------------------------------------------------------
// 強制プレビュー JavaScript コード - 開始
//
// 強制プレビューを回避するグループを指定するには、
// permittedGroups 配列にグループ名を入力します。
// 例:
// var permittedGroups = []; // すべての人が対象
// var permittedGroups = [ "user"]; // ログイン利用者に許可
// var permittedGroups = [ "sysop", "bureaucrat"]; // 管理者とビューロクラットに許可
// -------------------------------------------------------------------------------
var permittedGroups = [];
function forcePreview()
{
if( wgAction !== "edit") return;
if( wgUserGroups === null) {
wgUserGroups = [];
}
if( wgUserGroups.filter(function(group) {
return permittedGroups.indexOf(group) > -1;
}).length ) {
return;
}
var saveButton = document.getElementById("wpSave");
if( !saveButton )
return;
saveButton.disabled = true;
saveButton.value = "Save page (use preview first)";
saveButton.style.fontWeight = "normal";
document.getElementById("wpPreview").style.fontWeight = "bold";
}
addOnloadHook(forcePreview);
// -----------------------------------------------------
// 強制プレビュー JavaScript コード - 終了
// -----------------------------------------------------
過去のバージョン
下記のスクリプトはfr.wikipedia.org
からMarc Mongenet作成のスクリプトに基づいています。
wgUserGroups作成強制プレビューにはMWバージョン1.10以降が必要
function forcePreview() {
if (wgUserGroups === "user" || wgAction !== "edit") return;
saveButton = document.getElementById("wpSave");
if (!saveButton) return;
saveButton.disabled = true;
saveButton.value = "Save page (use preview first)";
saveButton.style.fontWeight = "normal";
document.getElementById("wpPreview").style.fontWeight = "bold";
}
addOnloadHook(forcePreview);
特定の利用者グループを例外に設定する場合、。== (等しい)記号を!= (等しくない)に変更するだけです。
if (wgUserGroups !== "user" || wgAction !== "edit") return;
一般的な選択肢として「user」、「"bureaucrat」、「sysop」があり、個別の設定によりもっと増やすことができます。
Marc Mongenetによる強制プレビューwgUserName開発、にはMWバージョン1.6以降が必要
/* 匿名利用者に対する強制プレビュー */
/* 2006年フランス語版ウィキペディアのMarc Mongenet 作成 */
function forcePreview() {
if (wgUserName !== null || wgAction !== "edit") return;
saveButton = document.getElementById("wpSave");
if (!saveButton) return;
saveButton.disabled = true;
saveButton.value = "Save page (use preview first)";
saveButton.style.fontWeight = "normal";
document.getElementById("wpPreview").style.fontWeight = "bold";
}
addOnloadHook(forcePreview);
/* この機能の終わり */
関連項目
- Manual:よくある質問
- Extension:ForcePreview - 同じ機能を実行するMediaWiki拡張機能で、javascriptで無効にしても回避できないもの