Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
vinegredz

Как изменять <titile> для баз данных?

Recommended Posts

Здравствуйте!

 

Очень нужно иметь полный контроль над тегом <title> для каждой базы данных по отдельности. По умолчанию в этот тэг подставляется только название записи и название сайта.

 

Знаю, что можно создать шаблон страницы (как например customWrapper), но при попытке вписать туда переменные из базы данных страница крашится.

 

Нужно иметь полный контроль над этим тегом, чтобы поставлять туда данных из базы данных через переменные вроде $record->customFieldDisplayByKey('name').

 

И еще не понятно как менять содержимое этого тега в зависимости от того на каком уровне базы данных находится пользователь:

 

1. Тайтл, если на страницу категории или подкатегории

2. Тайтл, если на странице записи

 

В этих случаях тайтл должен быть разным.

 

Подскажите, пожалуйста.

Share this post


Link to post
Share on other sites

Я конечно не знаком с работой базы данных, но если тайтл генерируется автоматически вряд ли у вас будет доступ к нему напрямую из шаблона.

Share this post


Link to post
Share on other sites

{{\IPS\Output::i()->title = $record->customFieldDisplayByKey('name') . ' - ' . \IPS\Output::i()->title;}}

 

И еще не понятно как менять содержимое этого тега в зависимости от того на каком уровне базы данных находится пользователь

В шаблоне какой страницы (например, в шаблоне листинга категорий или в шаблоне записей) Вы будете модифицировать тайтл, на той изменения и будут. В связи с чем набор шаблонов для каждой базы Pages, используемой в паблике, необходимо делать свой. Стандартный набор шаблонов редактировать не нужно, поскольку он используется как образец для создания кастомизируемых наборов.

Share this post


Link to post
Share on other sites

Обалдеть, это работает. Наконец-то понятный способ влияния на title, чтобы СЕО рос. Стандартный подход к тайтлам просто деревянный. Большое спасибо!

Share this post


Link to post
Share on other sites

Наделся что тег <meta name="description" content="">, тоже так редактируется, но нет) Пробовал банальный подмены, вроде:

 

{{\IPS\Output::i()->description = $record->customFieldDisplayByKey('name') . ' - ' . \IPS\Output::i()->description;}}
{{\IPS\Output::i()->desc = $record->customFieldDisplayByKey('name') . ' - ' . \IPS\Output::i()->desc;}}
{{\IPS\Output::i()->desk = $record->customFieldDisplayByKey('name') . ' - ' . \IPS\Output::i()->desk;}}

 

Можете подсказать? Понял, что есть нечто \IPS\Output::i() и что оно отвечает за вывод в том числе и метаданных. Наверняка так можно любой тег в head редактировать?

Edited by vinegredz

Share this post


Link to post
Share on other sites

Еще дополню, что эта конструкция точно не работает для шаблона categoryHeader:

 

{{\IPS\Output::i()->title = 'Здесь просто текстовый заголовок';}}

 

Я ожидаю увидеть в title только этот текст, а выводится title по умолчанию для категории.

 

В настройках категории "Метатеги и заголовок" все поля пустые.

Share this post


Link to post
Share on other sites
Можете подсказать?

{{\IPS\Output::i()->metaTags['description'] = 'My Text.';}}

 

Еще дополню, что эта конструкция точно не работает для шаблона categoryHeader

Не тот шаблон редактируете. Если нужно изменить тайтл на заглавной странице базы, то Вам нужен шаблон "index", из группы "Category Index".

Share this post


Link to post
Share on other sites

{{\IPS\Output::i()->metaTags['description'] = 'My Text.';}}

 

Это работает. Логику понял. Даже с другими тегами справился. Спасибо!

Share this post


Link to post
Share on other sites
Не тот шаблон редактируете. Если нужно изменить тайтл на заглавной странице базы, то Вам нужен шаблон "index", из группы "Category Index".

 

Да в index работает, но кроме корня базы данных изменять title нужно и на странице каждой категории. За эти страницы, если не ошибаюсь, отвечают шаблоны из группы "Listing". Вот на этих шаблонах и не работает.

Share this post


Link to post
Share on other sites
За эти страницы, если не ошибаюсь, отвечают шаблоны из группы "Listing".

Ошибаетесь. Страницы категорий, это шаблон "index", группы "Category Articles".

Share this post


Link to post
Share on other sites

Это если в настройках базы данных в качестве главной страницы выбран пункт "Отображать записи как статьи". Тогда да, шаблон будет "index" из группы "Category Articles".

 

У меня в корне базы данных отображаются категории. Я редактировал шаблоны "categoryHeader", "categoryTable" и "categoryRow" и вижу изменения на страницах.

 

Ранее я успешно с вашей помощью изменил titile для шаблона "record". Скорее всего я расплывчато описываю то, что мне нужно. Максимально конкретно задача звучит так:

 

Как влиять на title страницы, за которую отвечает шаблон categoryHeader?

 

P.S. Я конечно попробовал редактировать шаблон "index", группы "Category Articles" и это действительно работает, но мне подходит.

Edited by vinegredz

Share this post


Link to post
Share on other sites

Значит в шаблон "categoryTable" вставьте, или даже в "categoryFooter". Нужно что бы модификация шла после объявления и присвоения значения переменной обработчиком страницы.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...