Мета description из описания материала

Брать meta-description из текста, если не заполнен у item.

Такая необходимость возникла по двум причинам:

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

В общем-то рецепты есть, вот например: http://jbzoo.ru/docs/custom-meta-for-item.

Но мне хотелось, чтобы в descriptoin добавлялся текст из описания, если при добавлении оно не было добавлено в специальное поле (вкладка Метаданные), плюс обрезалось по словам.

Получилось вот так:

$doc = JFactory::getDocument();
// Мета Description - берем из короткого описание если не заполнены Мета ---
$base_desc = $item->getParams()->get('metadata.description'); // Description из мета item

if (!$base_desc && $this->checkPosition('text')) {
$text = $this->renderPosition('text');
$desc_new = JHtmlString::truncate(strip_tags($text), 160);
$doc->setDescription($desc_new);
}