Manual:プレビューの強制

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Force preview and the translation is 100% complete.
Other languages:
English • ‎español • ‎français • ‎polski • ‎中文 • ‎日本語

強制プレビューとは特定の個人やグループが最低1回はプレビューしないとウィキページを保存できないようにするJavaScriptです。

このコードを使用するには、ご利用のウィキのMediaWiki:Common.js pageに追加します。

この方法は完璧ではない点にご注意ください。 利用者がブラウザでJavaScriptを無効にしてあると、プレビューを強制されることはありません。 この方針を徹底したい場合には、必ずExtension:ForcePreview を参照します。

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);

/* この機能の終わり */

関連項目