在编辑/移动/删除页面或阻止/解除阻止用户时,我希望执行上述功能之一的每个页面中的摘要字段是强制性的,以便更容易了解其中一项操作背后的动机。
3 回答
众所周知,这会吸引很多贡献,但您可以通过自定义 JavaScript 强制执行它,或者通过在以下位置设置forceeditsummary
为 true 来软强制它$wgDefaultUserOptions
:
// in LocalSettings.php:
$wgDefaultUserOptions = [
'forceeditsummary' => 1
];
启用此选项后,在Save page没有编辑摘要的情况下点击后,您必须Save page再次点击才能保存编辑。页面顶部会显示填写编辑摘要的提醒,但无论如何都会进行第二次保存。
正如我上面所说,经验表明许多编辑在此设置下会丢失。如果您认为人们忘记保存两次,而不仅仅是拒绝填写编辑摘要,您可以使用 MediaWiki 样式表使警告更加明显,例如
#mw-missingsummary {
background-color: #FFFFCC;
color: #000000;
border: 3px double #CC0000;
margin: 0 0 1em;
padding: 0.5em 1em;
}
请注意,默认设置仅用于未注册用户和未自定义首选项的用户。注册用户可以随时覆盖该值:首选项 → 编辑 → 输入空白编辑摘要时提示我。
我刚刚在我从事的一个项目中实现了这个功能。它工作正常,并且与所有内置功能配合得很好,从非常早期的 MediaWiki 版本到 master 分支 (2015-12-13) 的当前版本。
我把这个放在我的LocalSettings.php
:
function forceEditSummary($editor, $text, $section, &$error, $summary) {
// Override the setting so far based on wpIgnoreBlankSummary form
// variable, forceeditsummary user option and whether the page is the
// editor’s own user or talk page:
$editor->allowBlankSummary = false;
return true; // continue processing
}
$wgHooks['EditFilter'][] = 'forceEditSummary';
MediaWiki:Missingsummary 和 MediaWiki:Missingcommentheader 1消息应该被编辑为真实(第二次提交将不再通过)。
我使用EditFilter
钩子来设置allowBlankSummary
编辑器(EditPage
对象)的成员,从而覆盖之前关于编辑是否应该通过空白摘要的决定,或者不。有关原始设置的详细信息,请参见类的源代码。EditPage
有关更多选项(以及强调信息的补充样式missingsummary
),请阅读Nemo 的回答。
1消息在哪里missingcommentheader
使用?我在代码中看到它,但我不知道什么时候$editor->section == 'new'
。可能是我从未使用过的 MediaWiki 的一个功能……</sub>
你可以试试这个扩展:https ://www.mediawiki.org/wiki/Extension:SummaryRequired 。
这个扩展能做什么?
此扩展程序强制用户输入评论。