Переместить часть кода с поля 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
126
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.