Подтвердить что ты не робот

Как добавить файлы JS/CSS в модули Joomla?

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

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

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

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

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

Спасибо

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

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

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

В этом примере не требуется JFactory::getDocument()

Ответ 4

$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');

Ответ 5

<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">