Компонент Office и открытый бета-тест репозитория
Долго ли, коротко ли, но вот и подошел долгожданный момент открытого тестирования нашего репозитория. На сегодня у нас в строю только небольшая часть личного кабинета (новый компонент Office) и полностью рабочий репо, из которого можно загружать бесплатные дополнения.
Платные загружать пока нельзя, ибо не готов еще процесс приема платы, и остальные навороты. Поэтому, сегодня мы проверяем только самый основной функционал.
Чтобы проверять было интереснее, в репозитории лежит свежая версия miniShop2 2.0.1 с огромным количеством исправлений и редактированием заказов. Также есть модифицированный getPage, под именем getPageExt.
Про MS2.0.1 отдельная заметка, а здесь я расскажу, как подключиться к репозиторию.
Авторизация
За авторизацию, обновление профиля и личный кабинет у нас отвечает новый компонент Office. Это универсальный личный кабинет с очень гибкой и расширяемой модульной структурой, наподобие классов MS2, только попроще.
Авторизация организована довольна необычно: паролей и логинов нет, для входа нужен только email.
На указанное мыло придет ссылка для активации аккаунта, при переходе - мгновенная авторизация и редирект в профиль, для внесения нужных данных. Логином пользователя служит его email, дубликаты почты запрещены.
Принцип работы честно подсмотрен у artgorbunov.ru, только мы его немного доработали. Например, у нас можно не только выйти из профиля в любой момент времени (и зайти обратно по новой ссылке), но и сменить email.
Учитывая, что при смене почтового ящика меняется и логин юзера, и происходит это только после активации по ссылке (во избежания утери профиля при опечатке) - вы можете представить, как я намучился, программируя эту систему.
Однако, все работает быстро, гладко и вроде бы, без глюков. Это базовый функционал авторизации через Office.
Редактирование профиля
Это второй базовый контроллер, основная часть которого позаимствована из HybridAuth. Здесь нет социальных сетей (они появятся позже), зато код обновления профиля латался раза 3, после шалостей Евгения Борисова. Так что - проверено, уязвимостей нет.
Структура Office позволяет каждому контроллеру грузить свои чанки, javascript и css - чем я и пользуюсь по полной. Всё, что только можно, работает через ajax, никаких перезагрузок при отправке формы. Конечно, на месте, ставшие уже привычными, красные и зелёные всплывающие сообщения через jGrowl.
Управление ключами
Для работы с нашем репозиторием необходима пара логин\ключ, абсолютно все действия возможны только для авторизованного сайта.
Количество ключей не ограничено, для каждого вашего сайта нужно сгенерировать свой уникальный ключ, в дальнейшем к ним будут привязываться покупки. Генерация производится самостоятельно в следующем разделе кабинета - управление ключами.
Тут вышло интересно.
Я довольно долго сижу в бэкенде MODX и очень привык к определенному уровню функциональности Ext JS. Ну, то есть я делаю таблицу, задаю действия, пишу процессоры и всё - она работает сама. У меня не болит голова про оформление, вывод надписи "ничего не найдено", подключение лексиконов и прочее. Окошки выпригивают, кнопочки нажимаются, запросики на сервер уходят, ответы от процессоров приходят.
Ляпота, отказаться невозможно.
Конечно, первым делом я решил найти что-то подобное на jQuery, для написания фронтенда Office. Самое близкое, что подсказали - Kendo UI. Очень крутая и интересная штука, которую, однако, нужно учить и интегрировать в MODX.
Сразу вплыла куча непоняток с локализацией, лексиконами, непривычные виджеты и необходимость добавления этого UI в пакет (пара лишних мегабайт, с оформлением). Самое критичное, конечно - время на изучение.
Поэтому потыкавшись несколько часов я вернулся к проверенному еще в MS1 варианту - использовать Ext JS прямо из админки MODX. Только теперь это сделано на гораздо более высоком уровне:
-
Хорошо выглядит, нет проблем с разметкой
-
Используется родная тема MODX (она явно симпатичнее, чем от Ext). Возможно, потом напишем и свою.
-
Самое главное: все нужные скрипты и лексиконы выносятся из админки при помощи php, склеиваются, сжимаются и складываются в /assets. То есть, админку можно наглухо закрывать по ip - гость туда все равно не попадает и не использует файлы из /manager.
Заодно и страница со всеми скриптами и стилями стала весить
Вот, что вышло:
Понимаю, что Ext JS нравится далеко не всем (а зря), но это не особо важно, ибо используемые библиотеки зависят от контроллера Office, а он может быть любым.
То есть, на странице с управлением ключами работа организована через Ext, а в обновлении профиля - нет. Разработчик сам выбирает, что ему подключать в своем контроллере.
Хочу еще отметить, что при такой удачной интеграции Ext JS, во фронтенд можно вынести абсолютно все: управление ресурсами, заказами, товарами, галереей и что душа пожелает.
Плюсуем удобную авторизацию, редактирование профиля и кучу будущих контроллеров на все случаи жизни (которые довольно просто пишутся) и понимаем, что Office тоже платный и появится в репозитории только после открытия магазина.
Часто спрашивают, - "а будет личный кабинет для MS2?" Ага, это оно.
И все таки, как подключиться к репозиторию?
Упс, я немного увлекся рассказом про Office, поэтому возвращаемся к сути заметки:
-
Нужно авторизоваться на http://store.simpledream.ru/
-
Заполнить свое имя в профиле
-
Создать новый ключик
-
Зайти в админку своего сайта и добавить нового провайдера (логин - ваш email в репо, api ключ копипастим из всплывающего окошка)
Адрес для запросов - http://store.simpledream.ru/extras/ - при заходе из браузера будет 404, не удивляйтесь, так надо.
- Переключаем на другого провайдера и смотрим, что есть.
Пока небогато, но MS2 и другие мои пакеты будут распространяться отсюда, в первую очередь, ибо в родном репозитории реально достала фигня с "необновлением".
Заключение
На всякий случай напоминаю, что это бета тест, и вполне возможно, что скоро личный кабинет будет закрыт для дальнейшей разработки. Репозиторий, конечно, будет работать без перебоев - он уже готов.
Внешний вид, логика работы и всё остальное может еще десять раз поменяться. С нетерпением жду сообщений об ошибках и проблемах в комментариях к заметке.
Обновлено 24.05.13
Официальный репозиторий в очередной раз прилёг отдохнуть.
Постараюсь в ближайшее время перенести все свои пакеты в наш репо - уже пора.
0
👍
👎
❤️
🔥
😮
😢
😀
😡
3 523
23.05.2013 14:19:59