Как формируются 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 генерирует на лету.

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Как вставить автоматические заголовки 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" />

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

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

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