web-dev-qa-db-ja.com

カスタムコンポーネントで機能しないヘッドスクリプトを削除する

私はこの行を使用して、Joomlaのヘッダースクリプトを削除します。不要です。

$doc = JFactory::getDocument();

$dontInclude = array(
    '/media/jui/js/bootstrap.min.js'
);

foreach($doc->_scripts as $key => $script){
    if(in_array($key, $dontInclude)){
        unset($doc->_scripts[$key]);
    }
} 

カスタムコンポーネントを指すページを除くすべてのページで、すべてが正常に機能します。コンポーネントのヘッドのオーバーライドはなく、キャッシュは無効になっています。

私はJoomla 3.3.3を使用しています

編集:コンポーネントからドキュメントオブジェクトを印刷する場合、スクリプトは空の配列です...

前もって感謝します

1
Dayron Gallardo

おそらく、システムプラグインでonBeforeRenderイベントを使用してこれを行う必要があります。実行のこの時点で、ページがレンダリングされようとしているので、スクリプトを配置する必要があります。

このようなもの:

function onBeforeRender() {
  $doc = JFactory::getDocument();

  $dontInclude = array(
    '/media/jui/js/bootstrap.min.js'
  );

  foreach($doc->_scripts as $key => $script){
    if(in_array($key, $dontInclude)){
        unset($doc->_scripts[$key]);
    }
  } 
}
2
Michael