Статьи, приемы, хитрости и Уроки по Photoshop, Illustrator, Web дизайну и кодингу.

Как сделать произвольные title в компоненте k2 joomla — в материалах

Задача: сделать произвольные title в компоненте k2 joomla — в материалах

Красивые title и правильные url всегда были проблемой CMS Joomla, и новые версии j 2.5 и 3 ситуацию не исправляют. Расширений типа sh404 или artio создают дополнительные нагрузки и, порой, не отвечают всем требованиям проекта.

Сторонние sef компоненты дают слишком большую и не оправданную нагрузку, да и проблем прибавляют немало. Поэтому я рассматриваю только варианты «чистого кода». Предлагаемая мной модификация не затрагивает файлов движка, а значит обновления будут проходить безболезненно.

Как сделать произвольные title для материалов k2

Работать с произвольным title будем с помощью дополнительных полей k2.

Стандартный тайтл любого материала одинаков с названием этого материала. Что не есть хорошо с точки зрения seo да и юзабилити в общем.

Создаем группу дополнительных полей и называем её к примеру allseo.

1

Создаем дополнительное поле в этой группе. Тип текстовый, значение по умолчанию пустое.

2

Теперь необходимо назначить всем категориям k2, в записях которых требуются произвольные тайтлы, эту группу дополнительных полей. Это делается при редактировании категории в K2.

3

Далее открываем или создаем материал, в которым мы хотим сделать произвольный title. В вкладке дополнительные поля видимо наше поле titleseok2, заполняем его в соответствии с требуемым запросом и сохраняем материал.

4

А теперь необходимо внести некоторые изменения в шаблон k2. Работать будем исключительно с шаблоном компонента, (иногда этот файл можно найти в разных местах - все зависит от ядра и фреймворка) Так что места могут быть разные:

например  - адресу /templates/ваш_joomla_шаблон/html/com_k2/default/item.php

например  - адресу /components/com_k2/templates/default/item.php

Ищите где он у вас.

5

открываем файл item.php добавляем следующий код, где-то  после строки 57 и скрипт заключаем в теги php - это же скрипт :) :

// дополнительные поля материала K2
$extrafields = array();
foreach($this->item->extra_fields as $item)
{
$extrafields[$item->id] = $item->value;
}
$document     = & JFactory::getDocument();
$config     = & JFactory::getConfig();
if ($extrafields[1]) {
$curtitle = $extrafields[1];
} else {
$curtitle = $document->title;
}
$document->setTitle( $curtitle );

В строке $curtitle = $extrafields[1]; указываем id (у меня оказалось 1) дополнительного поля содержащее наш новый title.

6

Если для материала не был прописан произвольный тайтл то будет выводится стандартный заголовок. Если прописан — выводится содержимое дополнительного поля.

Узнать id дополнительного поля можно в админке Joomla, в списке дополнительных полей есть специальная колонка показывающая id поля.

Проеверяем - все работает!

Последнее изменениеВторник, 18 Февраль 2014 12:53
  • Оцените материал
    (3 голосов)
  • Опубликовано в Web coding
  • Прочитано 8084 раз
SeRbGa

SeRbGa

мечтатель

Сайт: www.serbga.ru

Оставить комментарий

Комментарии  

SeRbGa
0 #16 SeRbGa 27.06.2017 14:31
Цитирую sergspb:
А можно ли сделать чтобы всегда выводился только тайтл из допполей?

Можно убрать условие из кода подмены тайтла, тогда всегда будет тайт из доп полей:
как-то так примерно
$curtitle = $extrafields[1];
$document->setTitle( $curtitle );
Цитировать
sergspb
0 #15 sergspb 27.06.2017 13:35
А можно ли сделать чтобы всегда выводился только тайтл из допполей?
Цитировать
SeRbGa
0 #14 SeRbGa 27.06.2017 12:33
и ковырять надо компонент к2 т.к. на других страницах 1тайтл выводится
Цитировать
SeRbGa
0 #13 SeRbGa 27.06.2017 12:29
Цитирую sergspb:
У меня почему-то оба выводятся https://дом-родословия.рф/Untitled-1.png

тут уже в коде надо копаться и смотреть что отвечает за вывод строки
meta name="title" content=
Цитировать
sergspb
0 #12 sergspb 27.06.2017 12:24
У меня почему-то оба выводятся https://дом-родословия.рф/Untitled-1.png
Цитировать
SeRbGa
0 #11 SeRbGa 27.06.2017 12:16
Цитирую sergspb:
Все получилось.Только возник такой вопрос - как убрать title, который выводится из названия статьи совсем, чтобы остался только тот, что выводится из доп.полей.

По условию не должен выводиться.
Если для материала не был прописан произвольный тайтл то будет выводится стандартный заголовок. Если прописан — выводится содержимое дополнительного поля.
Или у вас что 2 title ?
Цитировать
sergspb
0 #10 sergspb 27.06.2017 12:03
Все получилось.Толь ко возник такой вопрос - как убрать title, который выводится из названия статьи совсем, чтобы остался только тот, что выводится из доп.полей.
Цитировать
SeRbGa
0 #9 SeRbGa 28.01.2015 22:09
Отключить вывод доп. Полей в настройках материала или категории, либо посмотреть шаблон к2 и закомментироват ь строку с выводом доп. полей- нужно проверять.
Цитировать
contra87
0 #8 contra87 28.01.2015 21:48
Работает, но также тайтл выводится в доолнительной информации как уБрать подскажите ?
Цитировать
SeRbGa
0 #7 SeRbGa 17.11.2014 11:31
проверял на тестовом серваке joomla 3.3.4 , к2 версии 2.6.8 все работает.
Цитировать

Добавить комментарий


Защитный код
Обновить

Наверх

Популярные статьи

  • 1
  • 2
  • 3
  • 4

последние комментарии

ON-Line Блог SeRbGa.ru предоставляет самую свежую и актуальную информацию для веб-дизайнеров и разработчиков в виде тематических материалов, уроков созданных собственноручно, а так же переводов статей и новостей, полученных с зарубежных информационных ресурсов.

Копирование материалов сайта разрешено только с указанием активной индексируемой гиперссылки на данный сайт!

ДИСКЛЕЙМЕР/DISCLAIMER:

Я сам вдохновляюсь материалами, которые предлагаются вам на обозрение, будь то интересные руководства или полезные и впечатляющие подборки (дизайнов, шаблонов, макетов и т.д.), и по возможности всегда сохраняется ссылка на источники, и сообщается  автор изображений, использованных в подборках или руководствах. Зачастую, ссылка на источник не ведёт напрямую к автору шедевра, но если кто-то захочет использовать какие-либо изображения, графические элементы, исходники, которые здесь предоставлены, то единственное требование, выставленное к перепосту, заключается в сохранении ссылки на источник, а также соблюдение условий лицензионного соглашения (если таковое имеется). Если кто-то желает модифицировать тот или иной продукт, изменить его, подкорректировать, то ему придется самостоятельно искать настоящего автора материала.