We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 12088
    • 8 Posts
    Уважаемые коллеги,

    я не так давно начал заниматься движком modx. Да что уж там, я впервые увидел его пару дней назад. Мне очень понравилась концепция и подход к сайтостроению. Его гибкость и возможности меня вполне устроили. Особенно порадовала возможность формировать xml-списков следуя логике сайта. Планирую даже сделать на нем несколько проектов различной сложности.

    Теперь по существу. Главным недостатком этого движка вижу неоднократное обращение к базе его API. Приложения Wayfinder и Ditto, как я не раз слышал, отличаются удобством и ресурсоемкостью. Следовательно, их использование необходимо только в крайних случаях, когда речь идет о десятых или сотых секунды на обработку запроса относительно высокой сложности. Тут встает вопрос о том, как же все-таки рационально использовать ресурсы сервера при организации страниц?

    Просмотрел занятную статью (вернее ряд статей) http://modx.ru/blog/modx-programming-top-menu/
    Автор хорошо потрудился, расписывая для новичков принципы работы движка. После обращений к БД я было подумал, что неплохо бы было увидеть ее физическую модельку... но постойте. Это же CMS в конце концов. И предоставляет какой-никакой интерфейс программирования http://www.modx-cms.ru/dokumentatsiya/razrabotka/programmirovanie/modx-api.html Да и организация контента с использованием TV-параметров, прикрепляемых для каждого шаблона, выглядит довольно занимательно.

    Давайте разберем небольшой пример: есть сайт, состоящий из, скажем, 6 разделов. Дизайн у всех похожий: топ, контент {левая часть, правая часть}, боттом. В левой части находится контент текущей страницы, а в правой либо меню раздело, либо форма поиска или любой другой инструмент, закрепленный за разделом. Причем почти у всех разделов правая часть разная. Обычный пример организации контента второго уровня вложенности (если взять факт, что главная страница и другие разделы на одном уровне).
    Вижу 2 варианта организации:
    1. Либо для каждого раздела делать шаблон, а общие части запихнуть в чанки и сниппеты.
    2. Программировать логику правой изменяющейся части. Писать скрипт распознавания ID раздела, ну а дальше делать switch на переход к сниппету своего раздела.

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

    Стоит еще одна проблема. Если делать для сайта Flash-версию, возможно ли прикрепить второй шаблон к странице? К примеру, делая из флэша запросы к CMS, мы бы передавали какой-нибудь параметр, тот бы его воспринимал как указатель на использование второго шаблона, и возвращал результат в качестве xml-списка параметров страницы. Вот только можно ли это сделать средствами самой CMS или нужно непосредственно править ядро?

    Хотелось бы узнать, а как Вы используете возможности modx для организации контента? И может быть скорректируете мое первое представление о системе =) Буду благодарен!
      • 897
      • 1,620 Posts
      Quote from: hex.style at Jul 12, 2010, 01:44 PM
      я не так давно начал заниматься движком modx. Да что уж там, я впервые увидел его пару дней назад.
      ...
      Главным недостатком этого движка вижу неоднократное обращение к базе его API. Приложения Wayfinder и Ditto, как я не раз слышал, отличаются удобством и ресурсоемкостью.

      вы пробовали? то что у кого-то не получилось дочиать документацию, не значит, что все так плохо КАК ВЫ СЛЫШАЛИ.
        "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

        Не используйте Revo для "просто сайтов". Используйте Evo

        Who can defeat the Russian bear?
        • 12088
        • 8 Posts
        Quote from: Aleksey at Jul 12, 2010, 02:42 PM

        Quote from: hex.style at Jul 12, 2010, 01:44 PM
        я не так давно начал заниматься движком modx. Да что уж там, я впервые увидел его пару дней назад.
        ...
        Главным недостатком этого движка вижу неоднократное обращение к базе его API. Приложения Wayfinder и Ditto, как я не раз слышал, отличаются удобством и ресурсоемкостью.

        вы пробовали? то что у кого-то не получилось дочиать документацию, не значит, что все так плохо КАК ВЫ СЛЫШАЛИ.
        Согласен, люблю опережать события. А еще я любитель изобретать велосипед. Но это не значит, что мои слова не обоснованы. Вы, как я понял, выступаете ЗА частое использование Ditto.
        Вот этот код делает 27 обращений к базе:
        [[Ditto? &startID=`1` &summarize=`20` &paginate=`1`]]
        Заглядывая наперед, рискну предположить, что можно столкнуться с существенным увеличением времени выполнения скрипта, когда количество подобных запросов для страницы возрастает.
        Но все не так плохо, взаимодействие ядра с БД без подключения удобных дополнений незначительно (скорее всего, Вас возмутило это, или я ошибаюсь?).
        Документацию читаю в данный момент, так что не судите строго за нетерпеливость. Просьба критиковать мысли, а не мыслителя. Если кроме возмущенного душевного посыла "читать доки" в вашем сообщении нет хотя бы ссылки или выдержки из документации, то его можно счесть за грубость или пренебрежение.
          • 1788
          • 1,103 Posts
          Quote from: hex.style at Jul 12, 2010, 04:38 PM

          Вот этот код делает 27 обращений к базе:
          [[Ditto? &startID=`1` &summarize=`20` &paginate=`1`]]
          Заглядывая наперед, рискну предположить, что можно столкнуться с существенным увеличением времени выполнения скрипта, когда количество подобных запросов для страницы возрастает.
          Но все не так плохо, взаимодействие ядра с БД без подключения удобных дополнений незначительно (скорее всего, Вас возмутило это, или я ошибаюсь?).
          Документацию читаю в данный момент, так что не судите строго за нетерпеливость. Просьба критиковать мысли, а не мыслителя. Если кроме возмущенного душевного посыла "читать доки" в вашем сообщении нет хотя бы ссылки или выдержки из документации, то его можно счесть за грубость или пренебрежение.
          Судя по коду - читаем старую документацию?
          startID => parents, summarize => display

          Вообще нет особой нагрузки. Например у меня 58 блока в списке на 5 страниц выдает такое:
          sql время: 0.0814 s . запросов: 64 . Время: 0.2398 s . database

          При том, что есть 3 вызова дитто в шаблоне, 1 вайфандер и 3 самописных сниппета. Без оптимизации.