K2 свой title для каждой страницы

  • 8 Ответов
  • 664 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

anna9494

Заранее прошу прощение, что эта тема уже обсуждалась. Есть сайт с использованием К2 (около ста категорий К2 и свыше 20 000 материалов К2). Стандартно Joomla выводит титул веб-страницы с нужным материалом, как:
<title>имя материала в заданной категории</title>
Каким понятным образом можно добиться результата, как на рисунке без использования плагинов аля EFSEO - Easy Frontend SEO (непростым для новичков) и создания экстраполей К2 ?



Название сайта вставить не проблема, через - System - Global Configuration - Site name - Include Site Name in Page Titles (After)
Но как добавить статический произвольный текст? Можно конечно дописать в System...Site name не только название сайта, но это Неправильно. Может кто-то уже правил шаблоны и поделится решением? Заранее спасибо :)
В идеале хотелось бы, что бы для каждой категории было свое титл описание, как показано на рисунке примере.

*

NewUsers

Re: K2 свой title для каждой страницы
« Ответ #1 : 06.10.2015, 17:28:27 »
Само название страницы формируется в файле view.html.php.php (/components/com_k2/views/item)
Строка: 456
Код
$document->setTitle($params->get('page_title'));
Все те данные которые тебе надо можно получить в этом же файле...
Хочешь что бы получилось так же как и на картинках...

С первым и третьим все понятно ну а с <Extra Field Text> от куда будешь брать?

*

Grigory S.

Re: K2 свой title для каждой страницы
« Ответ #2 : 06.10.2015, 17:28:59 »
Можно попробовать в шаблоне категории добавить

Код: php
$doc = JFactory::getDocument();
$doc->setTitle('Нужный текст');

или если на странице не выводиться описание категории, то использовать его


Код: php
$title = $this->category->description;
$doc = JFactory::getDocument();
$doc->setTitle($title);
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".

*

anna9494

Re: K2 свой title для каждой страницы
« Ответ #3 : 06.10.2015, 18:18:34 »
Само название страницы формируется в файле view.html.php.php (/components/com_k2/views/item)
Строка: 456
Код
$document->setTitle($params->get('page_title'));
Все те данные которые тебе надо можно получить в этом же файле...
Хочешь что бы получилось так же как и на картинках...

С первым и третьим все понятно ну а с <Extra Field Text> от куда будешь брать?
Поле <Extra Field Text> можно брать, как описывается в примере.
http://joomtemp.ru/index.php/voprosy/40-kak-sdelat-proizvolnye-title-v-komponente-k2-joomla-v-zapisyakh-i-kategoriyakh

*

anna9494

Re: K2 свой title для каждой страницы
« Ответ #4 : 06.10.2015, 18:24:11 »
Можно попробовать в шаблоне категории добавить

Код: php
$doc = JFactory::getDocument();
$doc->setTitle('Нужный текст');

или если на странице не выводиться описание категории, то использовать его


Код: php
$title = $this->category->description;
$doc = JFactory::getDocument();
$doc->setTitle($title);

Не совсем поняла, шаблон этот?
\www\components\com_k2\templates\default\category_item.php.php ?

*

NewUsers

Re: K2 свой title для каждой страницы
« Ответ #5 : 06.10.2015, 18:43:07 »
Поле <Extra Field Text> можно брать, как описывается в примере.

Немного переделал.
Код
$sitename = JFactory::getConfig()->get('sitename');
$value = $item->extra_fields[0]->value;
if($value != "")
{
$setTitle = $item->title.' -'.$value.' - '.$sitename;
}
else
{
$setTitle = $item->title.' - '.$sitename;
}
 
$document->setTitle($setTitle);

Вместо 0 укажи id доп. поля.

*

anna9494

Re: K2 свой title для каждой страницы
« Ответ #6 : 07.10.2015, 00:46:23 »
В общем у Joomla беда с персональным title для каждой страницы и остается уповать только на K2 3.0 с надеждой что там добавят все таки поле Metadata Information - Page Title

*

Grigory S.

Re: K2 свой title для каждой страницы
« Ответ #7 : 07.10.2015, 02:00:26 »
В общем у Joomla беда с персональным title для каждой страницы и остается уповать только на K2 3.0 с надеждой что там добавят все таки поле Metadata Information - Page Title

Joomla тут не при чем. В файл components/com_k2/templates/default/item.php после

Код: php
defined('_JEXEC') or die;

добавьте

Код: php
JFactory::getDocument()->setTitle('<' . $this->item->title . '> <' . $this->item->extraFields->FILEDALIAS->value . '> <' . JUri::base(). '>');

FILEDALIAS замените на нужное вам поле.
Не задав правильный вопрос, невозможно получить правильный ответ.
Для "спасибок" существует кнопочка "+".

*

anna9494

Re: K2 свой title для каждой страницы
« Ответ #8 : 07.10.2015, 10:08:28 »
Joomla тут не при чем. В файл components/com_k2/templates/default/item.php после

Код: php
defined('_JEXEC') or die;

добавьте

Код: php
JFactory::getDocument()->setTitle('<' . $this->item->title . '> <' . $this->item->extraFields->FILEDALIAS->value . '> <' . JUri::base(). '>');

FILEDALIAS замените на нужное вам поле.
Супер! Спасибо большое все работает :) Просто и элегантно!