Как формируются HTML-заголовки шаблона сайта в Joomla с помощью <jdoc:include type="head"/>

В Joomla начиная с версии 3.8 HTML-заголовки шаблона сайта, сформированные вызовом <jdoc:include type="head"/> получаются в результате работы скрипта HeadRenderer.php, а не /libraries/joomla/document/html/renderer/head.php, как это было до версии 3.8. Поэтому важно понимать, где искать место, в котором происходит ключевых заголовков HTML-документов в шаблоне Joomla. В этой статье рассмотрим то, где эти заголовки формируются и как можно изменить некоторые параметры блока <head> HTML-документа, которые Joomla генерирует на лету.



Как вставить автоматические заголовки HTML-документа для блока <head> в Joomla

Посмотрим ещё раз на простейший файл index.php шаблона сайта по → этой ссылке. Как видно из приведённого листинга, вставка заголовков а также подключение стилей и скриптов в HTML-документ в Joomla осуществляется в этом блоке:

<head>
    <jdoc:include type="head"/>
</head>

Это происходит путём вызова jdoc с типом head. Этот вызов приведёт к тому, что Joomla автоматически сформирует следующий фрагмент HTML-кода:

<head>
    <base href="https://your-site.ru/" />
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<meta name="description" content="Сервер технических разработок Лунной Базы с программами, помогающими Веб-мастерам при работе с сайтами." />
	<meta name="generator" content="Joomla! - Open Source Content Management" />
	<title>Главная</title>
	<link href="/?format=feed&amp;type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
	<link href="/?format=feed&amp;type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />
	<link href="https://your-site.ru/" rel="alternate" hreflang="ru-RU" />
	<link href="https://your-site.ru/en/" rel="alternate" hreflang="en-GB" />
	<link href="/templates/rezon/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
	<script src="/media/jui/js/jquery.min.js?38a386ff1fe6ccae1ae2b154acd60f1a" type="text/javascript"></script>
	<script src="/media/jui/js/jquery-noconflict.js?38a386ff1fe6ccae1ae2b154acd60f1a" type="text/javascript"></script>
	<script src="/media/jui/js/jquery-migrate.min.js?38a386ff1fe6ccae1ae2b154acd60f1a" type="text/javascript"></script>
	<script src="/media/system/js/caption.js?38a386ff1fe6ccae1ae2b154acd60f1a" type="text/javascript"></script>
	<script src="/media/jui/js/bootstrap.min.js?38a386ff1fe6ccae1ae2b154acd60f1a" type="text/javascript"></script>
	<script type="text/javascript">
jQuery(window).on('load',  function() {
				new JCaption('img.caption');
			});
	</script>
	<link href="https://your-site.ru/" rel="alternate" hreflang="x-default" />
</head>

Это значительно упрощает задачу создания шаблона для CMS Joomla, но некоторые теги могут оказаться лишними, как и подключение некоторых стилей и скриптов. Поэтому, чтобы разобраться в том, как формируется заголовок HTML-документа в Joomla, нужно знать, каким скриптом он формируется и где этот скрипт находится.

HeadRenderer.php — скрипт, отвечающий за формирование заголовка HTML-документа в Joomla

Как уже стало понятно, в Joomla есть скрипт, отвечающий за формирование заголовка HTML-документа в Joomla и начиная с версии 3.8 он находится тут:

/libraries/src/Document/Renderer/Html/HeadRenderer.php

При подключении / отключении дополнительных расширений (модулей и компонентов, а также шаблонов для них), заголовок HTML-документа может удлиняться или укорачиваться в зависимости от того, требуется ли подключение дополнительных файлов со стилями и/или скриптами для его работы и отображения.

Для того, чтобы не передавать лишнюю информацию, можно укоротить список тегов заголовка, например, отключив мета-тег generator, указав в шаблоне:

$this->setGenerator(null);

Это отключит выдачу тега:

<meta name="generator" content="Joomla! - Open Source Content Management" />

То, как это сделать, можно посмотреть на примере по → этой ссылке.

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню