VirtueMartカテゴリを表示するためのカスタムモジュールを作成していますが、必要以上に古いバージョンのMooToolsを使用しているため、VirtueMartがMooToolsをロードできないようにする必要があります。どこでも検索しましたが、無効にできるファイルや関数が見つからないようです。どんな助けでも大歓迎です。
5 に答える
少なくともvirtuemart1.5では、components / com_virtuemart / themes / YOURTHEME / theme.phpに移動し、約37行目を検索します。次の関数があります。
function vmTheme() {
parent::vmTemplate();
vmCommonHTML::loadMooTools();
}
コメントするだけ
vmCommonHTML::loadMooTools();
それでもうまくいかない場合は、これをテンプレートに入れると、Joomlaが使用しようとするデフォルトのスクリプトがすべて削除されます。明らかに、これによりVirtuemartが正しく機能するために必要なものが削除される可能性がありますが、問題も解決される可能性があります。
<?php
$user =& JFactory::getUser();
if ($user->get('guest') == 1) {
$headers = $this->getHeadData();
$headers['scripts'] = array();
$this->setHeadData($headers);
}
?>
プロジェクト全体でそれへの唯一の参照は、mod_virtuemart_currencies.xml にあります。私は Joomla に 100% 精通しているわけではありませんが、これは特定の通貨モジュールのインストーラー ファイルのように見えます。
そのモジュールを削除するか、その XML ファイル内で使用している MooTools ライブラリへの参照を更新することをお勧めします (現在利用可能なバージョンの 30 行目、内modules/mod_virtuemart_currencies_1.14.j15/mod_virtuemart_currencies.xml
)。
問題を解決できました。カスタム モジュールは JHTML::script() を使用して JavaScript ファイルをロードしていました。その特定の関数には、MooTools を自動的にロードする 3 番目のパラメーターがデフォルトで true に設定されています。ここでドキュメントを見ることができます: http://docs.joomla.org/Adding_JavaScript
フロントエンドとバックエンド用のカスタム コンポーネントを作成しましたが、(一生) mootools を無効にすることはできませんでした。ヘッダー配列などの設定を解除しようとしましたが、うまくいきませんでした! コンポーネントが通常の記事である通常のページでは問題なく機能しましたが、カスタム コンポーネントの場合は機能しませんでした。
テンプレートで JHTML::script() 関数を使用していましたが、ここのコメントの 1 つを読んだ後、関数に 2 番目のパラメーター (FALSE) を追加しようとしましたが、うまくいきました!
ありがとうございました!!!
$document 変数の _scripts 配列から mootools を設定解除すると、カスタム コンポーネントで機能しない理由はありますか?