Я хотел бы добавить этот угловой скрипт:
<script src="/sitename/templates/templatename/app/modules/form/form.js"></script>
.. в нижней части головных скриптов из Joomla Nooku просмотрите my-account.html.php. Потому что в файле шаблона есть $doc-> addScript() для добавления таких скриптов, как AngularJS. Таким образом, пользовательский скрипт, добавленный в самом представлении, должен быть внизу.
Как это сделать?
Если я использую AddScript() в представлении, скрипт будет добавлен в верхней части главных скриптов.
Я придумал решение... ну вроде. В файле шаблона я указываю файлы, которые я хотел бы переместить в нижнюю часть головных скриптов. Как это (лучшее решение/подход приветствуется):
moveScriptToBottom($doc->_scripts, '/sitename/templates/templatename/app/modules/form/form.js');
function moveScriptToBottom(&$scripts, $src)
{
foreach ($scripts as $key => $value) {
if ($key === $src) {
$move = $scripts[$key];
unset($scripts[$key]);
$scripts[$key] = $move;
}
}
}
Для Joomla не существует собственного способа сделать это, поэтому решение, с которым вы столкнулись, более или менее является единственным способом сделать это.
Это, безусловно, сделает это
<?php
//get the array containing all the script declarations
$document = JFactory::getDocument();
$headData = $document->getHeadData();
$scripts = $headData['scripts'];
//remove or add your script
$scripts['/sitename/templates/templatename/app/modules/form/form.js']
$headData['scripts'] = $scripts;
$document->setHeadData($headData);
?>
Таким же образом вы можете удалить некоторые нежелательные скрипты
unset($scripts['/media/system/js/mootools-core.js']);
Вы можете сделать это с помощью " addCustomTag ", хотя это не гарантирует, что тег script будет добавлен в конец страницы, тем не менее, он решит множество проблем с последовательностью в Joomla.
$doc->addCustomTag('<script src="' . JURI::root(true) . '/js/yourscript.min.js" type="text/javascript"></script>');