We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 2744
    • 8 Posts
    Как в дитто указать какой tpl шаблон выводить для нужной страницы?
    То есть у меня задача вывести шаблон, отличный от тех, которые выводятся на всех страницах

    вот [!Ditto? &tplFirst=`table-courses-first` &tplLast=`table-courses-last` &tpl=`table-courses` &parents=`[*id*]` &sortBy=`menuindex` &sortDir=`ASC` !]

    Нужно например для страницы с ID 76 вывести другой tpl
      • 35737
      • 30 Posts
      Я в таких случаях создаю копию шаблона и прописываю нужные параметры там. Ну и в параметрах страницы, на которой вывод должен отличаться, прописываю модифицированный шаблон.
        • 2744
        • 8 Posts
        Это понятное дело.
        Как обойтись без создания копиий.
        Хочется более менее автоматизировать вывод, а не создавать кучу копиий.
          • 25599
          • 59 Posts
          Приветствую!

          Я делаю через TV. Создаю параметр типа DropDown List Menu и прописываю:
          Шаблон 1=={{tpl-1}}||
          Шаблон 2=={{tpl-2}}
          

          А на страницах вызов Ditto:
          [[Ditto? &tpl=`[*имя-tv-параметра*]`]]


          Если в основном нужно использовать "Шаблон 1", то его прописываем в "Значении по умолчанию" - {{tpl-1}}.
          А на нужной странице просто выбираете "Шаблон 2" и всё.
            • 1788
            • 1,103 Posts
            Несколько шаблонов + плагин ManagerManager позволяют убрать в редакторе лишние поля.
            Например у новостей необходима дата публикации, а у простой страницы поле даты и аннотации не нужно, у галереи вообще почти все поля выключить можно. Пример:
            mm_default('pub_date');
            mm_default('richtext', 1);
            mm_widget_showimagetvs(); 
            mm_synch_fields('pagetitle,longtitle');
            mm_renameField('longtitle','Заголовок');
            mm_renameField('searchable','Карта сайта');
            mm_renameTab('settings', 'Настройка');
            mm_widget_accessdenied('2,3,5', 'Запись запрещена. Создайте дочерний ресурс (документ).');
            mm_default('cacheable', '0', '', '5', '0'); // cache disable
            
            mm_hideFields('longtitle,link_attributes,menuindex,which_editor,log,clear_cache,resource_type,content_dispo,content_type,template');
            
            mm_hideFields('pub_date,unpub_date,introtext', '', '3'); // основные страницы
            mm_hideFields('pub_date,unpub_date,introtext,alias,menuindex,is_folder,menutitle,content', '', '5'); // галерея
            mm_hideFields('pub_date,unpub_date,introtext,alias,menuindex,is_folder,cacheable', '', '6'); // контакты
            mm_hideFields('alias,menuindex,menutitle,is_folder,cacheable', '', '7'); // новости

            Дочерние ресурсы берут шаблон родителя.
            А уже дальше в шаблоне можно сниппетом или phx сделать логику для родителя или дочки, или в зависимости от уровня.
            [*id:is=`5`:then=`{{news}}`:else=`[*content*]{{назад}}`*]
            В примере в {{news}} вызов дитто для родителя новостей.

            Шаблоном убиваете несколько "зайцев".
              • 2744
              • 8 Posts
              rpa Благодарю, твой способ отлично вписался в мою логику, только я в чанк воткнул весь ditto, а в шаблоне сделал вывод просто tv поля, мне так удобнее.

              antey спасибо за инфу, это также будет полезно, я попробую.