J3xにjQueryが含まれていると、Themerollerを簡単に組み込むための戦いの半分は処理されますが、Themerollerアスペクトを適切に機能させるのにまだ問題があります。スクリプトタグを「どこかに」追加すると通常は機能することがわかりましたが、そのスクリプトタグの場所はさまざまであるように見えます。「これの直前または直後」でない限り、ウィジェットのレンダリングが壊れています。
Themerollerとそのすべてのウィジェットをコンポーネントに正しく追加するJoomla-Correct方法はありますか?
特定のJSとCSSをコンポーネントに含めるには、Michael Babkerのアドバイスに従います。
メディアフォルダーを使用し、上書き可能なメディアを許可する
http://www.babdev.com/blog/139-use-the-media-folder-allow-overridable-media
media
というフォルダーを作成します。内部に、2つのフォルダーcss
とjs
を作成します。必須の空白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スクリプトを使用できます。
それが役に立てば幸い。
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');
?>