我已经开始使用 MediaWiki 开发一个网站。我设计了一个上传页面(我没有使用MediaWiki的默认上传页面Special:upload
)。我手动创建了它,并执行了上传图像和在单独的表(不是 MediaWiki 的现有表)中存储详细信息等操作。
现在我需要的是必须将特定页面中的图像详细信息组存储在 MediaWikidatabase
中,以获取该图像组的历史记录、修订版本等,我发现上传的图片存储在下表中:
- 图像 - 当前版本
- oldimage — 适用于旧版本
页面存储在下表中:
- 页面 - 当前页面详细信息
- 修订 - 针对旧页面版本
谁能解释一下如何将内容存储到 MediaWiki 数据库中,以及如何手动从数据库中获取所有 MediaWiki 功能?
最佳答案
如果我理解正确的话,您有一个文件已通过某个不属于 MediaWiki 的脚本上传到服务器,并且您希望将其导入 MediaWiki。
现有 maintenance script叫importImages.php它做了非常类似的事情,所以你可以看一下它的 source看看它是如何做到的,或者您甚至可以直接使用该脚本。
无论如何,如果遍历源代码看起来令人畏惧,重要的事情只包含两个步骤:
- 获取LocalFile使用 wfLocalFile() 的对象函数,并且
- 调用
publish()upload()方法。
importImages.php 代码还做了一些额外的事情来猜测文件的 MIME 类型并根据该类型设置一些 HTTP header 。我不确定为什么publish()方法不能或不应该自己做到这一点,但既然importImages.php做到了,你可能也应该这样做。 *耸肩*
编辑:您可能不想调用publish(),而是调用upload() ,它负责 MIME 类型嗅探内容和一堆其他细节,例如创建文件描述页面。
关于php - 存储内容,例如 MediaWiki 中的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18822542/