我正在构建一个Mediawiki网站,其中包含几千个Bot生成的文章。我希望用户能够编辑每篇文章的下半部分,但不能编辑机器人生成的部分。
我找到了一个名为ProtectSection的废弃扩展程序,但是我没有能力更新它以使用当前的Mediawiki版本。
我正在考虑对Bot生成的文章进行保护,然后将其转换为用户可编辑的文章。如果我这样做,我可以隐藏来自搜索引擎的原始Bot生成的文章,以及可以在维基中导航吗?
此外,我希望用户能够参考机器人生成的文章的先前版本,因为他们的文本将由机器人不时更新。如果我转换并隐藏机器人生成的文章,我假设他们的历史将无法访问。如果我可以保留机器人生成的文章,并且其中包含用户可编辑的部分,那么这不会成为问题。
答案 0 :(得分:1)
我得到了一个坏消息。使文章的一部分受到保护真的很难。目前的mediawiki架构不允许从头开始。
我建议你做的是创建custom namespase并将所有机器人的文章放在那里。
// Define constants for my additional namespaces. define("NS_FOO", 3000); // This MUST be even. define("NS_FOO_TALK", 3001); // This MUST be the following odd integer. // Add namespaces. $wgExtraNamespaces[NS_FOO] = "Foo"; $wgExtraNamespaces[NS_FOO_TALK] = "Foo_talk"; // Note underscores in the namespace name.
阻止普通用户编辑此自定义命名空间here is some info。但允许用户观看此页面的历史记录。
# Only allow autoconfirmed users to edit Project namespace $wgNamespaceProtection[NS_PROJECT] = array( 'autoconfirmed' ); # Don't allow anyone to edit non-talk pages until they've confirmed their # e-mail address (assuming we have no custom namespaces and allow edits # from non-emailconfirmed users to start with) # Note for 1.13: emailconfirmed group and right were removed from default # setup, if you want to use it, you'll have to re-enable it manually $wgNamespaceProtection[NS_MAIN] = $wgNamespaceProtection[NS_USER] = $wgNamespaceProtection[NS_PROJECT] = $wgNamespaceProtection[NS_IMAGE] = $wgNamespaceProtection[NS_TEMPLATE] = $wgNamespaceProtection[NS_HELP] = $wgNamespaceProtection[NS_CATEGORY] = array( 'emailconfirmed' ); # Only allow sysops to edit "Policy" namespace $wgGroupPermissions['sysop']['editpolicy'] = true; $wgNamespaceProtection[NS_POLICY] = array( 'editpolicy' );
您已经知道的最后一步 - 使用Tranclution。