Рецепт был навеян мне решением из для темы - http://forum.jbzoo.c...kataloga-title/
Суть в том что если на категорию ссылаться через пункт меню Joomla, то заголовок категории будет перебиваться пунктом меню. Я говорю об этой опции.
Покопавшись в коде, я понял, что Zoo/JBZoo работает нормально. Дело в том что Joomla сама перебивает title. Ниже небольшое решение, как это можно победить
Открываем файл /media/zoo/applications/jbuniversal/framework/events/jsystem.php
И добавляем в функцию onBeforeCompileHead
$categoryId = $this->app->jbrequest->getSystem('category'); if ($categoryId > 0) { $category = $this->app->table->category->get($categoryId); if ($category) { $params = $category->getParams('site'); $title = $params->get('metadata.title') ? $params->get('metadata.title') : $category->name; if ($title) { $this->app->document->setTitle($this->app->zoo->buildPageTitle($title)); } $description = $params->get('metadata.description'); if ($description) { $this->app->document->setDescription($description); } $keywords = $params->get('metadata.keywords'); if ($keywords) { $this->app->document->setMetadata('keywords', $keywords); } } } $itemId = $this->app->jbrequest->getSystem('item'); if ($itemId) { $item = $this->app->table->item->get($itemId); if ($item) { $title = $item->getParams()->get('metadata.title'); $title = empty($title) ? $item->name : $title; $this->app->document->setTitle($this->app->zoo->buildPageTitle($title)); foreach (array('keywords', 'author', 'robots') as $meta) { if ($value = $item->getParams()->get('metadata.' . $meta)) { $this->app->document->setMetadata($meta, $value); } } } }
Функция onBeforeCompileHead сработает в последний момент, перед тем как скомпилировать HMTL для тега head, поэтому установит meta наверняка. Её могут перебить только специфические плагины.
Проверял на JBZoo 2.1.5
Attached Files
Edited by SmetDenis, 28 January 2015 - 05:54.
подправил скрипт