Шаблон генерации seo_title и связи

InstantCMS 2.X
#1 12 октября 2017 в 10:11
Привет.

Сразу суть. Есть родительский тип контента Бренды (системное имя brands) и дочерний Товары. Каждый товар в обязательном порядке привязывается к бренду. А теперь вопрос — как сделать, если это вообще возможно, чтобы в title выводилось название бренда. Сейчас шаблон генерации title выглядит так:
{category} в Городе {title}
нужно что-типа такого:
{category} {parent_brands_id} в Городе {title}
Но этот вариант не работает. Есть ли еще какой-то способ?

В файле шаблона в теле записи ссылка на бренд выводится кодом <?php echo $fields['parent_brands_id']['html']; ?>

Версия 2.8.1.

Спасибо.
#2 12 октября 2017 в 16:41
В общем, видимо это сделать нельзя. Сделал в коде шаблона.

Тему не закрываю, вдруг кто-то все-таки подскажет, как решить эту задачку из админки.
#3 12 октября 2017 в 19:57
DолбаK, это ошибка движка, по идее ваша конструкция ({category} {parent_brands_id} в Городе {title}) должна работать, только выдавать она будет не то, о чем вы говорите, а… Типа "Мыльницы Oriflame в городе зеленая мыльница"

У меня тоже в одном из типов контента не работает — то id родителя выдает, то вообще своей жизнью живет. Писал где-то на гите, но… Не подтверждается баг…
#4 12 октября 2017 в 22:15

не то, о чем вы говорите, а… Типа "Мыльницы Oriflame в городе зеленая мыльница"

AndroS
Мне именно так и надо. Но не работает.
Я посмотрел в бд, parent_brands_id — это поле сожердит id родительской записи, но не его тайтл. Видимо, поэтому и не срабатывает. Связи совсем недавно появились, и, видимо, просто до этого еще разработчики не добрались. Т.е., использование поля родителя в шаблоне генерации seo_title не предусмотрено. Возможно, когда-нибудь такая опция появится. Сейчас я для конкретного типа контента настроил шаблон кодом в файле templates/шаблон/controllers/content/item_view.tpl.php, а в шаблоне генерации сео тайтлов в админке очистил. Теперь всё так, как мне нужно.

Хотел написать, типа, если кому надо — обращайтесь))) В общем, сделал так:

вот это
  1. $seo_title = !empty($item['seo_title']) ? $item['seo_title'] : $item['title'];
  2. $this->setPageTitle($seo_title);
заменил на это
  1. if ($ctype['name'] == 'catalog'){
  2. $s_t = $item['category']['title'].' '.strip_tags($fields['parent_brands_id']['html']).' в Городе '.$item['seo_title'];
  3. } else {
  4. $s_t = $item['seo_title'];
  5. }
  6. $seo_title = !empty($item['seo_title']) ? $s_t : $item['title'];
  7. $this->setPageTitle($seo_title);
где catalog — системное имя типа контента, а brands — системное имя родителя.
#5 12 октября 2017 в 22:53
DолбаK, в том и юмор, что в документации и самомо движке заявлено, что должно по parent_id_type срабатывать, и даже срабатывает. Но почему-то не во всех типах контента. Видимо, что-то в настройках типа контента или полей ломает заложенную логику вывода имени родительского поля в мета-тегах
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.