回答:
私はJoomla 3.2を使用しています。
$doc = JFactory::getDocument();
$dontInclude = array(
'/media/jui/js/jquery.js',
'/media/jui/js/jquery.min.js',
'/media/jui/js/jquery-noconflict.js',
'/media/jui/js/jquery-migrate.js',
'/media/jui/js/jquery-migrate.min.js',
'/media/jui/js/bootstrap.js',
'/media/system/js/core-uncompressed.js',
'/media/system/js/tabs-state.js',
'/media/system/js/core.js',
'/media/system/js/mootools-core.js',
'/media/system/js/mootools-core-uncompressed.js',
);
foreach($doc->_scripts as $key => $script){
if(in_array($key, $dontInclude)){
unset($doc->_scripts[$key]);
}
}
これにより、それらのスクリプトが含まれるのを防ぎ、必要に応じてスクリプトを追加または削除します
JURI::root(true).
スクリプトパスの前に追加したところ、うまくいきました。
テンプレートで設定を解除できます
unset(
$this->_scripts['/media/jui/js/mootools-core.js'],
$this->_scripts['/media/jui/js/core.js']);
これにより、両方のJSファイルがヘッダーから削除されます。
Joomla 3.xでは、JHtml::_('jquery.framework')
テンプレートを呼び出して、MootoolsなしでjQueryをロードできます。これにより、デフォルトでjQueryが競合なしモードでロードされるため、通常モードが必要な場合は、2番目のパラメーターfalseを追加するだけですJHtml::_('jquery.framework', false)
。
私はこれを使用しました:
foreach ($doc->_scripts as $script => $value)
{
if (preg_match('/media\/jui/i', $script))
unset($doc->_scripts[$script]);
}
needle
文字列は変数ではなく、唯一の意図は大文字と小文字を区別しないマッチングを行うことで、それは使用へのより良い練習になりますstripos() ...if (stripos($script, 'media/jui') !== false)