Версия для слабовидящих Joomla

В последнее время на работе участились пожелания клиентов сделать версию сайта для слабовидящих. Наиболее часто такие просьбы поступают от владельцев сайтов сферы знаний и обучения. Изначально добавляли на сайт кнопки увеличения/уменьшения размера шрифта. Но, как оказывается, это совсем не то, что нужно. В действительности (признаюсь, сам не знал и не подозревал), существует ГОСТ, в котором полностью регламентирована и утверждена версия сайта для слабовидящих (ГОСТ Р 52872-2012, пункт 5).

Сам ГОСТ и требования, предъявляемые им, Вы можете найти и прочитать в интернете, в то время как в статье предлагаю разобрать вариант реализации кнопки перехода на версию для слабовидящих и обратно для сайтов под управлением CMS Joomla.

Как это работает:

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

В кратце разберем, как всё будет работать. В шаблоне сайта будет добавлена ссылка, при нажатии на которую будет заноситься переменная в сессию и на протяжении всей сессии посетитель будет видеть ту версию сайта, которую он выбрал. На основе переменной мы будем подключать стандартный файл стилей или же файл стилей для слабовидящих. В отличии от различных плагинов, данный вариант позволяет полностью управлять оформлением и отображением нужных элементов, при этом структура сайта останется прежней.

Итак, откройте файл разметки Вашего шаблона, обычно он находится в /templates/ШАБЛОН/index.php. Если шаблон работает на каком-либо фреймворке, то скорей всего он будет находиться где-то в /templates/ШАБЛОН/layout/ или /templates/ШАБЛОН/warp/ и т.д., Вам же необходимо найти файл, в котором описывается HEAD сайта и подключаемые файлы стилей.

Откройте найденный php-файл и в самом верху, где-нибудь выше подключаемых файлов стилей, добавьте следующий код:

<?php
$vs = JFactory::getApplication()->input->getInt('vs', 5); // Считываем параметр из url
$session = JFactory::getSession();

if ($vs != 5) {
	$session->set('vs', $vs); // Записываем значение параметра в сессию, если он присутствовал в url
}

$is_vs = $session->get('vs', 0); // "да", если значение параметра 1; "нет", если значение параметра 0 или параметр отсутствует

if ($is_vs) { // Если "да", то:
	$vs_link = JUri::current().'?vs=0'; // делаем ссылку на обычную обычную версию сайта
	$vs_text = 'Стандартная версия сайта'; // определяем текст ссылки на обычную версию сайта
	$vs_style = '/templates/ШАБЛОН/css/style_vs.css'; // определяем файл стилей версии для слабовидящих (путь к новому файлу стилей)
} else { // иначе:
	$vs_link = JUri::current().'?vs=1'; // делаем ссылку на версию для слабовидящих
	$vs_text = 'Версия сайта для слабовидящих'; // определяем текст ссылки на версию для слабовидящих
	$vs_style = '/templates/ШАБЛОН/css/style.css'; // определяем файл стилей обычной версии (путь к стандартному файлу стилей шаблона)
}
?>

Здесь мы на основе переменной $vs определяем, какая версия будет отображаться. Ниже добавленного кода найдите строку с подключением основного файла стилей и замените на что-то подобное:

<link rel="stylesheet" href="/<?php echo $vs_style; ?>" type="text/css" />

На основе переменной мы будем подключать соответствующий файл стилей. И последнее, что необходимо сделать, это определиться с местом отображения самой ссылки для перехода, поэтому решите, где Вы хотите вывести ссылку и добавьте:

<a href="/<?php echo $vs_link; ?>" rel="nofollow"><?php echo $vs_text; ?></a>

Вот и всё, если сейчас попробовать переключиться между версиями, то заметите, что при переходе на версию для слабовидящих все стили слетают. Всё правильно, ведь файл стилей отсутствует, поэтому необходимо его создать в каталоге, который Вы указали в переменной $vs_style. Далее остается лишь оформить версию для слабовидящих, описав стили в созданном файле.


Оставьте свой комментарий

Оставить комментарий от имени гостя

0 / 2500 Ограничение символов
Ваш текст должен быть в пределах 10-2500 символов
Комментарии | Добавить свои
  • Комментарии не найдены