Перед работой с шаблоном рекомендую сделать резервные копии всех файлов, с которыми Вы собираетесь работать.
Так случилось и в этот раз. А вдобавок к этому на сайте был задействован альтернативный модуль меню (выпадающего), имеющий свою собственную таблицу стилей (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 и т.д.).
Перед работой с шаблоном рекомендую сделать резервные копии всех файлов, с которыми Вы собираетесь работать.