We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 31775
    • 14 Posts
    Уважаемые, прошу помощи.

    Есть структура:

    1. root smiley
    1.1. Папка
    1.1.1. какой то документ
    1.1.2. какой то документ
    1.1.3. папка
    1.1.3.1. документ
    1.1.3.2. документ
    1.1.4. Папка с новостями
    1.1.4.1. документ новости
    1.1.4.2. документ новости
    2.1. Папка
    2.1.1. какой то документ
    2.1.2. какой то документ
    2.1.3. папка
    2.1.3.1. документ
    2.1.3.2. документ
    2.1.4. Папка с новостями
    2.1.4.1. документ новости
    2.1.4.2. документ новости

    Задача - вывести для любого документа 1.1.* новости из 1.1.4, для 2.1.* новости из 2.1.4 и т.д.

    Чувствую, что элементарно, но голову сломал. Спасибо
      • 10309
      • 14 Posts
      а если для родителя новости сделать группу NEWS-FOLDER, тогда в своей ветке нужно будет найти страницу из этой группы и ... Ditto... smiley

      сорри - я новичек - 2ой день изучаю МодХ. мне запрос к базе написать - проще smiley
        i`m a Russian man...
        • 31775
        • 14 Posts
        Вот и у меня вызревает идея, что надо искать в родителе папку по имени определенному.
        Другие мысли?
          • 9198
          • 100 Posts
          Ну первое что приходит на ум:
          1. использовать разные шаблоны для документов 1.1.* и 2.1.*
          2. Использовать UltimateParent и PHx
          что-то типа этого:
          [!Ditto? &parents=`[+phx:input=`[[UltimateParent]]`:select=`1.1=1.1.4&2.1=2.1.4`+]`!]
          

          Вместо 1.1, 1.1.4, 2.1, 2.1.4 использовать ID документов smiley
          3. Использовать TV с @INHERITсодержащий id папки с новостями и в Ditto подставить его.
            • 31775
            • 14 Posts
            1 - 2 не катит в силу того, что наполнять сайт (создавать папки типа 1.1. и 2.1.) будет уже заказчик, и меня рядом не будет.
            Т.е. заказчик должен иметь возможность создать папку с новостями (1.1.4), каким то волшебным образом промаркировать, что это есть папка новостей для данного раздела. Дальше задача системы.

            3. Не асилил, можно поподробнее?
              • 9198
              • 100 Posts
              Создаешь TV (например NewsDoc), значение по умолчанию @INHERIT
              У корневых документов (1.1 и 2.1) указываешь в этом TV ID документа с новостями
              Вызываешь Ditto
                [[Ditto? parents=`[*NewsDoc*]`]]
              

                • 10309
                • 14 Posts

                Т.е. заказчик должен иметь возможность создать папку с новостями (1.1.4), каким то волшебным образом промаркировать, что это есть папка новостей для данного раздела. Дальше задача системы.

                так я ж и написал - посмотрите группы документов: Права веб-пользователей-> Группы документов
                  i`m a Russian man...
                  • 31775
                  • 14 Posts
                  Quote from: EVD at May 18, 2008, 08:38 AM

                  Создаешь TV (например NewsDoc), значение по умолчанию @INHERIT
                  У корневых документов (1.1 и 2.1) указываешь в этом TV ID документа с новостями
                  Вызываешь Ditto
                    [[Ditto? parents=`[*NewsDoc*]`]]
                  



                  Принимается. Если не найдется более "секретарских" вариантов, сделаю так.
                  Спасибо
                    • 31775
                    • 14 Posts
                    Quote from: FuN_ViT at May 18, 2008, 08:44 AM

                    так я ж и написал - посмотрите группы документов: Права веб-пользователей-> Группы документов
                    Это звучит удобно, но интересует реализация. Так как перебирать все подряд накладно по базе будет (сотни и сотни документов).
                      • 10309
                      • 14 Posts
                      Quote from: volcan0 at May 18, 2008, 09:22 AM

                      Quote from: FuN_ViT at May 18, 2008, 08:44 AM

                      так я ж и написал - посмотрите группы документов: Права веб-пользователей-> Группы документов
                      Это звучит удобно, но интересует реализация. Так как перебирать все подряд накладно по базе будет (сотни и сотни документов).

                      да не особо большая переборка - зашел пользователь на сайте в 3.1.5 -> родитель 3.1 так? нашли у этого родителя документ в группе "Новости раздела" - получили id - его даем дитто и всё

                      если селектом -
                      select sc.id from modx_documentgroup_names d_gn
                      inner join modx_document_groups dg on dg.document_group = d_gn.id
                      inner join modx_site_content sc on sc.id=dg.document
                      where d_gn.name=’News Folder’ and sc.parent=’53’

                      News Folder - группа для каталога с новостями
                      53 - id родителя (3.1)

                      причем этот селект должен работать быстро, т.к. в базе поля, по которым я связал - индексируются.



                        i`m a Russian man...