如何使用基于HTML表单输入的预加载文本创建新的MediaWiki文章?

时间:2015-06-25 23:53:16

标签: php html mediawiki mediawiki-extensions mediawiki-templates

我正在使用MediaWiki创建一个私人wiki,并添加了一个特殊页面,其中添加了HTML以创建一种模板条目页面。当用户提交输入时,我想创建一个新的WikiPage,填写输入文本的格式与我的模板类似。我一直在玩Semantic Forms,它在允许模板/表单操作方面做得很好,但它仍然不是很完美。维基只需要两个主页面模板,所以我想自己创建它们,并为其他人创建一个非常简单的用户界面。我是否可以只使用HTML和PHP来完成此操作,还是需要一些帮助JavaScript?如何从表单中保存数据并以编程方式在PHP中生成新的WikiPage?我已完成new WikiPage(...)并尝试new Article(...),但我认为我仍需要与数据库进行交互。

3 个答案:

答案 0 :(得分:1)

你需要做新的WikiPage()然后再做doEditContent,你可以尝试在扩展https://github.com/mkroetzsch/AutoCreatePage/blob/master/AutoCreatePage.php#L123中查看这个简单的代码,如果没有创建页面,它会自动创建页面。在此记录https://www.mediawiki.org/wiki/Extension:AutoCreatePage

答案 1 :(得分:0)

edit.php可以为您创建一篇文章,源代码简短易懂。

答案 2 :(得分:0)

最小代码:

$title = Title::newFromText( 'Desired page title goes here' );
if ( !is_null( $title ) && !$title->isKnown() && $title->canExist() ){
    $page = new WikiPage( $title );
    $content = ContentHandler::makeContent( 'Page content goes here', $title );
    $page->doEditContent( $content, 'Edit summary goes here' );
}