$ document-> addScript не работает - PullRequest
       11

$ document-> addScript не работает

3 голосов
/ 16 ноября 2010

У меня есть представление компонентов внешнего интерфейса, которое мне нужно включить в заголовок файла .js (заголовок создается Joomla, а не задан жестко в default.php).Файл интерфейсного компонента: mysite.com/components/com_arrcard/views/tmpl/default.php;файл javascript находится по адресу mysite.com/administrator/components/com_arrcard/js/CalendarPopup.js.

Вот что я попробовал в моем default.php:

$document =& JFactory::getDocument();
$popUrl = JURI::root(true).'/website/documents/ccv.html';
$popImage = JURI::root(true).'/website/documents/cv_card.jpg';
$popPhone = JURI::root(true).'/website/documents/phone.html';

$document->addScript( JURI::root(true).'/administrator/components/com_arrcard/js/CalendarPopup.js' );

$ popImageи переменные $ popPhone устанавливаются правильно, но скрипт не добавляется - когда я смотрю на источник отрисованной страницы, CalendarPopup.js нигде нет.

Кто-нибудь может мне помочь?Что я здесь не так делаю?Я также пытался

$document->addScript('administrator/components/com_arrcard/js/CalendarPopup.js' );

Это тоже не работает.Код addScript работает при включении точно такого же файла в представление в компоненте com_arrcard администратора.Есть ли какие-то ограничения на работу addScript?

Ответы [ 2 ]

2 голосов
/ 17 ноября 2010

Ваш код выглядит правильно. Возможно, попробуйте другой метод ниже, первая строка - включить JS, а другая - для CSS (на тот случай, если кто-нибудь наткнется на это в будущем в поисках CSS).

JHTML::script( 'javascript.js', 'components' . DS . 'com_component' . DS . 'lib' . DS . 'js' . DS );
JHTML::stylesheet( 'style.css', 'components' . DS . 'com_component' . DS . 'lib' . DS . 'css' . DS );

Убедитесь, что вы используете DS (разделитель каталогов), чтобы Joomla могла правильно заполнить / или \ в зависимости от ОС, на которой работает сайт.

Так что в вашем случае вам понадобится эта строка кода:

JHTML::script( 'CalendarPopup.js', 'administrator' . DS . 'components'. DS .'com_arrcard'. DS .'js');
0 голосов
/ 17 ноября 2010

Код, который вы публикуете, должен работать. Вы можете манипулировать JDocument в любой момент до того, как страница будет фактически отображена и отправлена ​​обратно, так что это не должно быть проблемой, независимо от того, делаете ли вы это в файле шаблона или в контроллере или просматриваете файлы (что на самом деле является тем, где должен пойти с лучшей точки зрения MVC).

Убедитесь, что в вашем файле index.php шаблона указан следующий тег:

Возможно, это в вашем шаблоне администратора (скорее всего, по умолчанию), но не в пользовательском шаблоне ... хотя это должно быть.

Дополнительный простой способ проверки - временно изменить шаблон на rhuk_milkyway, чтобы проверить, правильно ли введен код.

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