web-dev-qa-db-ja.com

JoomlaフロントエンドでJavaScriptライブラリをロードする位置を検出しますか?

JoomlaでJavaScriptライブラリをロードする位置を検出する方法はありますか(私の目標は 'framework.bootstrap'です)。私は現在これに従います post ですが、[JDataset][2]メソッドコレクションから「unset」メソッドを使用した後、ブーストラップフレームワークは、

com_Finder

成分。 unsetメソッドはこのコンポーネントに影響しないため、このライブラリが標準以外の方法で追加された場所を検出するにはどうすればよいですか。また、1)<jdoc:include type="head" />行の前後にunsetメソッドを移動しましたが、効果はありません。2)プラグインonAfterRenderソリューションを使用してunsetメソッドを呼び出しますが、再び効果はありません。フィルター、管理およびサイトパーツで 'framework.bootstrap'を見つけますが、管理パーツでは、フロントエンドに効果的でない限り、何かを見つけました!!!

他にもっと良い解決策がありますか

1
Sami

私はあなたが意味すると思います:JHTML::_('bootstrap.framework')

bootstrapバックエンド以外のすべてを無効にしたい場合。これを追加してください:

_if( JFactory::getApplication()->isSite() ) return;
_

ファイル内の関数frameworkの先頭:_/libraries/cms/html/bootstrap.php_。これは最善の解決策ではありませんが、ブーストラップのロードにJHTMLを使用するすべての拡張機能で機能します(ほとんどすべての機能がそうです)。

bootstrapが含まれている場所の追跡

私のソリューションを使用して、この関数が呼び出されたすべての場所を追跡できます。グローバル配列を作成し、_/libraries/cms/html/bootstrap.php_内で呼び出されるdebug_backtrace()からのデータをそこに配置するだけです。これにより、各bootstrap includeの完全な呼び出しチェーンが得られます。システム実行の最後に(おそらくテンプレート内で)、その配列を出力できます。

1
Artur Stępień