We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 17188
    • 2 Posts
    У меня 2 вопроса:
    1. у меня есть некоторое количество страниц, вложеных один в другой. Каким образом можно выводить историю а-ля:

    Главная / Статьи / Название статьи 1

    к примеру структура сайта така:

    Главная
    |-
    Статьи
    |- Название статьи 1
    |- Название статьи 2
    Контакты
    2. к примеру у меня есть 10 дочерних страниц у страницы Статьи
    каким образом вывести в 2 колонки по 5 названий статей.
    Статья1 Статья6
    Статья2 Статья7
    Статья3 Статья8
    Статья4 Статья9
    Статья5 Статья10
      • 31022
      • 328 Posts
      С хлебными крошками (строкой истории) вам поможет встроенный Breadcrumbs.

      Если дочерних конкретно 10 и они меняться не будут, проще всего сделать это вручную, прописав обычные ссылки. Ну там [~id~], сами понимаете. В общем же случае, с переменным количеством, штатными средствами, насколько я знаю, никак. Ищите темы наподобие Ditto (Wayfinder) в две колонки.
        • 22532
        • 349 Posts
        1. http://modxcms.com/Breadcrumbs-577.html
        2. два вызова документов из соседних папок через дитто Ditto или использовать фильтры и TV например
          • 12736
          • 259 Posts
          Через CSS надоть две колонки делать.
          http://ditto.modxcms.com/examples/columns.html
          http://modxcms.com/forums/index.php/topic,28221.msg171470.html#msg171470

          Понятно, что в данном случае разумнее использовать Wayfinder, чем Ditto, но разницы в этом случае нет.

          Правда есть один момент получится вот так:

          статья1 статья2
          статья3 статья4

          а не

          статья1 статья3
          статья2 статья4

            • 785
            • 2,113 Posts
            Quote from: ikarushka at Sep 24, 2008, 04:03 AM

            а не
            статья1 статья3
            статья2 статья4
            Иногда требуется именно такой вариант.
            В принципе можно вызов заключить в <div> . . . </div> и написать плагин, который будет выполняться после формирования страницы. В нем следует подсчитать количество статей и найти середину, после чего добавить в нее </div><div>. Далее все делается средствами CSS.
              Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
              Статьи о MODx, регулярно новые публикации
              • 12736
              • 259 Posts
              Quote from: AKots at Sep 24, 2008, 04:15 AM


              Иногда требуется именно такой вариант.
              В принципе можно вызов заключить в <div> . . . </div> и написать плагин, который будет выполняться после формирования страницы. В нем следует подсчитать количество статей и найти середину, после чего добавить в нее </div><div>. Далее все делается средствами CSS.


              Ох ты! Хитро как.  smiley Я бы стал карячиться, что-то вроде:  cтатьям назначил tv - где можно указать номер статьи, или использовал бы штатное поле Позиция меню и выводил бы  через Ditto, чтоб сортировать можно было. А как плагин привезать к концу формирования страницы - он ведь должен перед ответом сервера впихнуть в страницу </div><div>? Он ведь получается должен еще раз парсить страницу, искать номер статьи (номер-метку), сопоставлять ее с вычесленной серидиной и менять метку на  </div><div>. Как-то так, наверно?
                • 22532
                • 349 Posts
                можно поподробнее плз.. а то у меня такая же ситуация и решение пока только тупое.. ну чтоб не мучаться
                типа три папки из каждой через дитто выводить свое..
                а если все на автоматике сделать то будет очень даже гуд grin
                  • 785
                  • 2,113 Posts
                  Quote from: ikarushka at Sep 24, 2008, 07:48 AM

                  Он ведь получается должен еще раз парсить страницу
                  Еще раз парсить не надо, добавление небольшого фрагмента не требует повторной обработки.

                  Так как сам я ничего не пробовал, все, что написано дальше – только предположение, и готовое решение может сильно от него отличаться.

                  Плагин назначается событию OnWebPageComplete, то есть управление передается в тот момент, когда страница полностью сформирована. Блок статей заранее выделен <div class="leftcolumn"> . . . </div>, а в плагине в $modx->documentOutput мы находим этот блок.
                  Каждая статья в блоке должна как-то выделяться, например, начинаться с <!--begin--> и заканчиваться <!--end-->. Программа должна посчитать количество статей и разделить на два (с учетом возможного нечетного количества). Далее находится нужный по счету элемент <!--end--> и за ним вставляется </div><div class="rightcolumn">.
                  Результат передается обратно в $modx->documentOutput. Классы rightcolumn и leftcolumn описываются в CSS.
                  В общих чертах вроде бы все.
                    Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                    Статьи о MODx, регулярно новые публикации
                    • 12736
                    • 259 Posts
                    Красиво... по идее и эту проблему вполне можно так решить: http://modxcms.com/forums/index.php?topic=28197. Спасибо
                      • 17188
                      • 2 Posts
                      спасибо всем за ответы. по первому пункту - тормознул, сразу нашел в стандартном наборе сниппет

                      по поводу второго вопроса - нашел выход с помощью сниппета Ditto и его параметра start
                      в первой колонке вывожу первые n/2 записей
                      во второй с n/2+1 первой и до конца

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