web-dev-qa-db-ja.com

拡張機能にjQuery Themerollerを最も効果的に含める方法は?

J3xにjQueryが含まれていると、Themerollerを簡単に組み込むための戦いの半分は処理されますが、Themerollerアスペクトを適切に機能させるのにまだ問題があります。スクリプトタグを「どこかに」追加すると通常は機能することがわかりましたが、そのスクリプトタグの場所はさまざまであるように見えます。「これの直前または直後」でない限り、ウィジェットのレンダリングが壊れています。

Themerollerとそのすべてのウィジェットをコンポーネントに正しく追加するJoomla-Correct方法はありますか?

2
GDP

特定のJSとCSSをコンポーネントに含めるには、Michael Babkerのアドバイスに従います。

メディアフォルダーを使用し、上書き可能なメディアを許可する

http://www.babdev.com/blog/139-use-the-media-folder-allow-overridable-media

  • ルートコンポーネントフォルダーに、mediaというフォルダーを作成します。
  • 内部に、2つのフォルダーcssjsを作成します。必須の空白index.htmlをこれらすべてのフォルダ

  • yourcomponent.xmlファイルを適宜変更します。


<media folder="media" destination="com_yourcomponent">               
    <filename>index.html</filename>                 
    <folder>css</folder>
    <folder>images</folder>              
    <folder>js</folder>
</media>
  • /views/yourcomponent/default.php

または

/views/whateveristhenameofthisfolder/default.php

jS/CSSファイルを次のように呼び出します。

JHtml::_('stylesheet', 'com_yourcomponent/yourcss.css', false, true);
JHtml::_('script', 'com_yourcomponent/yourjs.js', false, true);

もちろん、ビューごとに異なるJS/CSSスクリプトを使用できます。

それが役に立てば幸い。

5
ghazal

JSライブラリがコンポーネントとともにロードされるようにするには、コンポーネントのビューにライブラリを含める必要があります。 view.html.phpまたはテンプレートファイルで次のようなものが機能するはずです。

JHtml::_('jquery.framework');

これには、noConflictモードのjQueryが含まれることに注意してください。また、フレームワークが1回だけ読み込まれるようにします。

通常モードでjQueryをロードするには、以下を使用します。

JHtml::_('jquery.framework', false);

更新:

コンポーネントのビュー部分にjsをロードしたいので、ここに追加します。したがって、必要なフレームワークを含めた後、ビューに他のjsおよびcssも含めます。

これに追加するには、そしてあなたが物事をどのようにしたいか、または他の理由がある場合は、独自のクラスとメソッドを含むヘルパーファイルを作成し、呼び出し時に追加するjs/cssファイルを決定します。各条件に基づきます。 js/cssの場所としてメディアフォルダーを使用することもできます。

<?php $doc = JFactory::getDocument();
$doc->addScript(JURI::root(true).'/media/com_component/js/myscript.js');
?>


Joomla:JSの追加-ドキュメント

1
FFrewin