Всем привет столкнулся с задачей!
В целях разобраться с данной CMS.
Меня интересует каким образом и откуда Joomla генерирует ссылки подключения скриптов?
Вот к примеру кусок кода файла index.php стандартного шаблона protostar
<?php
/**
* @package Joomla.Site
* @subpackage Templates.protostar
*
* @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$user = JFactory::getUser();
$this->language = $doc->language;
$this->direction = $doc->direction;
// Getting params from template
$params = $app->getTemplate(true)->params;
// Detecting Active Variables
$option = $app->input->getCmd('option', '');
$view = $app->input->getCmd('view', '');
$layout = $app->input->getCmd('layout', '');
$task = $app->input->getCmd('task', '');
$itemid = $app->input->getCmd('Itemid', '');
$sitename = $app->get('sitename');
if($task == "edit" || $layout == "form" )
{
$fullWidth = 1;
}
else
{
$fullWidth = 0;
}
// Add JavaScript Frameworks
JHtml::_('bootstrap.framework');
$doc->addScript('templates/' . $this->template . '/js/template.js'); ------- красным
// Add Stylesheets
$doc->addStyleSheet('templates/' . $this->template . '/css/template.css');-------------красным
// Load optional RTL Bootstrap CSS
JHtml::_('bootstrap.loadCss', false, $this->direction);
// Adjusting content width
if ($this->countModules('position-7') && $this->countModules('position-8'))
{
$span = "span6";
}
elseif ($this->countModules('position-7') && !$this->countModules('position-8'))
{
$span = "span9";
}
elseif (!$this->countModules('position-7') && $this->countModules('position-8'))
{
$span = "span9";
}
else
{
$span = "span12";
}
// Logo file or site title param
if ($this->params->get('logoFile'))
{
$logo = '<img src="' . JUri::root(). $this->params->get('logoFile'). '" alt="' . $sitename . '" />';
}
elseif ($this->params->get('sitetitle'))
{
$logo = '<span class="site-title" title="' . $sitename . '">' . htmlspecialchars($this->params->get('sitetitle')). '</span>';
}
else
{
$logo = '<span class="site-title" title="' . $sitename . '">' . $sitename . '</span>';
}
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<jdoc:include type="head" />-----------синим!
Как я понимаю красным отмечены строчки которые генерируют ссылки к файлам CSS и js самого шаблона protostar, а синим я отметил код который отвечает за вывод всего этого в тег head.
Так вот, откуда еще берутся остальные скрипты? И почему их именно 5? Например если посмотреть "/public_html/media/jui/js" тут скриптов больше 20 всяких разных а генерирует он только всего 5.
Вот отрезок кода который отображается в консоли браузера
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<base href="http://nikandlc.bget.ru/">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Super User">
<meta name="generator" content="Joomla! - Open Source Content Management">
<title>Home</title>
<link href="http://nikandlc.bget.ru/" rel="canonical">
<link href="/templates/protostar/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon">
<link rel="stylesheet" href="/templates/protostar/css/template.css" type="text/css"> - это подключал (отмечал красным)
<script src="/media/jui/js/jquery.min.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery-noconflict.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery-migrate.min.js" type="text/javascript"></script>
<script src="/media/system/js/caption.js" type="text/javascript"></script>
<script src="/media/jui/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/templates/protostar/js/template.js" type="text/javascript"></script> - это подключал (отмечал красным)
<script type="text/javascript">
jQuery(window).on('load', function() {
new JCaption('img.caption');
});
window.setInterval(function(){var r;try{r=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}if(r){r.open("GET","./",true);r.send(null)}},840000);
jQuery(document).ready(function(){
jQuery('.hasTooltip').tooltip({"html": true,"container": "body"});
});
</script>
<link href="//fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" type="text/css">
<style type="text/css">
h1,h2,h3,h4,h5,h6,.site-title{
font-family: 'Open Sans', sans-serif;
}
</style>
<!--[if lt IE 9]>
<script src="/media/jui/js/html5.js"></script>
<![endif]-->
</head>
Я просто всю Joomla перерыл не могу найти что отвечает, или какой файл, или где находятся данные скрипты, или может какая переменная в коде какого то файла отвечает за вывод определенных скриптов. Слезно прошу помочь!
ps в php полный ноль, пока что не могу его осилить или наверное не дано, не суть. Знаю есть файл head.php есть такой фрагмент
// Generate script file links
foreach ($document->_scripts as $strSrc => $strAttr)
{
$buffer .= $tab . '<script src="' . $strSrc . '"';
if (!is_null($strAttr['mime']))
{
$buffer .= ' type="' . $strAttr['mime'] . '"';
}
if ($strAttr['defer'])
{
$buffer .= ' defer';
}
if ($strAttr['async'])
{
$buffer .= ' async';
}
$buffer .= '></script>' . $lnEnd;
}
везде где не гуглил, пишут что смотреть тут, но я в упор не вижу какая переменная указывает что должно выводиться именно данные 5 скриптов, при том что данный файл остается не изменным, а когда меняешь шаблон на beez3 то скриптов увеличивается в 2 раза? Ребят если кто то по считает мой вопрос смешным или простым или глупым, или не достойным ответа, очень прошу все таки помочь новичку, сами так же начинали, а у кого мне узнать как не на форуме поддержки Joomla!
Жду ответ, спасибо!