We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 3256
    • 26 Posts
    Уважаемые, помогите решить такую проблему:
    В документе вызывается дитто:
      [!Ditto? &id=`main` &language=`russian-UTF8` &tpl=`ready_row` &noResults=`` &depth=`2` &paginate=`1` &summarize=`3` &paginateAlwaysShowLinks=`0`    !]


    Шаблон элемента списка ready_row тоже содержит вызов ditto:
    		<h2>[+title+]</h2>
    <div class="desc">[+content+]</div>
    
    [[Ditto? &documents=`[+partsofready+]` &tpl=`partofready`]]


    Cоответсвенно, шаблон partofready:
    <a href="[+url+]">[+title+]</a>


    Так вот задача,в последнем шаблоне partofready получить значение ID вызывающего (в данном случае это не родительский) документа.

    Т.к. выбираются документы из списка перечисленных, то плейсхолдер [+parent+] выдает родительские документы тех,что перечислены в списке &documents
      • 3256
      • 26 Posts
      Quote from: Andchir at May 16, 2010, 03:16 PM

      может [*id*] (именно со звездочками)

      [*id*] выводит id "верхнего" документа,т.е. схема такая:

      [tt]документ1
      -документ1.1
      -документ1.2
      --документ1.2.1
      --документ1.2.2
      --...
      -...[/tt]

      соотв.,нужно для документа1.2.1 получить id документа1.2
      [*id*] при вызове в чанке документа1.2.1 выдает id документа1





        • 7368
        • 264 Posts
        [*parent*] - Возвращает ID родительского документа

        И вот еще http://www.modx-cms.ru/dokumentatsiya/razrabotka/programmirovanie/modx-api/getparent.html
          • 3256
          • 26 Posts
          Quote from: Kollad at May 18, 2010, 02:58 AM

          [*parent*] - Возвращает ID родительского документа
          [*parent*] в контексте данного примера возвращает действительно ID родительского документа,но того,что возвращается записью [*id*], т.е. Id некоего документа0

          getParent()
          ,если этот метод вызвать в чанке partofready каким-либо образом,он вернет тоже значение,что и [+parent+] (т.е. id своего родителя в дереве сайта),а в контексте задачи нужно получить id вызывающего документа(это не одно и тоже,т.к. при вызове ditto используется условие &documents=``)
            • 3256
            • 26 Posts
            Quote from: bfocus at May 18, 2010, 02:29 AM

            Quote from: Andchir at May 16, 2010, 03:16 PM

            может [*id*] (именно со звездочками)

            [*id*] выводит id "верхнего" документа,т.е. схема такая:

            [tt]документ1
            -документ1.1
            -документ1.2
            --документ1.2.1
            --документ1.2.2
            --...
            -...[/tt]

            соотв.,нужно для документа1.2.1 получить id документа1.2
            [*id*] при вызове в чанке документа1.2.1 выдает id документа1

            Извините,немного запутал.Это не схематичное изображение дерева сайта,это то,как документы сформированы в вызове конструкции сниппетов ditto.
            А дерево может быть таким,например:

            [tt]документ1
            -документ1.1
            -документ1.2
            --документN.i.j(произвольный док-т дерева сайта)
            --документM.k.l(произвольный док-т дерева сайта)
            --...
            -...
            [/tt]
              • 3256
              • 26 Posts
              господа,неужели не интересно разобраться.Это же связано с работой основного сниппета
                • 785
                • 2,113 Posts
                Quote from: bfocus at May 20, 2010, 02:47 AM

                господа,неужели не интересно разобраться.Это же связано с работой основного сниппета
                Вложенный вызов Ditto вряд ли так уж востребован, да и скорость работы в этом случае, наверное, не слишком высокая. Мне кажется, что проще было бы написать свой сниппет.
                А по теме – скорее всего, просто так нужное значение не получить. Можно попробовать написать какой-то экстендер или вызывать сниппет, который реализует нужную логику.
                  Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                  Статьи о MODx, регулярно новые публикации
                  • 3256
                  • 26 Posts
                  Нашлось таки решение.
                  Наткнулся на статью http://community.modx-cms.ru/blog/tips_and_tricks/334.html
                  С помощью этого экстендера можно делать доступными в ditto различные плейсхолдеры и передавать в них любые значения.Соответственно,передал туда id вызывающего документа