Уважаемые коллеги,
я не так давно начал заниматься движком 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 для организации контента? И может быть скорректируете мое первое представление о системе =) Буду благодарен!