Как добавить файлы JS / CSS в модули Joomla? - PullRequest
12 голосов
/ 04 ноября 2011

Я начинаю с Joomla и пишу простой модуль Joomla.Я использую некоторые пользовательские CSS и JS в моем модуле.Теперь, когда я распространяю этот модуль, мне нужны мои файлы JS / CSS, чтобы идти вместе с ZIP.Я добавил свои файлы в мой ZIP-файл модуля.

Это то, что мне нужно знать -

  1. Как мне обратиться к этим файлам CSS / JS в моем модулетак что даже если бы я распространял модуль в виде почтового индекса, мне не пришлось бы отправлять файлы css / js отдельно?

  2. Я пытался посмотреть на различные решения, включая http://www.howtojoomla.net/how-tos/development/how-to-add-cssjavascript-to-your-joomla-extension НоМне не удалось выяснить, каким должен быть URL-адрес файла JS / CSS?

Я использую Joomla 1.7, размещенную на сайте облачного хостинга.

Спасибо

Ответы [ 5 ]

15 голосов
/ 05 ноября 2011

Я бы сказал, что статья сайта HowToJoomla в значительной степени подводит итог процесса.

Вот процесс с добавлением еще нескольких шагов - надеюсь, это поможет.

Я предполагаю, что вы достигли уровня упаковки своего расширения и смогли установить файлы css и javascript для установки на сервер. Они могут находиться в папке вашего модуля или, возможно, более правильно, они должны находиться в подпапке ваших модулей в папке / media /.

Если после установки модуля вы не можете найти свои файлы css и js, то это потому, что вы неправильно ссылались на них в файле установки вашего компонента xml. На этой странице содержится информация о файле установки / манифеста xml для надстроек 1.6 / 1.7, хотя для компонента: http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!1.6_-_Part_01 они очень похожи.

В любом случае - найдите ваши файлы в структуре папок Joomla и запишите их относительный путь из корня сайта - то есть в папку, содержащую файл 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.

12 голосов
/ 26 ноября 2012

Вы можете добавить файлы 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

8 голосов
/ 11 февраля 2012

Вы можете использовать:

JHTML::script('modules/mod_your_module/js/script.js');
JHTML::stylesheet('modules/mod_your_module/css/stylesheet.css');

Этот пример не требует JFactory::getDocument()

6 голосов
/ 22 ноября 2013
$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');
0 голосов
/ 19 июня 2014

<script type="text/javascript" src="<?php echo JURI::BASE()?>modules/your_module_name/js/your_js_file"></script>

для Css:

<link href="<?php echo JURI::BASE()?>modules/your_module_name/css/your_css _file" type="text/css" media="all" rel="stylesheet">

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...