【问题标题】:Exclude pages from Mediawiki recent changes从 Mediawiki 最近的更改中排除页面
【发布时间】:2011-06-20 18:41:59
【问题描述】:

有谁知道如何从 mediawiki 的“最近更改”页面中排除页面?我有一个测试页面,用户可以在其中玩弄语法和格式等,但不希望每一个小改动都显示在最近的更改页面上。

谢谢

【问题讨论】:

    标签: mediawiki


    【解决方案1】:

    我的解决方案是一个单独的 wiki 实例。设置起来并不难,然后您也可以单独测试功能更改。

    【讨论】:

      【解决方案2】:

      您可以使用SpecialRecentChangesQuery 挂钩按标题排除特定页面,如下所示:

      $wgHooks['SpecialRecentChangesQuery'][] = 'rcExcludeSandbox';
      
      function rcExcludeSandbox( $conds ) {
          $dbr = wfGetDB( DB_SLAVE );
          $conds[] = 'rc_title != ' . $dbr->addQuotes( 'Sandbox' );
          return true;
      }
      

      这将防止页面“沙盒”上的所有更改出现在 Special:RecentChanges 中。

      【讨论】:

      • 我将此代码添加到 LocalSettings.php 并且它有效!谢谢。我不确定这是最好的地方吗?有什么建议吗?
      【解决方案3】:

      如果您不介意编写一些 PHP,请考虑使用 http://www.mediawiki.org/wiki/Manual:Hooks/OldChangesListRecentChangesLine 挂钩。如果您将 $s 设置为给定页面的空字符串,则这些编辑不应出现在 Special:RecentChanges 中。

      【讨论】:

      • 你能再解释一下吗?
      【解决方案4】:

      最简单的方法是将您的页面放在不同的命名空间中,而不是默认搜索它。不幸的是,当前版本的 Mediawiki 中没有该功能。

      我认为你必须使用Namespace Manager,它看起来还没有完成,但你可以试一试。似乎计划将其添加到未来的版本中。

      您可以只创建一个名为Sandbox 的页面,然后允许用户编辑该页面。如果你使用Enhanced Recent Changes,所有这些编辑都会一起出现,所以不会太打扰你。

      【讨论】:

      • 谢谢,我正在使用 mw 1.15.1,目前没有太多选择来更改版本。我确实使用了增强的功能,并且在主页上还有一个最近更改页面的列表。如果用户在搞乱我的测试页面,那么编辑也会显示在这里。我不希望他们这样做。
      • 是的,将其集成到现有的 Mediawiki 安装中需要做很多工作。
      • 例如,在 mediawiki.org 上,沙盒已包含在最近的更改中,因此如果 Joshua Lerner 的建议不起作用,您可能需要处理它。
      猜你喜欢
      • 2023-04-03
      • 2011-01-26
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      • 2011-12-06
      • 2014-10-25
      相关资源
      最近更新 更多