В настоящее время уже мало просто написать сайт для отображения какой-либо информации. Это очень просто сделать в любой социальной сети, получив плюсом и какой-никакой интерактив. Все больше возникает потребность создания страниц "менеджера" ("менеджера" - в хорошем смысле). В которой человек мог бы просматривать какие-либо данные, управлять содержимым(редактировать). Например - заказы в интернет-магазине. Конечно, полно дополнений для MODX, где все это уже есть. Это и коменты в блогах, управление заказами в интернет-магазинах и еще много чего. Можно найти подходящее расширение и не париться. Но всегда есть ньюансы. Дополнения, как правило, пишутся на все случаи жизни. В них полно того, что не нужно в конкретном случае. Или наоборот чего-то не хватает. Например есть классное дополнение "Gallary" для работы с изображениями. И в сети полно примеров где люди расширяют его возможности. В частности для загрузки нескольких изображений в один TV(переменную шаблона). А для этого уже надо писать свою страницу менеджера. Да и вообще это расширяет понимание механизмов MODX. А они очень не простые. Этот пост - не руководство, скорее памятка для закрепления ранее изученного. Ну и некоторые размышления. Конкретную реализацию всегда можно посмотреть в любом установленном компоненте.
Есть в системе понятие контекста. Как правило их два: контекст менеджера и "www". Можно добавить свои, но не рекомендуется. BackEnd всегда работает в контексте менеджера. А контекст "www" отвечает за отображение страницы прочим посетителям(FrontEnd). Разница существенная. Так в контексте менеджера весь UI(интерфейс пользователя) реализован на ExtJS, а в контексте "www" чаще используют jQwery. Это потому-что ExtJS заточен на приложения(диалоги, интерактивные таблицы и прочее), a jQuery - более общего применения. Допустим, мы создаем новый компонент(дополнение, приложение).
Последовательность:
Имя этого наследника должно быть строго определенным, иначе система не найдет класс котроллера.
Допутим имя пространста имен "nsname", действие - "index".
Тогда имя класса - NsnameIndexManagerController, или nssnameindexManagerController(т.е. регистронезависимый литерал)
var My_comp_js = function(config) {
config = config || {};
My_comp_js.superclass.constructor.call(this,config);
};
Ext.extend(My_comp_js,Ext.Component,{
page:{},window:{},grid:{},tree:{},panel:{},combo:{},config: {}
});
Ext.reg('my_comp_js',My_comp_js);
My_comp_js = new My_comp_js();
(<div id="my_comp_php-panel-home-div"></div>)
(<div id="my_comp_php-panel-home-div"></div>)
)Еще раз все это можно в кратце описать так:
И еше раз про некоторые термины:
MVC² is a MODx terminology that is "Model-View-Controller/Connector". It basically adds a new way of accessing the model from the view - Connectors, which are AJAX-based files that "connect" to processors to provide remote CRUD interactions.... из офиальной документации
Вот так все непросто). Без хорошего знания PHP и JS будет тяжко. Поначалу такая сложность ввергла меня в уныние. Даже было желание перейти на что-нибудь попроще. Но со временем пришло понимание, что это - плата за гибкость. Ну а возможности у MODX огромны. И стоит потратить несколько месяцев на детальное изучение. Тем более что несложные сайты(типа блогов) можно писать сразу и довольно легко. Ну и постепенно погружаясь в бездну возможностей MODX.
Комментарии 0