Свой title для статей категории Joomla

0
853

Сеошники твердят, что заголовок статьи и содержимое тега title страницы должно отличаться. В редакторе пунктов меню Joomla есть возможность управления отображением заголовка в браузере. Но мы часто пользуемся блогами и списками статей на наших сайтах. И в этом случае title для каждой статьи берется из ее заголовка. Так что же делать, если нужен именно отличный от заголовка тайтл? — И, все же, выход есть.

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

Предлагаю остановить выбор на поле «Ключ ссылки» с именем «xreference». Обычно, его редко используют. Но можно взять любое другое поле с подходящими параметрами. Главное, чтобы оно было текстовым и его можно было редактировать в ходе работы с контентом.

Если коротко, то суть задачи в следующем: нас интересует только модель «article» (category и прочее не обрабатываем, и все настраиваемые в меню заголовки там остаются, как есть); при отображении статьи дефолтный тег будет подменяться на наш только, если поле «Ключ ссылки» не пустое.

Для реализации нам потребуется только один файл — index.php шаблона сайта. В нем, в секции head, до того места, где подключается системный генератор содержимого данного блока (скрипты, метатеги, стили и т. п.) добавляем такой код:

<?php
                                  // Получаем параметр "view". Параметром title будем устанавливать
                                  // только "article", все остальное останется, как есть
  $view = JRequest::getVar('view');
 
  if ($view=='article') {         // Если view = "article":
                                  // Получаем ID материала для того, чтобы получить саму статью
      $article_id = JRequest::getInt('id');
                                  // Получаем все содержимое материала по полученному ID    
      $article = JControllerLegacy::getInstance('Content')->getModel('Article')->getItem($article_id);
                                  // Определяем переменную для title, обращаясь
                                  // к значению поля "Ключ ссылки" ($article->xreference)
                                  // Если значения нет - присваиваем переменной значение null
      $mytitle = (isset($article->xreference)&& !empty($article->xreference) )? $article->xreference : null;
                                  // Принудительно устанавливаем свой title только тогда,
                                  // когда соответствующая ему переменная не пуста    
      if (!$mytitle == null) {
          $doc = JFactory::getDocument();
          $doc->setTitle($mytitle);
          }
      }
 ?>

Заполняем поле «Ключ ссылки» любой статьи категории, которая выводится в виде блога или списка материалов и проверяем содержимое тайтла на сайте. При переходе по ссылке из блога или списка на статью, тайтл должен совпадать с текстом, которой вводили в поле.

Вот и вся реализация.

Ну, а тем, кто перешел на J3.x и регулярно обновляет движок, беспокоиться об этом не нужно. Разработчики предусмотрели возможность управления тайтлами для каждой статьи в редакторе. Теперь можно указывать этот параметр в секции настроек материала «Отображение» в поле «Заголовок страницы в браузере» (внизу).

Похожие записи

07.07.2019
0
4230

5 Калькуляторов Joomla под любые задачи, обзор и настройка

Сегодня при помощи сторонних разработок для joomla можно рассчитать всё, что угодно: стоимость ...
06.07.2019
0
3717

Меню в Joomla — добавление вложенного или выпадающего меню

В шаблоне позиции для меню обычно предусмотрены слева или справа, а так же и в верху (горизонт...
08.07.2019
0
5618

Тестируем Joomla 4: административная панель, разделы, поле работы вебмастера

Концепция оформления административной панели joomla4 разработана веб-студией JoomShaper, специализ...

Комментарии

Ваш комментарий будет отправлен на модерацию.
  • Комментарии не найдены