оригинальная версия версия для слабовидящих контрастная версия выключить изображения включить изображения RSS FEED K2 NEWS
Воскресенье, 28 Февраль 2016 12:03

Как редактировать header Joomla?

Периодически работая с версиями для слабовидящих, я особо не заморачивался и зачастую все «шаблонные» вопросы решал брутальным способом. Вырезая часть программного кода, и вставляя готовый результат в html шаблона. Это допустимо, когда шаблон не собираются менять, но не практично, когда нет уверенности в том, что завтра шаблон не поменяют.

Перед работой с шаблоном рекомендую сделать резервные копии всех файлов, с которыми Вы собираетесь работать.

Так случилось и в этот раз. А вдобавок к этому на сайте был задействован альтернативный модуль меню (выпадающего), имеющий свою собственную таблицу стилей (css). Раньше бы я объединил все стили в один имеющийся, в этот раз пришлось работать иначе.

Для начала давайте разберёмся, каким образом это вообще работает. У нас есть CMS с базовыми настройками. Далее, нас не устраивает внешний вид и чтобы «не ковыряться» самому мы ищем/находим шаблон (благо их в сети великое множество), устанавливаем. И поверх «базовых настроек» устанавливается ещё одна таблица стилей.

Кроме этого нам, возможно, понадобятся модули, у которых опять же возможно есть свои таблицы стилей. И таким образом их количество с единиц дойдёт до десятка, а может даже и нескольких десятков, в зависимости от того, насколько сильно будет загружена система.

И каждый элемент системы, возможно, пожелает добавить свою таблицу стилей в общий «массив».

Если Вы ознакомились с обзором о версии слабовидящих, Вы увидели бы что в процессе требуется указать id для строки link. И здесь возникает два возможных вариант, первый (которым я пользовался ранее) – вырывать нужную строку и прописывать id «вне» массива. Вариант второй – прописать id всем строкам в массиве.

Для этого придётся открывать системный файл:

libraries/joomla/document/html/renderer/head.php

ВНИМАНИЕ: будьте бдительны, при обновлении Joomla система может изменить этот файл обратно. Собственно по этой причине я и предпочитаю 1-й вариант (брутальный) правки шаблона.

Здесь находим следующую строку:

// Generate stylesheet links

Легче всего искать поиском по слову «stylesheet», сегодня при работе с Joomla (3-й версии) нужная мне информация находилась на 118-й строке. При работе с другими версиями эта информация может быть на других строках.

// Generate stylesheet links
foreach ($document->_styleSheets as $strSrc => $strAttr)
{
$buffer .= $tab . '<link rel="stylesheet" href="' . $strSrc . '" type="' . $strAttr['mime'] . '"';
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 . '<link id="id'. $a++ .'" rel="stylesheet" href="' . $strSrc . '" type="' . $strAttr['mime'] . '"';
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 и т.д.).

Перед работой с шаблоном рекомендую сделать резервные копии всех файлов, с которыми Вы собираетесь работать.

Спонсоры: