Joomla 2.5 / 3 мета теги description

Поисковые роботы считают важным наличие на странице мета тега description, например

<meta name="description" content="Кузовной ремонт в осенне-зимний период" />

Если вы забыли прописать значение этого параметра в админке, то движок Джумлы не выведет этот тег на страницу, так как значение пустое и выводить нечего.

Чтобы этот тег имел осмысленное значение и всегда выводился в коде страницы, можно прописать заглушку.
Этой заглушкой логичнее всего сделать сам заголовок материала или заголовок категории. Для этого мы допилим код генератора мета тегов Джумлы.

Joomla 2.5 Открываем редактором файл

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

И добавляем альтернативу для условия IF метатега description, которое начинается со строки 90:

if ($documentDescription)
{
$buffer .= $tab . '<meta name="description" content="' . htmlspecialchars($documentDescription) . '" />' . $lnEnd;
} else {
$buffer .= $tab . '<meta name="description" content="' . htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8') . '" />' . $lnEnd;
}

 

Для Joomla-3 нужно исправить файл

/libraries/src/Document/Renderer/Html/HeadRenderer.php

В нем код немного отличается от 2.5, строка 119

if ($documentDescription)
 {
      $buffer .= $tab . '<meta name="description" content="' . htmlspecialchars($documentDescription, ENT_COMPAT, 'UTF-8') . '" />' . $lnEnd;
  } else {
      $buffer .= $tab . '<meta name="description" content="' . htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8') . '" />' . $lnEnd;
  }

 

Такая доработка Joomla обеспечит наличие мета тега description на ВСЕХ страницах сайта. Причем это работает для всех установленных компонентов, включая Vittuemart, Zoo и пр.