Сейчас я расскажу вам, как можно исправить это упущение разработчиков компонента.
Для начала добавим в базу данных в таблицу #__k2_tags 2 поля: meta_description и meta_keywords.
Символы «#__» нужно заменить на префикс таблиц БД Joomla.
SQL
Для исправления нужно будет отредактировать некоторые файлы, входящие в состав K2. Причем, файлы эти расположены и административной части (/administrator/components/com_K2) и в публичной (/components/com_K2).
Давайте начнем с правок в административной части.
Шаг первый (админка)
Редактируем языковой файл /administrator/language/ru-RU/ru-RU.com_k2.ini. Добавляем в него новые элементы:
INI
Первые 2 будут заголовками полей, которые мы добавим для мета-тегов. Значение третьего параметра – это сообщение об ошибке, которое будет появляться в случае если длина строки будет больше допустимого значения.
Шаг второй (админка)
Изменяем шаблоны компонента в админке. У тегов в административной части K2 существует 2 шаблона: для списка тегов и для редактирования конкретного тега. Сначала предлагаю поправить шаблон списка: /administrator/components/com_k2/views/tags/tmpl/default.php. Добавим новые столбцы в таблицу.
PHP
Затем шаблон для добавления и редактирования отдельного тега (/administrator/components/com_k2/views/tag/tmpl/default.php):
PHP
На данный момент на странице появились поля для добавления мета-тегов к тегу, а в списке место для вывода их содержимого. Пока там пусто, да и добавить мы ничего не можем, потому что мы еще не поправили код в файле, который в конечном итоге обрабатывает данные перед добавлением их в Базу данных.
Шаг третий (админка)
Правим файл /administrator/components/com_k2/tables/k2tag.php. В этом файле код класса для работы с таблицей #__k2_tags.
В начале файла добавляем 2 свойства:
PHP
Далее «очищаем» их от HTML-кода и проверяем длину.
PHP
На этом изменения в административной части компонента завершены. Переходим к публичной части. Сначала также изменим языковой файл.
Шаг первый (публичная часть)
Редактируем файл /language/ru-RU/ru-RU.com_k2.ini.
INI
Сейчас немного опишем механизм работы. Тегов может быть довольно много и не у всех могут быть заполнены поля с описанием и ключевыми словами. Поэтому если они пустые, то мета тег description будет формироваться из указанной выше фразы и значения тега.
Шаг второй (публичная часть)
Изменяем содержимое с кодом логической части шаблона /components/com_k2/views/itemlist/view.html.php
Находим в файле строку case 'tag':. В этом блоке сначала заменяем строку, формирующую запрос к БД следующей:
PHP
Под строкой, устанавливающей заголовок страницы $title = JText::_('K2_DISPLAYING_ITEMS_BY_TAG').' '.$tag->name; вставляем следующий блок кода:
PHP
Вот так, буквально за пять шагов, мы исправили довольно серьезную недоработку создателей K2: теперь на странице со списком статей по тегам будут присутствовать мета-теги, что должно благоприятно отобразиться на положении нашего контента в поисковой выдаче.