0

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

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

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

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

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

编辑和进度更新:

好吧...这是我如何添加它的更新。我在 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 代码,以便在存在表单时链接到“使用表单编辑”页面?

4

1 回答 1

0

https://www.mediawiki.org/wiki/Extension:Semantic_Forms/The_%22edit_with_form%22_tab有很多关于如何使编辑选项卡显示为您想要的信息。

尽管如此,SemanticForms 扩展似乎正在使用 SkinTemplate::buildContentNavigationUrls() 中调用的 SkinTemplateNavigation 挂钩,因此请确保您没有覆盖该函数。

于 2013-08-26T19:57:21.237 回答