Где в Joomla 3.8 править блок head? — Joomla 3.x: Установка, обновление и настройка
Сегодня важный день для проекта Joomla! Мы отмечаем два года напряженной работы наших добровольцев, решивших выпускать новую основную версию каждые два года. После большого количества обсуждений, спринтов по написанию кода и устранения ошибок этот день наконец настал и мы с гордостью объявляем о выпуске новой мажорной ( major ) версии Joomla 5.0, наряду с Joomla 4.4.
В Joomla Extensions Directory появился тег совместимости с Joomla 5.
Joomla-разработчики, проверившие совместимость своих расширений с Joomla 5 могут поставить галочку
JoomlaDay Spain, Madrid.
В Мадриде, Испания 5-6 октября 2023 года проходит Joomla Day — конференция, посвящённая как новичкам, так и профессионалам, работающим с Joomla.
Установка модуля формы на Joomla любой версии (1.5, 2.5, 3)
Будем считать, что первую часть вы уже выполнили: создали в конструкторе форму и скачали архив с примером вызова. Если нет, то вы можете придумать и собрать свою уникальную форму, либо использовать готовые сборки.
Теперь вам потребуется:
Если нужна статичная форма, то в месте её вывода нужно вставить контейнер .
Классы можно указывать свои, и привязывать плагин можно к уже имеющимся классам. Совсем не обязательно использовать такие же как в примере.
Если jQuery конфликтует с другими библиотеками (например перестаёт работать слайдер на вашем сайте, или форма заказа не всплывает при нажатии на ссылку), нужно добавить $.noConflict();
Возможны случаи, когда в файле index.php нет закрывающегося тега , в этой ситуации нельзя однозначно сказать куда вставлять код, так как был использован один из сторонних модулей для обработки шаблона. Свяжитесь с нами и мы попробуем решить эту проблему вместе.
Создание качественного сервиса — наша основная идея. Мы будем продолжать улучшать его и стараться сделать его наиболее надёжным и удобным.
Где в joomla редактировать head
Существует 3 способа изменить то, что находится у вас в секции Head:
- Можно отредактировать напрямую функцию fetchHead() в /libraries/joomla/document/html/renderer/head.php (не рекомендуется);
- Воспользоваться методами JDocument и добавить метатеги или теги вставки скриптов;
- Захардкодить теги непосредственно в файле index.php шаблона.
Первым методом пользоваться недальновидно: в случае обновления движка, придется снова править файл head.php
Самый удобный второй способ, который не завязан на файлах ядра и позволяет редактировать секцию заголовка из любого шаблона, компонента или модуля.
Перед тем, как вызывать методы правки заголовочной секции, требуется получить экземпляр текущего документа и присвоить нужные значения до момента отрисовки страницы:
/* Получить объект */
$doc = &JFactory::getDocument();
/* Создает пустой метатег generator. Например, на тот случай, если вы хотите скрыть, что сайт сделан на Joomla. */
$doc->setGenerator();
/* Задает метатег description */
$doc->setDescription();
/* Задает тег title */
$doc->setTitle();
/* Создает пользовательский метатег */
$doc->setMetaData($name,$content);
/* привязывает файл таблицы стилей */
$doc->addStyleSheet(‘/path/to/file’)
/* привязывает файл javascript или скрипта на каком-либо другом языке */
$doc->addScript(‘/path/to/file’)
/* добавляет пользовательский тег. Можно использовать для вставки любого тега в секцию head. */
$doc->addCustomTag();
/* Добавляет кусок кода javascript. Разместит код javascript и обрамит тегом . Joomla размещает их после внедрения скриптов addScript(). */
$doc->addScriptDeclaration()
/* Добавляет кусок пользовательского стиля css. Внедряет css-стили и обрамляет их тегом . Joomla разместит их после стилей addStyleSheet(). */
$doc->addStyleDeclaration()
javascript- и css-файлы можно также вставлять посредством объекта JHTML:
/* Такой метод подключает библиотеку jquery в секцию head , расположенную в папке script/js/. */
JHTML::script(‘jquery-1.4.2.min.js’,’script/js/’);
/* А так подключается css-файл */
JHTML::stylesheet(‘template.css’, ‘script/css/’);
- Предыдущая запись
- Следующая запись
Как редактировать header Joomla?
Периодически работая с версиями для слабовидящих, я особо не заморачивался и зачастую все «шаблонные» вопросы решал брутальным способом. Вырезая часть программного кода, и вставляя готовый результат в html шаблона. Это допустимо, когда шаблон не собираются менять, но не практично, когда нет уверенности в том, что завтра шаблон не поменяют.
Перед работой с шаблоном рекомендую сделать резервные копии всех файлов, с которыми Вы собираетесь работать.
Так случилось и в этот раз. А вдобавок к этому на сайте был задействован альтернативный модуль меню (выпадающего), имеющий свою собственную таблицу стилей (css). Раньше бы я объединил все стили в один имеющийся, в этот раз пришлось работать иначе.
Для начала давайте разберёмся, каким образом это вообще работает. У нас есть CMS с базовыми настройками. Далее, нас не устраивает внешний вид и чтобы «не ковыряться» самому мы ищем/находим шаблон (благо их в сети великое множество), устанавливаем. И поверх «базовых настроек» устанавливается ещё одна таблица стилей.
Кроме этого нам, возможно, понадобятся модули, у которых опять же возможно есть свои таблицы стилей. И таким образом их количество с единиц дойдёт до десятка, а может даже и нескольких десятков, в зависимости от того, насколько сильно будет загружена система.
И каждый элемент системы, возможно, пожелает добавить свою таблицу стилей в общий «массив».
Если Вы ознакомились с обзором о версии слабовидящих, Вы увидели бы что в процессе требуется указать id для строки link. И здесь возникает два возможных вариант, первый (которым я пользовался ранее) – вырывать нужную строку и прописывать id «вне» массива. Вариант второй – прописать id всем строкам в массиве.
Для этого придётся открывать системный файл:
ВНИМАНИЕ: будьте бдительны, при обновлении Joomla система может изменить этот файл обратно. Собственно по этой причине я и предпочитаю 1-й вариант (брутальный) правки шаблона.
Здесь находим следующую строку:
// Generate stylesheet links
Легче всего искать поиском по слову «stylesheet», сегодня при работе с Joomla (3-й версии) нужная мне информация находилась на 118-й строке. При работе с другими версиями эта информация может быть на других строках.
// Generate stylesheet links
foreach ($document->_styleSheets as $strSrc => $strAttr)
$buffer .= $tab . ‘ if (!is_null($strAttr[‘media’]))
$buffer .= ‘ media=»‘ . $strAttr[‘media’] . ‘» ‘;
>
if ($temp = JArrayHelper::toString($strAttr[‘attribs’]))
$buffer .= ‘ ‘ . $temp;
>
$buffer .= $tagEnd . $lnEnd;
>
// Generate stylesheet links
$a = 1;
foreach ($document->_styleSheets as $strSrc => $strAttr)
$buffer .= $tab . ‘ if (!is_null($strAttr[‘media’]))
$buffer .= ‘ media=»‘ . $strAttr[‘media’] . ‘» ‘;
>
if ($temp = JArrayHelper::toString($strAttr[‘attribs’]))
$buffer .= ‘ ‘ . $temp;
>
$buffer .= $tagEnd . $lnEnd;
>
Здесь была добавлена строка с переменной $a = 1; перед началом массива, и строка id. Если Вы не знакомы с азами программирования на php, поясню, $a++ значит следующее: значение a(1) +1. Таким образом, каждой новой строке будет придаваться значение +1 от предыдущего значения (1,2,3,4 и т.д.).
Перед работой с шаблоном рекомендую сделать резервные копии всех файлов, с которыми Вы собираетесь работать.
