Mediawiki页面是否允许用户留下匿名评论?

Mediawiki页面是否允许用户留下匿名评论?,mediawiki,Mediawiki,这看起来真的很简单…但如果我能找到一个扩展来实现这一点,我会被诅咒的 我使用的是Mediawiki 1.18,我真的希望它是一个从主主页链接的页面,作为我的wiki上的任何人的空白页面,能够以匿名方式发布他们的想法,而不会在帖子上显示他们的姓名!我只想在我的wiki的一个页面上使用此功能。所以,总结一下,我只想能够设置一个页面,启用匿名发布 有什么想法吗?(没有双关语!)通过更改通过引用传入的$user参数,应该可以编写一个钩子,将对特定页面的所有编辑都归于不存在的用户,如下所示: 函数匿名化和

这看起来真的很简单…但如果我能找到一个扩展来实现这一点,我会被诅咒的

我使用的是Mediawiki 1.18,我真的希望它是一个从主主页链接的页面,作为我的wiki上的任何人的空白页面,能够以匿名方式发布他们的想法,而不会在帖子上显示他们的姓名!我只想在我的wiki的一个页面上使用此功能。所以,总结一下,我只想能够设置一个页面,启用匿名发布


有什么想法吗?(没有双关语!)

通过更改通过引用传入的
$user
参数,应该可以编写一个钩子,将对特定页面的所有编辑都归于不存在的用户,如下所示:

函数匿名化和boxedits(&$wikiPage,&$user,&$content,&$summary,
$isMinor、$isWatch、$section){
$title=$wikiPage->getTitle();
如果($title->getNamespace()==NS\u项目&&$title->getText()=='Sandbox'){
$user=user::newFromName('Anonymous');
}
返回true;//继续运行其他挂钩
}
$wgHooks['PageContentSave'][]='anonymizeSandboxEdits';
$wgReservedUsernames[]=“匿名”;
将此代码添加到LocalSettings.php会导致对页面“Project:Sandbox”(其中“Project:”是您的项目名称空间名称)的所有编辑都归于不存在的用户“Anonymous”

请注意,PageContentSave挂钩是最近在MediaWiki 1.21中引入的。旧的MediaWiki版本有一个名为的主要等效钩子,它采用基本相同的参数并执行基本相同的操作。如果您仍在运行旧版本的MediaWiki,只需将上面的
'PageContentSave
”替换为
'ArticleSave'
,就可以了

ArticleSave钩子在MW 1.21中已被弃用,但仍保留为向后兼容,因此即使您进行升级,它也应该继续工作。然而,我应该注意到,在未来的MediaWiki版本中,没有任何东西可以保证不会打破这一把戏:虽然替换该钩子中的
$user
对象似乎可以很好地重新分配编辑,但该特定用例并没有被明确支持。未来对MediaWiki代码的更改可能会或多或少地破坏它



另外,我在自己的wiki上尝试过这个(仍然运行mw1.20,所以使用的是ArticleSave版本),它似乎工作正常。一个有点奇怪的副作用是,如果您尝试使用
~~~
对页面进行签名,它将在预览中显示您的真实用户名,但在实际保存页面时,它将替换为“匿名”。也许可以解决这个问题,但这需要(也需要)使用其他在预览时实际运行的钩子。

我想你的意思是用户名/IP地址不应该显示在该页面的编辑历史记录中?这(以及最近的更改)是MediaWiki自动记录它们的唯一地方。这是正确的。我不希望任何用户能够告诉谁写了什么只有这一页。我已经将您提到的代码添加到localsettings.php中,并将pagecontentsave更改为“ArticleSave”,并且wiki运行良好,只是我找不到“Project:Sandbox”页面来测试它!我现在是否需要进入并创建\编辑此页面?您建议我替换哪些变量,比如FREESPEECH作为项目的首选:Sandbox,以及让它显示在左侧的导航窗格中有多容易?任何信息都是传奇!是的,您需要创建页面。如果希望页面名称为“FREESPEECH”,则应将
If
条件替换为
If($title->getNamespace()==NS\u MAIN&&$title->getText()==FREESPEECH')
。()至于将其添加到侧栏,您需要编辑MediaWiki:wiki上的侧栏;添加了以下代码:
function-anonymizeSandboxEdits(&$wikiPage,&$user,&$content,&$summary,$isMinor,$isWatch,$section){$title=$wikiPage->getTitle();if($title->getNamespace()==NS\u项目&&$title->getText()='FREESPEECH'){$user=user::newFromName('Anonymous');}返回true;//继续运行其他挂钩}$wgHooks['ArticleSave'][]='anonymizeSandboxEdits'$wgReservedUsernames[]=“匿名”但版本历史记录中仍然显示了我的名字:(你是在“Project:FREESPEECH”还是仅仅在“FREESPEECH”上试用过它?你的代码中仍然有
NS\u Project
。工作起来很有魅力!!!有没有简单的方法让该页面以某种方式写博客(仅限评论?)所以每次有人发帖都会变成一个单独的帖子?比如在youtube上留言等等。。。