私はこのようなコードを見てきました:
JHtml::_("script", "path/to/script.js");
JHtml::_("stylesheet", "path/to/stylesheet.css");
JHtml::_("jquery.framework");
ここでアンダースコア関数は何をしますか?
ほとんどの時間
_JHtml::_("script", "path/to/script.js");
JHtml::_("stylesheet", "path/to/stylesheet.css");
JHtml::_("jquery.framework");
_
電話します
_JHtml::Script("path/to/script.js");
JHtml::Stylesheet("path/to/stylesheet.css");
JHtmlJquery::framework();
_
ただし、2つの呼び出しにはわずかな違いがあります。 1つ目は、システムプラグインがコアクラスをオーバーライドできるようにします。
おかしな理由でJoomlaに同梱されているJQueryバージョンが気に入らないとしましょう。これで、システムプラグインを作成し、onAfterInitialise
イベントで_jquery.framework
_呼び出しに別のメソッドを登録するだけです。 JHtml::register('jquery.framework', 'ClassToLoad::MethodToCall')
を使用してそれを行うことができます
Michael Babkerが サンプルプラグイン を作成しました。これにより、ロードされたBootstrapバージョンを変更できます。それがどのように機能するかを理解するのに役立つ場合があります。
これは単なるショートカットであり、タイピングを節約するためのものだと思います。 ドキュメント はクラスローダーメソッドと呼ばれます。
JHtml::_("script", "path/to/script.js");
# is the same as:
JHtml::script("path/to/script.js");
JHtml::_("stylesheet", "path/to/stylesheet.css");
# is the same as:
JHtml::stylesheet("path/to/stylesheet.css");
JHtml::_("jquery.framework");
# is the same as:
require_once 'libraries/cms/html/jquery.php';
JHtmlJquery::framework();
最初の引数を正しい関数名に変換するアルゴリズムがあります。ファイルlibraries/cms/html/html.php
で、 aソースコード を確認できます。