如何在HTML表单输入的基础上使用预加载的文本创建一篇新的MediaWiki文章


How do you create a new MediaWiki article with preloaded text based on HTML form input?

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

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

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

最小代码:

$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' );
}