1

Topbar 拡張機能を使用する MediaWiki サイトを運営しています。私は最近、インストールを MediaWiki のマスター ブランチから最新バージョンのバージョン 1.28.0-alpha (91e56cc) にアップグレードしました。

その後、Topbar 拡張機能は機能しなくなります。

  • 通常、トップバーの div はまったく挿入されません。
  • 時折、トップバー div が表示されますが、リンクが機能しません。

後者の問題は私の CSS の問題かもしれませんが (わかりません)、断続的な動作が気になります。したがって、ビジネスの最初の順序は、少なくともトップバーの div が毎回表示されるようにすることです。

この拡張機能は、ページの読み込み時に実行され、上部近くに HTML のチャンクを追加する小さな JavaScript です ( <div id="mw-writh-topbar" ...>)。これは、jQuery 関数を使用して行います。

残念ながら、私は実際には Web 開発者ではないので、この単純なルーチンでさえ頭を悩ませています。

私が知っていることは次のとおりです。

  • 500 サーバー エラーはなく、PHP に明白な問題はありません。
  • 調査の初期のある時点で、開発者コンソールに が表示されることがありましUncaught ReferenceError: jQuery is not definedたが、現在は再現できません。調査では、拡張機能が新しい ResourceLoader メカニズムを使用していないことが原因である可能性があることが漠然と示唆されていたため、 Topbar を移行して ResourceLoader メカニズムを使用しようとしました( 経由maintenance/convertExtensionToRegistration.phpで、次にwfLoadExtension('Topbar')LocalSettings.php) が、違いはないようでした。
  • css/Topbar.cssページに追加されるため、Topbar フックが呼び出されるようです。しかし、実行されるかどうか、また実行される場合はどうなるかはわかりませんjs/Topbar.js

だから:どうすればこれをデバッグできますか?

4

1 に答える 1

1

ResourceLoader を使用するようにコードを変換する必要があります。現在、拡張機能は OutputPage の addScriptFile() を使用してコードを追加し、実行時に jQuery が使用可能になると想定しています。MediaWiki 1.26 以降、すべてが非同期で読み込まれるため、これは機能せず、新しいシステムに変換する必要があります。

そのための手順は次のとおりです。

2 つの注意事項:

  1. MediaWiki 1.25 以降、拡張機能は上記のマニュアルに従う代わりに、いわゆる「拡張機能の登録」を使用することになっていますが、これにはより多くの作業と専門知識が必要になる場合があります。
  2. 醜いハックの警告: このすべてを無視して、RLQ.push( function(){ /* All of the code here */ } );. これにより、すべてが ResourceLoader のキューに押し込まれるため、jQuery使用可能になった後にロードされます。これはお勧めしませんが、完全を期すためにここに示します。
于 2016-05-25T22:10:30.890 に答える