Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

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

 

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

 

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

 

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

 

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

 

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

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

 

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

 

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

Рекомендованные сообщения

Опубликовано:

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

Опубликовано:

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

 

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

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

Опубликовано:
  • Автор

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

Опубликовано:
  • Автор

Наделся что тег <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 редактировать?

Изменено пользователем vinegredz

Опубликовано:
  • Автор

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

 

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

 

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

 

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

Опубликовано:
Можете подсказать?

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

 

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

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

Опубликовано:
  • Автор

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

 

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

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

 

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

Опубликовано:
За эти страницы, если не ошибаюсь, отвечают шаблоны из группы "Listing".

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

Опубликовано:
  • Автор

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

 

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

 

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

 

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

 

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

Изменено пользователем vinegredz

Опубликовано:

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

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.