在工作中,我们有一个部门维基(运行Mediawiki).不幸的是,有些人在没有登录的情况下编辑,这使得很难找到编辑来询问有关内容的问题.
有两种策略可以改善这一点
对于这部分,欢迎任何提示.但当然,奖励行为总是存在风险.
我知道这必须保持低水平,否则它会阻止任何编辑.但有点烦人的东西会很好.
[更新]我知道可以禁止匿名编辑,但这会给任何首次贡献带来很大障碍(特别是对于我们部门以外的人!),所以我不认为这是一个选项.[/更新]
[update2]使用LDAP或Active Directory无法解决问题,因为外部承包商也可以访问和使用wiki.[/ UPDATE2]
[update3]我不再为这家公司工作了.这并不意味着我完全对这个问题失去了兴趣,但从我目前的兴趣点来看,最有价值的部分是"你忘了登录吗?" 以下部分,我将根据问题的这一部分接受答案.[/ UPDATE3]
一个想法是为匿名用户提供额外的确认步骤 - "你真的确定要匿名提交吗?",尽管有这样一个问题,人们会有放弃或拒绝编辑的风险.但是,如果这个问题以更外交的方式重新措辞为"你忘了登录吗?" 我认为这似乎更容易接受.除此之外,还将捕获作者确实忘记登录的情况,但实际上希望将他/她的贡献归功于他/她的用户.最后一点本身就是想要它的充分理由.
这可能吗?
另一个令人讨厌的想法是在"保存页面"之后添加一个额外的强制延迟,显示类似"如果你已经登录就不必等待x秒".选择正确的x是很困难的,因为如果它很高,它将成为一个障碍,如果它太低可能没有任何区别.但后来我开始思考,从零开始然后在给定时间范围内给定IP地址的每次匿名编辑添加一秒延迟呢?这样就没有开始使用维基的障碍了,当延迟变得越来越重要时,用户已经贡献了很多,所以我认为结果更可能是编辑最终创建用户而不是放弃.这假设IP地址相当静态,
这可能吗?
Geo*_*ker 17
您可以在Mediawiki中关闭匿名编辑,如下所示:
编辑LocalSettings.php并添加以下设置:
$wgDisableAnonEdit = true;
Run Code Online (Sandbox Code Playgroud)编辑包含/ SkinTemplate.php,找到$fname-edit并更改代码看起来像这样(即,基本上在wfProfileIn()和wfProfileOut()函数之间包装以下代码):
wfProfileIn( "$fname-edit" );
global $wgDisableAnonEdit;
if ( $wgUser->mId || !$wgDisableAnonEdit) {
// Leave this as is
}
wfProfileOut( "$fname-edit" );
Run Code Online (Sandbox Code Playgroud)
接下来,您可能想要禁用部分的[编辑]链接.要执行此操作,请打开includes/Skin.php并搜索editsection.你会看到类似的东西:
if (!$wgUser->getOption( 'editsection' ) ) {
Run Code Online (Sandbox Code Playgroud)
改为:
global $wgDisableAnonEdit;
if (!$wgUser->getOption( 'editsection' ) || !$wgDisableAnonEdit ) {
Run Code Online (Sandbox Code Playgroud)
现在,匿名用户已禁止部分编辑.
| 归档时间: |
|
| 查看次数: |
1283 次 |
| 最近记录: |