MediaWiki的自定义浮动工具栏

时间:2013-12-14 21:12:01

标签: mediawiki

是否可以使用以下按钮/功能在 Mediawiki 的每个页面顶部进行浮动(即使您向下滚动)也可以自定义工具栏:"home page",{{ 1}},"previous page""next page""reload page"

有点像这样:

enter image description here

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。

我将假设你知道如何自己设计这样一个工具栏的HTML和CSS代码,而你只想将它添加到MediaWiki皮肤。为此,您有几种选择。

  • 可能最简单的方法是为你的维基的默认皮肤编辑皮肤模板文件(例如皮肤/ MonoBook.php或皮肤/ Vector.php),然后在那里添加适当的HTML / PHP代码。您还可以检查这些文件以获取代码示例。有关自定义MediaWiki外观的更多信息,请参阅skinning tutorial

    此选项的主要缺点是,无论何时升级MediaWiki,您对这些文件所做的任何更改都将被覆盖。当然,您可以随时保存diff个自定义项,并在每次升级后重新应用。

  • 或者,如果您只想在每个页面的末尾注入一堆HTML,则可以使用SkinAfterContent挂钩(通过编写简单的自定义extension,甚至只需将hook直接附加在LocalSettings.php中即可。由于您可能正在为工具栏使用CSS固定定位,因此在页面HTML中注入的 where 并不重要。

  • 最后,对于具有现代sidebar结构(MonoBook,Modern,Vector等)的皮肤,一个优雅的解决方案是将自定义“portlet”添加到侧边栏(使用{ {3}}挂钩,或者只需在wiki上编辑SkinBuildSidebar并在网站CSS中设置样式,使其看起来像您想要的工具栏。 MediaWiki自己的页面选项卡和顶级用户链接以这种方式实现,因此它当然是可能的。这也允许您将标准侧边栏搜索框移动到新工具栏。

对于工具栏中所需的特定元素,大多数相关方法应位于MediaWiki:SidebarSkin和/或Linker类中。当然,对于“下一页”/“上一页”页面链接,您首先必须确定您希望这些链接到做什么;默认情况下,MediaWiki没有这样的概念。