vinegredz Posted January 2, 2019 Share Posted January 2, 2019 Здравствуйте! Очень нужно иметь полный контроль над тегом <title> для каждой базы данных по отдельности. По умолчанию в этот тэг подставляется только название записи и название сайта. Знаю, что можно создать шаблон страницы (как например customWrapper), но при попытке вписать туда переменные из базы данных страница крашится. Нужно иметь полный контроль над этим тегом, чтобы поставлять туда данных из базы данных через переменные вроде $record->customFieldDisplayByKey('name'). И еще не понятно как менять содержимое этого тега в зависимости от того на каком уровне базы данных находится пользователь: 1. Тайтл, если на страницу категории или подкатегории2. Тайтл, если на странице записи В этих случаях тайтл должен быть разным. Подскажите, пожалуйста. Link to comment Share on other sites More sharing options...
siv1987 Posted January 2, 2019 Share Posted January 2, 2019 Я конечно не знаком с работой базы данных, но если тайтл генерируется автоматически вряд ли у вас будет доступ к нему напрямую из шаблона. Link to comment Share on other sites More sharing options...
Dmitriy427 Posted January 3, 2019 Share Posted January 3, 2019 {{\IPS\Output::i()->title = $record->customFieldDisplayByKey('name') . ' - ' . \IPS\Output::i()->title;}} И еще не понятно как менять содержимое этого тега в зависимости от того на каком уровне базы данных находится пользовательВ шаблоне какой страницы (например, в шаблоне листинга категорий или в шаблоне записей) Вы будете модифицировать тайтл, на той изменения и будут. В связи с чем набор шаблонов для каждой базы Pages, используемой в паблике, необходимо делать свой. Стандартный набор шаблонов редактировать не нужно, поскольку он используется как образец для создания кастомизируемых наборов. Link to comment Share on other sites More sharing options...
vinegredz Posted January 3, 2019 Author Share Posted January 3, 2019 Обалдеть, это работает. Наконец-то понятный способ влияния на title, чтобы СЕО рос. Стандартный подход к тайтлам просто деревянный. Большое спасибо! Link to comment Share on other sites More sharing options...
vinegredz Posted January 3, 2019 Author Share Posted January 3, 2019 (edited) Наделся что тег <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 January 3, 2019 by vinegredz Link to comment Share on other sites More sharing options...
vinegredz Posted January 3, 2019 Author Share Posted January 3, 2019 Еще дополню, что эта конструкция точно не работает для шаблона categoryHeader: {{\IPS\Output::i()->title = 'Здесь просто текстовый заголовок';}} Я ожидаю увидеть в title только этот текст, а выводится title по умолчанию для категории. В настройках категории "Метатеги и заголовок" все поля пустые. Link to comment Share on other sites More sharing options...
Dmitriy427 Posted January 3, 2019 Share Posted January 3, 2019 Можете подсказать?{{\IPS\Output::i()->metaTags['description'] = 'My Text.';}} Еще дополню, что эта конструкция точно не работает для шаблона categoryHeaderНе тот шаблон редактируете. Если нужно изменить тайтл на заглавной странице базы, то Вам нужен шаблон "index", из группы "Category Index". Link to comment Share on other sites More sharing options...
vinegredz Posted January 3, 2019 Author Share Posted January 3, 2019 {{\IPS\Output::i()->metaTags['description'] = 'My Text.';}} Это работает. Логику понял. Даже с другими тегами справился. Спасибо! Link to comment Share on other sites More sharing options...
vinegredz Posted January 3, 2019 Author Share Posted January 3, 2019 Не тот шаблон редактируете. Если нужно изменить тайтл на заглавной странице базы, то Вам нужен шаблон "index", из группы "Category Index". Да в index работает, но кроме корня базы данных изменять title нужно и на странице каждой категории. За эти страницы, если не ошибаюсь, отвечают шаблоны из группы "Listing". Вот на этих шаблонах и не работает. Link to comment Share on other sites More sharing options...
Dmitriy427 Posted January 3, 2019 Share Posted January 3, 2019 За эти страницы, если не ошибаюсь, отвечают шаблоны из группы "Listing".Ошибаетесь. Страницы категорий, это шаблон "index", группы "Category Articles". Link to comment Share on other sites More sharing options...
vinegredz Posted January 3, 2019 Author Share Posted January 3, 2019 (edited) Это если в настройках базы данных в качестве главной страницы выбран пункт "Отображать записи как статьи". Тогда да, шаблон будет "index" из группы "Category Articles". У меня в корне базы данных отображаются категории. Я редактировал шаблоны "categoryHeader", "categoryTable" и "categoryRow" и вижу изменения на страницах. Ранее я успешно с вашей помощью изменил titile для шаблона "record". Скорее всего я расплывчато описываю то, что мне нужно. Максимально конкретно задача звучит так: Как влиять на title страницы, за которую отвечает шаблон categoryHeader? P.S. Я конечно попробовал редактировать шаблон "index", группы "Category Articles" и это действительно работает, но мне подходит. Edited January 3, 2019 by vinegredz Link to comment Share on other sites More sharing options...
Dmitriy427 Posted January 3, 2019 Share Posted January 3, 2019 Значит в шаблон "categoryTable" вставьте, или даже в "categoryFooter". Нужно что бы модификация шла после объявления и присвоения значения переменной обработчиком страницы. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now