【问题标题】:Storing a content like a page in MediaWiki像 MediaWiki 中的页面一样存储内容
【发布时间】:2013-09-16 07:30:35
【问题描述】:

我已经开始使用 MediaWiki 开发一个网站。我设计了一个上传页面(我没有使用MediaWiki的默认上传页面Special:upload)。我手动创建了它,并在单独的表(不是 MediaWiki 的现有表)中进行了上传图像和存储详细信息等操作。

现在我需要将图像组存储在特定页面中的详细信息应该存储在MediaWikidatabase 以获取该图像组的历史、修订等,我发现上传的图像正在存储在下表中:

  • 图像 — 当前版本
  • oldimage — 适用于旧版本

页面存储在下表中:

  • page — 查看当前页面详情
  • 修订版 - 适用于旧页面版本

谁能解释一下如何将内容存储到 MediaWiki 数据库中并手动从数据库中获取所有 MediaWiki 功能?

【问题讨论】:

  • (1) 如果您希望自己编码上传信息,请浏览位于 doc.wikimedia.org/mediawiki-core/master/php/html/annotated.html 的 MediaWiki 类文档。好的起点应该是媒体的文件和描述页面的页面。
  • (2) 您也可以要求您的上传表单使用上传 API mediawiki.org/wiki/API:Upload。这将允许您自动化所有这些步骤,让您完全控制上传表单。
  • 您问题中的第二段对我来说没有任何意义。看起来句子的一部分丢失了,或者应该是两个句子一起运行。无论如何,我不太确定你想做什么。如果要将单独上传的图片导入MediaWiki,可以尝试查看maintenance/importImages.php的来源,看看它是如何做到的。

标签: php mysql mediawiki mediawiki-extensions


【解决方案1】:

如果我理解正确,您有一个文件已通过不属于 MediaWiki 的某个脚本上传到服务器,并且您希望将其导入 MediaWiki。

有一个名为importImages.php 的现有maintenance script,它的功能与此非常相似,因此您可以查看它的source 以了解它是如何做到的,或者您甚至可以直接使用该脚本。

无论如何,如果涉水阅读源代码似乎令人生畏,重要的事情只包含两个步骤:

  1. 使用wfLocalFile()函数获取LocalFile对象,然后
  2. 调用publish()upload()方法就可以了。

importImages.php 代码还做了一些额外的工作来猜测文件的 MIME 类型并基于此设置一些 HTTP 标头。我不确定为什么 publish() 方法不能或不应该自己这样做,但由于 importImages.php 这样做,你可能也应该这样做。 *耸耸肩*

编辑:您可能不想调用 publish(),而是调用 upload(),它负责 MIME 类型的嗅探内容和一堆其他细节,例如创建文件描述页面.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2011-07-08
    • 2021-05-21
    相关资源
    最近更新 更多