Новости Joomla

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

anna9494

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Заранее прошу прощение, что эта тема уже обсуждалась. Есть сайт с использованием К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

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

С первым и третьим все понятно ну а с <Extra Field Text> от куда будешь брать?
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: K2 свой title для каждой страницы
« Ответ #2 : 06.10.2015, 15:28:59 »
Можно попробовать в шаблоне категории добавить

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

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


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

anna9494

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: K2 свой title для каждой страницы
« Ответ #3 : 06.10.2015, 16: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

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: K2 свой title для каждой страницы
« Ответ #4 : 06.10.2015, 16: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

  • Живу я здесь
  • 2307
  • 214 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: K2 свой title для каждой страницы
« Ответ #5 : 06.10.2015, 16: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 доп. поля.
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

anna9494

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

Grigory S.

  • Давно я тут
  • 658
  • 70 / 0
  • (с)
Re: K2 свой title для каждой страницы
« Ответ #7 : 07.10.2015, 00: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

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: K2 свой title для каждой страницы
« Ответ #8 : 07.10.2015, 08: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 замените на нужное вам поле.
Супер! Спасибо большое все работает :) Просто и элегантно!
*

TYMON

  • Захожу иногда
  • 65
  • 0 / 0
Re: K2 свой title для каждой страницы
« Ответ #9 : 25.06.2020, 21:45:13 »
А как добавить всем страницам категории новости вот такую фразу "| Новости" . Пишу в файле /components/com_k2/views/item/view.html.php


Код

$document = JFactory::getDocument();
$mytitle = $document->getTitle();
$titletext =' | Новости ';

$document->setMetadata('title', $mytitle.$titletext);
$doc->setTitle($document);

Какую переменную надо проверять, и в каком файле разместить этот код?
 
*

NewUsers

  • Живу я здесь
  • 2307
  • 214 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: K2 свой title для каждой страницы
« Ответ #10 : 25.06.2020, 22:13:48 »
За категорию отвечает представление itemlist
Оберните свой код в условие на проверка нужного id
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

TYMON

  • Захожу иногда
  • 65
  • 0 / 0
Re: K2 свой title для каждой страницы
« Ответ #11 : 26.06.2020, 12:57:47 »
Что-то не получилось у меня извлечь id категории для материала. Не подскажите как?
*

NewUsers

  • Живу я здесь
  • 2307
  • 214 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: K2 свой title для каждой страницы
« Ответ #12 : 26.06.2020, 13:22:16 »
Что-то не получилось у меня извлечь id категории для материала. Не подскажите как?
В файле: view.html.php (JPATH_ROOT/components/com_k2/views/itemlist)
После 115 строки доступна переменная $category->id или $id которая содержит ID текущей категории
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

TYMON

  • Захожу иногда
  • 65
  • 0 / 0
Re: K2 свой title для каждой страницы
« Ответ #13 : 26.06.2020, 13:55:47 »
$category->id

Да вот что-то прописываю, и не отображается цифра
echo $category->id
*

NewUsers

  • Живу я здесь
  • 2307
  • 214 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: K2 свой title для каждой страницы
« Ответ #14 : 26.06.2020, 14:06:50 »
Код: php
echo (int) $category->id;
или
Код: php
echo '<pre>'; print_r($category); echo '</pre>';
или используйте $id
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

TYMON

  • Захожу иногда
  • 65
  • 0 / 0
Re: K2 свой title для каждой страницы
« Ответ #15 : 27.06.2020, 14:20:18 »
Все равно 0 показывается в обоих случаях.

Очень Вас прошу NewUsers, пожалуйста, подробно написать: в каком файле мне написать проверку номера категории, чтобы материалам данной категории я уже добавил вторую часть title (тот код который мне нужен)

*

NewUsers

  • Живу я здесь
  • 2307
  • 214 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: K2 свой title для каждой страницы
« Ответ #16 : 27.06.2020, 14:37:41 »
Все равно 0 показывается в обоих случаях.
Вы точно в категории находитесь? Какой тип пункта меню используете для вывода K2 категории?
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

TYMON

  • Захожу иногда
  • 65
  • 0 / 0
Re: K2 свой title для каждой страницы
« Ответ #17 : 27.06.2020, 14:47:43 »
Пункт меню К2 » Списки материалов » Категории, я находился на страницах материалов этой Категории, мне же материалам надо добавить текст в тайтлы. Или я не так понимаю логику

А может можно как-то через templates/stars/index.php  в начале эту проверку делать. Так как для страниц категории новостей, где именно превью материалов с помощью параметра limitstart получилось дописать страницам пагинации текст. Вот код может кому-то пригодится. Может можно проверить материал приблизительно таким же образом на принадлежность к категории?

Код
$limit = JFactory::getApplication()->input->getInt('limitstart', 0);
if ($limit){
$document = JFactory::getDocument();
$mytitle = $document->getTitle();
$desc = $document->getMetadata('description');
$numpage = $limit / 25 + 1; //если количество материалов на странице 25
$titletext =' - страница '.$numpage;
$document->setTitle($mytitle.$titletext);
$document->setMetadata('description', $desc.$titletext);
}




« Последнее редактирование: 27.06.2020, 14:55:56 от TYMON »
*

NewUsers

  • Живу я здесь
  • 2307
  • 214 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: K2 свой title для каждой страницы
« Ответ #18 : 27.06.2020, 15:06:25 »
Замените 520 и 521 строку в файле item.php (JPATH_ROOT/components/com_k2/views/item)
Код: php
$metaTitle = trim($params->get('page_title'));

if((int) $item->catid === 1)
{
    $metaTitle = sprintf('%s - %s',
        $item->title,
        $item->category->name
    );
}

$document->setTitle($metaTitle);
В примере используется ID категории 1, замените его на свой ID категории...
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

TYMON

  • Захожу иногда
  • 65
  • 0 / 0
Re: K2 свой title для каждой страницы
« Ответ #19 : 27.06.2020, 15:16:59 »
Замените 520 и 521 строку в файле item.php (JPATH_ROOT/components/com_k2/views/item)
Код: php
$metaTitle = trim($params->get('page_title'));

if((int) $item->catid === 1)
{
    $metaTitle = sprintf('%s - %s',
        $item->title,
        $item->category->name
    );
}

$document->setTitle($metaTitle);
В примере используется ID категории 1, замените его на свой ID категории...

Большое спасибо! Работает как надо
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Разные Title и заголовки в K2

Автор kilnart

Ответов: 38
Просмотров: 3134
Последний ответ 10.03.2024, 04:03:45
от Slava77
Разные страницы с результатами поиска на одном сайте com_k2

Автор NIKOLY

Ответов: 0
Просмотров: 674
Последний ответ 22.08.2023, 15:44:05
от NIKOLY
Как добавить свой класс для страниц вывода материалов по тегу k2?

Автор Slava77

Ответов: 0
Просмотров: 2629
Последний ответ 16.02.2023, 23:29:34
от Slava77
Как на странице автора K2 изменить title и description?

Автор Slava77

Ответов: 4
Просмотров: 1246
Последний ответ 26.12.2022, 21:11:51
от Slava77
Свой description в шаблоне категории или статьи

Автор lgmax

Ответов: 0
Просмотров: 692
Последний ответ 20.11.2019, 16:42:40
от lgmax