We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 9169
    • 1 Posts
    Здравствуйте уважаемые гуру.
    MODx стал осваивать совсем недавно и назрел вопрос: нужно каждому документу, из определенной папки, сопоставить TV параметр (фотку) для того чтобы потом вывести данные документы с фотками в определенном разделе сайта.
    При этом нужно чтобы пользователь при добавлении/заполнении документа видел только предназначенный для этого документа TV параметр. Сами же TV параметры привязываются только к шаблонам и в документах,в свою очередь, выбирается шаблон. Из этого получается, как я понимаю, что для каждого раздела сайта нужно будет делать свой шаблон и следовательно при изменении чего-либо в шаблоне главной страницы придется так же менять это и в шаблонах других страниц. Есть ли другой способ?
      • 19411
      • 19 Posts
      Если я правильно тебя понял, то тебе надо чтот тип этого:

      Есть раздел новости, заходим в него, там список новостей, скажем картинка (которая прикреплена через тв параметр, заголовок и краткий текст)

      Тогда надо создать сам тв с настройками: тип ввода image, Визуальный компонент: image. указываем шаблон скажем у нас для подробной новости идет обычный основной шаблон нашего сайта.

      Потом создаем чанк, который будет шаблоном вывода:

      <div class="img_new">[+imgnews+]</div>
      <div><a href="[~[+id+]~]" title="[+pagetitle+]">[+pagetitle+]</a></div>
      <div>[+introtext+]</div>

      где imgnews это наш тв параметр

      ну и собственно на страничке новостей можно прямо в редакторе вставить вызов или в шаблоне

      [[Ditto? &tpl=`article`]]

      где article наш чанк

      естественно все новости должны быть дочерними для странички новостей
        • 26883
        • 137 Posts
        Из этого получается, как я понимаю, что для каждого раздела сайта нужно будет делать свой шаблон и следовательно при изменении чего-либо в шаблоне главной страницы придется так же менять это и в шаблонах других страниц. Есть ли другой способ?
        Разумеется, способ есть. И он предусмотрен логикой работы в MODx. Шаблонов может быть множество (у меня, например, до 50 доходит). Но шаблоны совсем не обязательно делать каждый на HTML. Шаблоны можно собрать из "крупных" блоков - чанков. Этим обеспечивается и единство верстки, и единообразный внешний вид, и локализация ошибок - любой HTML-код надо записывать только в одном месте.
        Например, имеется шаблон "главной" страницы:

        {{003-01-До-Левой}}
           {{Блок-Левая-общее}}
        {{003-02-До-Правой}}
           {{Блок-Правая-Общее}} 
        {{003-03-До-Главной}}
           <div class="content">
            [*content*]
            </div>
        {{003-04-Конец}}
        

        Он очень прост. А шаблон какой-то другой страницы может выглядеть так:

        {{003-01-До-Левой}}
         {{Блок-Modx-Интро}}
        {{003-02-До-Правой}}
           {{Блок-Modx}}
        {{003-03-До-Главной}}
            {{Навигация-Контент-Печать}}
            {{Блок-Список-Древо}}
            {{FreeComments}}
        {{003-04-Конец}}

        Он отличается чанками, в которых описано содержимое боковых колонок. Очень удобно - хоть шабонов много, но все редактирование в одном месте, можно за несколько секунд создать любой новый шаблон. Например:

        {{003-01-До-Левой}}
         {{Блок-Левая-общее}}
         {{Блок-Правая-общее}} 
        {{003-02-До-Правой}}
           {{Блок-Modx-Интро}}
           {{Блок-Modx}}
        {{003-03-До-Главной}}
            {{Навигация-Контент}}
            {{Comments}}
        {{003-04-Конец}}

        А уж привязывать ли TV к шаблонам - личное дело. Меня, например, удивляет, зачем к "новостям" привязывают TV типа Image для "маленьких" картинок. Очень напоминает ректальную стоматологию... Ведь именно в MODx есть способы проще и удобнее. Есть "аннотация", куда можно и текст написать, и картинку вставить. И есть основной контент - "более подробная новость". Вывод и того и другого очень удобно предусмотрен самой логикой MODx...