创建Mediawiki编辑文章按钮

时间:2013-08-25 05:56:29

标签: mediawiki

我为mediawiki创建了一个基于矢量的自定义皮肤。我已经在顶部显示了VIEWS选项卡,其中显示了文章,编辑,历史记录和操作。除了此选项卡,我还尝试添加一个新的“编辑此文章”按钮,以显示在页面的右上角。我不知道如何将编辑网址添加到此按钮。目前,我已经硬编码了这样:

<a class="edit_article_button" href="?action=edit" title="Edit This Article">Edit Article</a>

上述硬编码方法并不好,并且在所有页面上都无法正常工作。当我将编辑按钮更改为使用语义表单扩展的表单按钮进行编辑时,它也不兼容。是否有一种方法可以为此编辑按钮添加默认链接,该链接适用于相关的mediawiki文章?当我查看皮肤时,编辑按钮显示为renderNavigation函数的一部分,这是不好的,因为它显示所有列表,包括历史记录等。:

<?php $this->renderNavigation( array( 'VIEWS' ) ); ?>

这是我遇到麻烦的地方,无法找到有关如何操作的信息。有人可以帮助我创建一个单独的编辑文章按钮吗?

EDIT&amp;进展更新:

好吧......以下是我如何添加它的更新。我在renderNavigation函数中添加了以下内容,它可以工作:

    case 'EDIT':
            $navTemp = $this->data['content_actions']['edit'];
            if ($navTemp) { ?>
                    <a href="<?php echo $navTemp['href']; ?>" class="custom_edit_button" title="Edit This Article"><?php echo $navTemp['text']; ?></a>
            <?php } 
            break;

我在html模板中使用它来调用它:

         <?php $this->renderNavigation( array('EDIT')); ?>

我还为“custom_edit_button”添加了css,以进一步设置按钮的样式。

使用语义表时的下一个障碍:虽然上述方法有效,但会显示“编辑源”按钮而不是“使用表单编辑”按钮。我实际上希望它在该文章中存在表单而不是编辑源选项时显示“使用表单编辑”选项。我已经在LocalSettings.php

中有了这个
 //The following settings are to edit the edit with form options and removing the default edit option.
 $sfgRenameEditTabs = true;

$wgGroupPermissions['*']['viewedittab'] = false; // Hiding the regular edit tab for all users
$wgGroupPermissions['sysop']['viewedittab'] = true; //Showing the regular edit tab (renamed to edit source) to sysops only.

现在,我如何更改上面的PHP代码,以便在存在表单时链接到“使用表单编辑”页面?

1 个答案:

答案 0 :(得分:0)

https://www.mediawiki.org/wiki/Extension:Semantic_Forms/The_%22edit_with_form%22_tab有很多关于如何根据需要显示编辑标签的信息。

但是,看起来SemanticForms扩展使用了SkinTemplate :: buildContentNavigationUrls()中调用的SkinTemplateNavigation挂钩,所以请确保你没有覆盖该函数。