We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 23732
    • 2 Posts
    Сайт состоит из основной части и боковой панели. Надо чтобы в боковой панели (советы) показывался на каждой странице один совет, при чем чтобы он не повторялся. Т.е. на странице 1 совет№1, на странице2 совет №2. Как это можно реализовать? Сейчас сниппет выглядит так [[Ditto? &tpl=`RIGHT` &startID = `3` &summarize=`1`]]. Но он выводит только совет №2 на всех страницах, при чем не сам совет, а название совета.
    Извиняюсь за каламбур, заранее спасибо
      • 20380
      • 118 Posts
      Насколько я соображаю, так как вы хотите, не получится. Если только вы сами не выберите, какой именно совет на какой странице показывать (например, с помощью tv). Тогда - да, тогда можно конкретно этот совет выводить на этой конкретной странице. А как еще система должна узнать, какой совет на какой странице выводить, чтобы они не повторялись?
      Еще один, более простой вариант - выводить случайный совет. Тогда нужно только вызов дитто делать некэшируемым и sortby rand
      А на счет того, что у вас только заголовок выводится - так это в чанке "RIGHT" задается, как измените,так и будет
      П. С. Конечно, если я правильно поняла ваше описание, оно несколько запутанно
        • 9085
        • 630 Posts
        Так если выводится на каждой странице отдельный совет, чтобы он не повторялся, не лучше ли эти самые советы поместить в TV (без создания отдельных документов)?

        Или, как вариант - сделать отдельно специальную таблицу "советы" и к каждой странице привязать свой совет. Собственным сниппетом (один запрос к базе) выводить нужную страницу.
          Правильно заданный вопрос повышает вероятность получения нужного ответа.
          Что-то не работает? Загляните в лог ошибок!
          Есть проблема? "Локализуйте" её!
          Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx
          • 25105
          • 15 Posts
          Quote from: esche at Sep 17, 2010, 07:48 PM

          Так если выводится на каждой странице отдельный совет, чтобы он не повторялся, не лучше ли эти самые советы поместить в TV (без создания отдельных документов)?

          Или, как вариант - сделать отдельно специальную таблицу "советы" и к каждой странице привязать свой совет. Собственным сниппетом (один запрос к базе) выводить нужную страницу.
          Согласен, реализуется не сложно. + Если в сниппете запросы сделать с использованием API то и вызов его можно будет закешировать.Это всяко лучше чем создавать каждому совету отдельный документ.
          Другое дело если советов в базе больше чем страниц с контентом..

          porokh, если уж ействительно реализация нужна именно в связке документов+Ditto, то я посоветовал бы сделать следующее:
          Для каждой страницы создать TV параметр - "ID совета [*id_soveta*]" и вставлять туда вручную ID документа с тем советом котрый хотелось бы видеть в боковой панели.
          Соответственно поправить код вызова Ditto:
          [[Ditto? &tpl=`RIGHT` &documents = `[*id_soveta*]` ]]

          Ну и в довершение, для того чтобы ваш совет корректно отображался на сайте, Необходимо в чанке RIGHT сформировать корректный шаблон вывода.
          В таком духе:
          <h2>Важный совет</h2>
          <strong>[+pagetitle+]</strong>
          [+content+]
          

          Дополнительно по плейсхолдерам можно почитать тут: http://www.modx-cms.ru/dokumentatsiya/razrabotka/snippety/ditto/pleysholdery-ditto.html

          Конечно TV параметр можно организовать удобнее с пом. запроса к базе и построением выпадающего меню советов, но это уже сложнее и не совет новичку smiley