web-dev-qa-db-ja.com

JS / CSSファイルをJoomlaモジュールに追加するにはどうすればよいですか?

私はJoomlaから始めて、簡単なJoomlaモジュールを書いています。モジュールでカスタムCSSとJSを使用しています。このモジュールを配布するとき、Zipに対応するJS/CSSファイルが必要です。モジュールのZipファイルにファイルを追加しました。

これは私が知る必要があることです-

  1. モジュールをZipとして配布した場合でも、css/jsファイルを個別に送信する必要がないように、モジュールでこれらのCSS/JSファイルを参照するにはどうすればよいですか?

  2. http://www.howtojoomla.net/how-tos/development/how-to-add-cssjavascript-to-your-joomla-extension を含むさまざまなソリューションを試してみましたが、できませんでしたJS/CSSファイルのURLを理解するには?

クラウドホスティングサイトでホストされているJoomla1.7を使用しています。

ありがとう

12
Pushkar

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タグ内にこれらの行を追加する必要があるということだけです。

15
Dean Marshall

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

12

あなたが使用することができます:

_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');
6
Raj Kumar Das