如何让 Topbar 扩展与最新的 MediaWiki 一起工作?

How can I make the Topbar extension work with the newest MediaWiki?

我 运行 一个使用 Topbar extension 的 MediaWiki 站点。我最近从 MediaWiki 的主分支将安装升级到最前沿的版本:版本 1.28.0-alpha (91e56cc)。

之后,Topbar 扩展程序不再有效:

后一个问题可能是我 CSS 的问题(我不知道),但间歇性行为让我担心。因此,首要任务是确保顶部栏 div 至少每次都出现。

这个扩展只是一个小的 javascript,它应该在页面加载时 运行,在顶部附近添加一大块 HTML (<div id="mw-writh-topbar" ...>) .这样做 using a jQuery function.

不幸的是,我并不是真正的 Web 开发人员,所以即使是这个简单的例程也有点难以理解。

这是我所知道的:

所以:我该如何调试它?

您需要转换代码以使用 ResourceLoader - 目前该扩展使用 OutputPage 的 addScriptFile() 添加代码,并且假设 jQuery 在它运行时可用。从 MediaWiki 1.26 开始,所有内容都是异步加载的,所以这不起作用,因此需要将其转换为新系统。

操作说明在这里:

两个注意事项:

  1. 从 MediaWiki 1.25 开始,扩展应该使用所谓的“extension registration”而不是遵循上述手册,但这可能需要更多的工作和专业知识。
  2. 丑陋的 hack 警告:您可以忽略所有这些,只需使用 RLQ.push( function(){ /* All of the code here */ } ); 将代码包装在 JS 文件中。这会将它全部推入 ResourceLoader 的队列,因此它将在 jQuery 可用后加载。我不推荐这个,但为了完整起见在这里展示它。