Переместить часть кода с поля content в шаблон

Возможно ли с помощью fenom переместить часть кода с поля content в шаблон к примеру в шаблоне у меня есть место где указан заголовок и хлебные крошки но вдруг на одной странице мне понадобилось вместо этого вывести другие поля. Не городить же из за этого новый шаблон.

В докусентации встретил такую интересную штуку
{block 'content'}
    <h3>{$_modx->resource.pagetitle}</h3>
    <div class="jumbotron">
        {parent}
    </div>
{/block}
но она я так понял все равно ведет к тому что надо создавать новый шаблон.

так же есть такая вот крутая штука
cssToHead - регистрация CSS кода в шапке страницы
htmlToHead - регистрация произвольного HTML в шапке страницы
htmlToBottom - регистрация произвольного HTML в подвале страницы
jsToHead - регистрация javascript файла в шапке страницы. Если передать параметром true, то можно регистрировать сразу код.
jsToBottom - регистрация javascript в подвале страницы. Если передать параметром true, то можно регистрировать сразу код.
но и она мне не особо подходит.

Может кто еще что подскажет?
Максим
15 июля 2018, 00:02
modx.pro
1 517
0

Комментарии: 13

Руслан Сафин
15 июля 2018, 23:28
0
{if $_modx->resource.id == 1}
    В документе с id 1 выводим что хотим
{/if}
Или я не правильно понял вопрос?
    Максим
    23 июля 2018, 00:00
    0
    нет не то, у меня может быть 1000 страниц и мне на каждую такое условие писать?
    Мне как то с помощью поля контент добавить в определенные точки шаблона куски кода, к примеру заголовок обрамить в какой то див, добавить где то css, или в футере добавить карту или дополнительный номер телефона
    Алексей
    23 июля 2018, 12:02
    0
    Обычно для страниц не содержащих хлебных крошек, сайдбара и прочего, создается один шаблон и используется на таких страницах.
    Либо один базовый шаблон, который расширяется другими шаблонами, как указано у вас в топике.

    В базовом шаблоне пишете:
    {block 'content'}
        <h3>{$_modx->resource.pagetitle}</h3>
        <div class="breadcrumbs">
            <ul>
                <li><a href=""></a><li>
            </ul>
        </div>
    {/block}
    И если у вас всего одна/две страницы где не нужны хлебные крошки и заголовок, либо другой html код, пишете в новом шаблоне примерно так:
    {extends 'template:_base.tpl'}
        {block 'content'}
        {if $_modx->resource.id == 5}
            Другой контент
        {else}
            {parent}
        {/if}
    {/block}
    И да, новый шаблон придется создать, иначе у вас получится полная каша в которой, вы со временем, сами и запутаетесь.

    Условием, например, можно и на id шаблона проверять.
      Максим
      24 июля 2018, 23:08
      0
      ну если это будет в блоке контент нужной мне страницы не думаю что там будет где путаться, а вот с кучей шаблонов мне кажется точно запутаться можно. Вот я и ищу способ решить данный пример. Кстати ваш пример в таком случае не работает((
      Может еще какой то способ есть?
        Алексей
        25 июля 2018, 07:54
        0
        Мой пример 100% будет работоспособен если у вас структура расширения/унаследования шаблонов будет такой, как описана в документации

        У вас один базовый шаблон(_base.tpl), который вы расширяете другими, необходимыми для вас. Для Новостей: _news.tpl, для страниц контактов и пр: _page.tpl.

        Подойдет ли это для вашей структуры сайта – не знаю. У меня были такие же задачи, как и описанные у вас. Я именно так, как написал, решал их.
          Максим
          25 июля 2018, 08:39
          0
          А если у меня 1000 таких страниц, на каждый шаблон создавать?
            Алексей
            25 июля 2018, 08:52
            0
            1000 разных страниц с разной разметкой? Я с таким не встречался…
            Да и если отталкиваться от вашего описания в посте, к примеру хлебные крошки, они же у вас везде имеют одну разметку. Вам нужно или выводить их или нет. Это все делается в шаблоне, ведь хлебные крошки у вас там?
            У меня сложилось впечатление (возможно не верное), что вы в поле контента каждой страницы храните весь HTML код, включая сайдбар, хлебные крошки, футеры, хедеры и пр.
              Максим
              25 июля 2018, 08:57
              0
              Нет не весь, есть основной шаблон в который я могу добавить контент, но в зависимости от этого контента может подцеплятся дополнительный html в любую из частей базового шаблона. Методом добавления, или замены.
                Алексей
                25 июля 2018, 09:19
                0
                Ваш вопрос начинает приобретать абстрактный характер. Конкретики нет.

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

                Мне как то с помощью поля контент добавить в определенные точки шаблона куски кода, к примеру заголовок обрамить в какой то див, добавить где то css, или в футере добавить карту или дополнительный номер телефона
                Здесь вами описаны две разные задачи.
                Первая: (заголовок обрамить в какой то див, добавить где то css) можно решить с помощью fenom условий, как писалось выше.

                Вторая: (в футере добавить карту или дополнительный номер телефона) решается с помощью дополнительных полей (ТВ).
                  Максим
                  25 июля 2018, 12:04
                  0
                  Вот ещё раз. Есть блоки в феноме, с помощью них можно взять заголовок и заменить его с дополнительно добавленным кодом, если мы хотим в футаре что то изменить то добавляем в нем блок и зомовываем в него контент. Решение то что надо но работает оно только в новом шаблоне. А можно ли это контролировать с поля контент или есть что то подобное для таких действий?
                    Дмитрий Иванов
                    25 июля 2018, 12:09
                    0
                    Контнт для контента, используйте TV для изменений на странице.
                      Максим
                      25 июля 2018, 12:15
                      0
                      У меня нет возможности плодить тв поля/шаблоны для задач которые могут понадобится всего один раз… проще в базовом шаблоне наплодить контейнеры куда можно засунуть то что мне надо
                      Алексей
                      26 июля 2018, 07:31
                      0
                      А в чем разница между новым и старым шаблоном? Модифицируйте старый шаблон, добавив в него теги:
                      {block 'content'}...{/block} {block 'header'}....{/block}
                      А далее уже все разруливайте.

                      Или вы шаблоном называете не то, что им является в понимании modx…

                      Еще один выход: создать новый шаблон (в котором у вас все работает) под базовый, а у старых ресурсов смените templates на вновь созданный. Массово поменять шаблон ресурсам можно или ручками в бд, или дополнением Batcher.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        13