CSSまたはJSファイルをカスタム拡張に含める必要がある場合、これを達成するための最良かつ最も安全な方法は何ですか。
最善の方法は、メディアフォルダを使用することです。したがって、最初にモジュールフォルダーにmedia
というフォルダーを作成する必要があります。
メディアフォルダー内に、css
とjs
の2つのサブフォルダーを作成します。これは必須ではありませんが、物事を分離しておくほうがいいです。
次に、XMLファイルに以下を追加します。
<media folder="media" destination="mod_EXAMPLE">
<folder>css</folder>
<folder>js</folder>
</media>
変化する mod_EXAMPLE
あなたのモジュールが何であれ。
インストール時に、メディアフォルダーは自動的に移動され、次のようになります。
JOOMLA_ROOT/media/mod_EXAMPLE/js
そして
JOOMLA_ROOT/media/mod_EXAMPLE/css
これまではモジュールについて言及してきましたが、コンポーネントについても同様です。
ファイルを呼び出すには、拡張機能のdefault.phpファイルに次のコードを追加します。
JHtml::_('stylesheet', JUri::root() . 'media/mod_EXAMPLE/css/style.css'); // For CSS files
JHtml::_('script', JUri::root() . 'media/mod_EXAMPLE/js/script.js'); // For JS files
お役に立てれば
あなたの拡張機能はコンポーネントだと思います。最善の方法は、media
およびadmin
ディレクトリの横にsite
ディレクトリを作成することです。次に、js
、css
、img
ファイルを次のように別々のディレクトリに配置します。
index.html
YOUR_COMPONENT_NAME.xml
[+] admin
[+] site
[-] media
[-] js
main.js
index.html
[+] css
[+] img
フォルダーには空のindex.html
ファイル。
XMLマニフェスト(YOUR_COMPONENT_NAME.xml)では、次のようにmedia
ファイルを宣言できます。
<media destination="com_YOUR_COMPONENT_NAME" folder="media">
<filename>index.html</filename>
<folder>css</folder>
<folder>js</folder>
<folder>img</folder>
</media>
デフォルトのビュー(default.php)を編集し、これらの行を追加して、ファイルをJoomla!に含めます。頭:
$document = JFactory::getDocument();
$document->addStyleSheet(JUri::base() . 'media/com_YOUR_COMPONENT_NAME/css/main.css');
$document->addScript(JUri::base() . 'media/com_YOUR_COMPONENT_NAME/js/main.js');
$test_image_url = JUri::base() . 'media/com_YOUR_COMPONENT_NAME/img/test.jpg';