We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 6623
    • 127 Posts
    Как поставить на определенную глубину свой чанк? Т.е. есть ресурсы, к примеру новости, как на страницу вывести к примеру текст из нынешней новости и список ее дочерних с ссылками на дочерние?
    Чтоб хоть как то упростить, приведу пример дерева этих новостей
    Новость
    --Подновость 1
    ----ПодподНовость1
    ----ПодподНовость 2
    ----...
    ----ПодподНовость Х
    --Подновость 2
    ----...
    --...
    --Подновость Х
    ----ПодподНовость 1
    ----...
    ----ПодподНовость Х
    Нужно вывести примерно так(хотелось бы):
    <div>Заголовок нынешней новости</div>
    <div>ее текст</div>
    (foreach всех ее подновостей){
    <div>заголовок Подновость нынешней новости

    <p>вводный текст подновости</p>
    (foreach всех ее потомков){
    <div>заголовок</div>
    }

    }
    Ditto может такое сделать?



      • 5041
      • 18 Posts
      Попробуйте использовать в вызове Ditto параметр depth=`уровень_вложенности` - он будет обрабатывать вложенность документов до указанного уровня
        • 6623
        • 127 Posts
        Quote from: chertoss at Mar 01, 2010, 01:09 AM

        Попробуйте использовать в вызове Ditto параметр depth=`уровень_вложенности` - он будет обрабатывать вложенность документов до указанного уровня
        Не то. У меня нет проблемы с тем как выбрать дочерние в глубину, у меня проблема с тем, как их выстраить...
        т.е. сначала родитель потом его непосредственные потомки(если у потомка есть потомки то идут они), если нет у данного потомка потомков, то выводим следующего потомка.
        Родитель
        --Потомок
        ---потомок
        --потомок
        Родитель
        --потомок
        --потомок
        Если указать глубину, то он тупо сортирует их по указанному полю и выводит списком и получется что родитель может не быть над потомком...
          • 785
          • 2,113 Posts
          Если подробно выводить надо текущую страницу, а для всех остальных только заголовки, можно попробовать использовать Wayfinder.
            Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
            Статьи о MODx, регулярно новые публикации
            • 6623
            • 127 Posts
            Все, разобрался... Просто в чанке вызываю еще раз дитто для этого элемента.
            Теперь другой вопрос, почему нельзя вызвать некешируемый дитто в чанке, который используется другим дитто?
            Т.е.
            [!Ditto? &tpl=`chunkFather`!]
            Код chunkFather:
            [+pagetitle+]
            <ul>
            [!Ditto? &parents=`anyChank`!]
            </ul>

            И еще: Как отсортировать по menuindex? (&orderBy=`menuindex` пишет ошибку, что нет такого поля в запросе)
            Если загнать так, то он просто выведет вызов как текс, если ставить кешируемый, то все ок... Почему, кто знает?
            P.S. ну и еще так делать нормально? не нагрузит это сервер?
              • 1788
              • 1,103 Posts
              Поможет PHx + сниппет определения уровня вложенности.
              Сниппет есть в русской ветке форума.
                • 5041
                • 18 Posts
                По моему сортировать надо как sortBy=`menuindex`. Попробуйте так, должно все работать.
                На счет нагрузки на сервер ничего сказать не могу, никогда не интересовался этим вопросом.
                  • 6623
                  • 127 Posts
                  Quote from: chertoss at Mar 01, 2010, 04:24 AM

                  По моему сортировать надо как sortBy=`menuindex`. Попробуйте так, должно все работать.
                  На счет нагрузки на сервер ничего сказать не могу, никогда не интересовался этим вопросом.
                  Какоето ОООЧЕНЬ странное поведение у дитто с сортировками, может баг? В кратце:
                  &orderBy - работает только с указанием направленности сортировки(ASC/DESC), в противном случае выдает такое
                  MODx encountered the following error while attempting to parse the requested resource:
                  « Execution of a query to the database failed - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ’menuindex’ at line 4 »
                  SQL: SELECT DISTINCT sc.menutitle,sc.introtext,sc.id,sc.published,sc.pagetitle FROM `bd_name`.`modx_site_content` sc LEFT JOIN `bd_name`.`modx_document_groups` dg on dg.document = sc.id WHERE sc.id IN (58,59,60) AND sc.published=1 AND sc.deleted=0 AND (sc.privateweb=0) GROUP BY sc.id ORDER BY sc.id menuindex
                  &sortBy - сортирует как с указанием направления, так и без него, НО по дефолту обратное(DESC)
                  Вообще довольно странное поведение
                  Quote from: antey at Mar 01, 2010, 04:21 AM

                  Поможет PHx + сниппет определения уровня вложенности.
                  Сниппет есть в русской ветке форума.
                  Это на какой вопрос ответ?
                    • 1788
                    • 1,103 Posts
                    Quote from: DAS at Mar 01, 2010, 07:19 PM

                    Quote from: antey at Mar 01, 2010, 04:21 AM

                    Поможет PHx + сниппет определения уровня вложенности.
                    Сниппет есть в русской ветке форума.
                    Это на какой вопрос ответ?
                    Quote from: DAS at Feb 28, 2010, 11:49 PM

                    Как поставить на определенную глубину свой чанк?