私はJoomlaから始めて、簡単なJoomlaモジュールを書いています。モジュールでカスタムCSSとJSを使用しています。このモジュールを配布するとき、Zipに対応するJS/CSSファイルが必要です。モジュールのZipファイルにファイルを追加しました。
これは私が知る必要があることです-
モジュールをZipとして配布した場合でも、css/jsファイルを個別に送信する必要がないように、モジュールでこれらのCSS/JSファイルを参照するにはどうすればよいですか?
http://www.howtojoomla.net/how-tos/development/how-to-add-cssjavascript-to-your-joomla-extension を含むさまざまなソリューションを試してみましたが、できませんでしたJS/CSSファイルのURLを理解するには?
クラウドホスティングサイトでホストされているJoomla1.7を使用しています。
ありがとう
HowToJoomlaサイトの記事はプロセスをほぼ要約していると思います。
これは、さらにいくつかのステップが追加されたプロセスです-うまくいけば、これが役立つでしょう。
拡張機能をパッケージ化して、cssファイルとjavascriptファイルをサーバーにインストールできるようになっていると思います。それらはモジュールフォルダにある可能性がありますが、おそらくもっと正確には、/ media /フォルダの下のモジュールサブフォルダ内にあるはずです。
モジュールをインストールした後、cssファイルとjsファイルが見つからない場合は、コンポーネントのxmlインストールファイル内でそれらを正しく参照していないことが原因です。このページには、コンポーネント用ですが、1.6/1.7アドオンのxmlインストール/マニフェストファイルに関する情報が含まれています: http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!1.6 _-_ Part_01 それらは非常に似ています。
どちらの方法でも-Joomlaのフォルダー構造内でファイルを見つけ、Webサイトのルートからの相対パスをメモします-つまり、configuration.phpを含むフォルダー
モジュールのphp内のどこかに-JDocumentオブジェクトへの参照を取得する行を追加します。
$document = JFactory::getDocument();
次に、JavaScriptをHTMLヘッド領域に追加する行を追加します。
$document->addScript('url/to/my/script.js');
明らかに、「url/to/my /script.js」をjavascriptへの実際の相対パスに置き換えます。
次に、cssをhtmlヘッドに追加する行を追加します。
$document->addStyleSheet('url/to/my/stylesheet.css');
もう一度パスを調整します。たとえば、media/mod_mymodule/mymodule.css(モジュールの名前が「mymodule」の場合)の場合があります。
注意すべきことは、phpモードを終了した後、html領域内ではなく実行可能phpタグ内にこれらの行を追加する必要があるということだけです。
Js/cssファイルを/ mediaフォルダーに追加できます。
http://docs.joomla.org/Manifest_files#Media_files
マニフェストファイルに追加するだけです。
<files>
...
</files>
<media folder="media" destination="mod_your_module">
<folder>css</folder>
<folder>js</folder>
</media>
インストール可能なパッケージ内に、/ mediaフォルダーがあります。
次に、ビューファイルに追加します。
$doc =& JFactory::getDocument();
$doc->addScript("/media/mod_your_module/js/script.js");
この記事では、このアプローチの利点について説明します。
http://blog.joomlatools.com/2008/09/hidden-feature-joomlas-media-folder.html
あなたが使用することができます:
_JHTML::script('modules/mod_your_module/js/script.js');
JHTML::stylesheet('modules/mod_your_module/css/stylesheet.css');
_
この例では、JFactory::getDocument()
は必要ありません。
$document = JFactory::getDocument();
$modulePath = JURI::base() . 'modules/mod_your_module_name/';
//Adding JS Files
$document->addScript($modulePath.'js/myscript.js');
//Adding CSS Files
$document->addStyleSheet($modulePath.'css/style.css');