【问题标题】:What is the most efficient way to check whether a template exist within the contents of a Mediawiki article?检查 Mediawiki 文章内容中是否存在模板的最有效方法是什么?
【发布时间】:2013-07-04 00:10:42
【问题描述】:

我查看了 SQL 数据库中的“文本”表,发现页面内容的字段相当复杂。试图使用 WhatLinksHere 但让自己陷入了更大的混乱。

从 ReplaceText 扩展以及 Search php 文件来看,我相信一定有一个简单的方法可以使用。但是这些文件对我来说确实看起来很神秘,因为它们引用了其他一些文件。我想知道是否有人可以帮助我解决这个问题。

(P/S:我查看了“pagelinks”表,只看到了 pl_from。想知道为什么没有 pl_to?)

【问题讨论】:

    标签: php mysql mediawiki


    【解决方案1】:

    模板嵌入记录在templatelinks table,而不是pagelinks

    两个表的格式相同:tl_from字段包含链接/转入页面的页面ID,而tl_namespacetl_title字段包含命名空间和规范化(DB键形式,即下划线对于空格)被嵌入的目标页面的标题。

    对于模板链接,目标namespace通常为 10(模板),但不一定总是这样:任何命名空间中的页面都可以使用语法 {{Namespace:Title}}(或只需 {{:Title}} 用于主命名空间中的页面)。

    这种不对称的原因是,虽然 transcluding 页面必须存在,但不能保证被嵌入的模板确实存在。因此,目标页面可能没有页面 ID,因此我们需要使用其标题(和命名空间)来引用它。

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 1970-01-01
      • 2020-03-23
      • 2011-10-28
      • 2020-01-31
      • 2013-07-04
      • 2017-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多