Как сделать в MODX разные заголовки на разных страницах

12 3
A
На сайте с 12.10.2011
Offline
186
431

Всем привет.

На сайте все заголовки (head - title) одинаковые. При этом в MODX я не вижу такой банальной фичи, как установить заголовок страницы, поэтому нужно изощриться я так понял.

На сайте два шаблона, оба используют чанки (если я правильно понял), где и указан уже title.

А именно в этом: [[$K.Head]]

1. Погуглил, попробовал установить пакет MetaFormat - но что-то не получилось (если кто знает как настроить - пишите).

2. Затем попробовал через TV (Template Variable), но пока не заработало. Правильно я понял нужно создать "Новое дополнительное поле"?

Может есть более просто решение?

3. Кстати, в документе есть "Заголовок" и "Расширенный заголовок. Вот я думал это оно - но нет.



Onecontent
На сайте с 02.05.2016
Offline
82
#1
Покажите как внутри сниппета K.Head написан вывод заголовка.
Создание и продвижение сайтов в Самаре ( https://onecontent.ru ) Автоаксессуары и тюнинг в Красноярске ( https://carbonado24.com )
Antitiron
На сайте с 06.12.2012
Offline
84
#2
alexverem :
Кстати, в документе есть "Заголовок" и "Расширенный заголовок. Вот я думал это оно - но нет.

Это оно и есть, но нужно смотреть в шаблон страницы, как именно вывод заголовков страницы происходит.

Смотри подробнее чанк  [[$K.Head]]. Пример моего кода:

$headTitle = $_modx->resource.longtitle != '' ? $_modx->resource.longtitle : $_modx->resource.pagetitle
A
На сайте с 12.10.2011
Offline
186
#3
Onecontent #:
Покажите как внутри сниппета K.Head написан вывод заголовка.

Выводится так:  <title>[[++site_name]]</title>

A
На сайте с 12.10.2011
Offline
186
#4
Antitiron #:
$headTitle = $_modx->resource.longtitle != '' ? $_modx->resource.longtitle : $_modx->resource.pagetitle

Это php или внутренний язык modx? 

Вот допустим в K.Head   такой код:


<head>

    <title>[[++site_name]]</title>


Нужно что-то вроде такого?

<head>

        $headTitle = $_modx->resource.longtitle != '' ? $_modx->resource.longtitle : $_modx->resource.pagetitle

    <title>[[++headTitle]]</title>


Или пхп (вряд ли)?

    <title><?=  $headTitle  ?></title>

Antitiron
На сайте с 06.12.2012
Offline
84
#5
alexverem #:

Выводится так:  <title>[[++site_name]]</title>

Поэтому у всех страниц title и одинаковый.

Пробуйте заменить так:

<title>{$_modx->getPlaceholder('longtitle')}</title>

И тогда заговолок будет подхватываться из поля «Расширенный заголовок».

Либо так:

{if $_modx->getPlaceholder('longtitle') != ''}
    <title>{$_modx->getPlaceholder('longtitle')}</title>
{else}
    <title>{$_modx->getPlaceholder('pagetitle')}</title>
{/if}

Тогда, если  «Расширенный заголовок» будет пустой, заберет значение из поля «Заголовок».

A
На сайте с 12.10.2011
Offline
186
#6
Antitiron #:

Поэтому у всех страниц title и одинаковый.

Пробуйте заменить так:

И тогда заговолок будет подхватываться из поля «Расширенный заголовок».

Либо так:

Тогда, если  «Расширенный заголовок» будет пустой, заберет значение из поля «Заголовок».

Попробовал так:

<title>{$_modx->getPlaceholder('longtitle')}</title>

Просто как текст выводит {$_modx->getPlaceholder('longtitle')}, т.е. это и есть значение заголовка теперь

Может надо как то выводить как тут через скобки?   <title>[[++site_name]]</title>

Antitiron
На сайте с 06.12.2012
Offline
84
#7
alexverem #:

Попробовал так:

Просто как текст выводит {$_modx->getPlaceholder('longtitle')}, т.е. это и есть значение заголовка теперь

Может надо как то выводить как тут через скобки?   <title>[[++site_name]]</title>

Странно, пробуй:

<title>[[*longtitle]]</title>
Onecontent
На сайте с 02.05.2016
Offline
82
#8
alexverem #:

Попробовал так:

Просто как текст выводит {$_modx->getPlaceholder('longtitle')}, т.е. это и есть значение заголовка теперь

Может надо как то выводить как тут через скобки?   <title>[[++site_name]]</title>

Значит не включена обработка шаблонизатора Fenom.

Пробуйте простой вывод из плейсхолдера, как выше порекомендовали. 

[[*longtitle]]

A
На сайте с 12.10.2011
Offline
186
#9
Antitiron #:

Странно, пробуй:

Ура спасибо всем! Теперь сюда можно условные какие конструкции добавить? Типа 

{if $_modx->getPlaceholder('longtitle') != ''}
    <title>{$_modx->getPlaceholder('longtitle')}</title>
{else}
    <title>{$_modx->getPlaceholder('pagetitle')}</title>
{/if}

Только с обычным плейсхолдером...

Antitiron
На сайте с 06.12.2012
Offline
84
#10
alexverem #:

Ура спасибо всем! Теперь сюда можно условные какие конструкции добавить? Типа 

Только с обычным плейсхолдером...

{if [[*longtitle]] != ''}
    <title>[[*longtitle]]</title>
{else}
    <title>[[*pagetitle]]</title>
{/if}
Но я бы посоветовал включить Fenom.
Парсер / pdoTools / Компоненты / docs.modx.pro
  • docs.modx.pro
Парсер pdoTools представляет из себя отдельный класс, который прописывается в системных настройках MODX и перехватывает обработку тегов на странице. В старых версиях компонента, включение парсера нужно было подтверждать при установке, но с версии 2.1.1-pl он включается по умолчанию. Если, по каким-то причинам, вас это не устраивает - удалите...
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий