Компонент 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, поэтому возвращаемся к сути заметки:

  1. Нужно авторизоваться на http://store.simpledream.ru/

  2. Заполнить свое имя в профиле

  3. Создать новый ключик

  4. Зайти в админку своего сайта и добавить нового провайдера (логин - ваш email в репо, api ключ копипастим из всплывающего окошка)

Адрес для запросов - http://store.simpledream.ru/extras/ - при заходе из браузера будет 404, не удивляйтесь, так надо.

  1. Переключаем на другого провайдера и смотрим, что есть.

Пока небогато, но MS2 и другие мои пакеты будут распространяться отсюда, в первую очередь, ибо в родном репозитории реально достала фигня с "необновлением".

Заключение

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

Внешний вид, логика работы и всё остальное может еще десять раз поменяться. С нетерпением жду сообщений об ошибках и проблемах в комментариях к заметке.

Обновлено 24.05.13

Официальный репозиторий в очередной раз прилёг отдохнуть.

Постараюсь в ближайшее время перенести все свои пакеты в наш репо - уже пора.

← Предыдущая заметка
Чудеса оптимизации
Следующая заметка →
Вопросы про магазин
Комментарии (43)
alex.vakhitovAlex Vakhitov
23.05.2013 19:16

Круто (: Правда когда подключал затупил сильно, не заметил что скопировал адрес с пробелом в конце и долго не мог понять почему я не могу приконектиться

98b503e504239ead5cc360331СикретНаме
23.05.2013 19:20

Мои конгратулэйты, Василий (вроде даже багов не видать).

Мордынский Николай
23.05.2013 19:30

Подключился пакеты вижу кнопка загрузить зеленая - >пыщь -> грузится грузится грузится ололололо )) не загрузилось ((

bezumkinВасилий Наумкин
23.05.2013 19:44

Упс, исправил.

Мордынский Николай
23.05.2013 19:50

Угу загрузил после загрузки на список скачанных и установленных пакетов криво переадресация стоит или хз пишет грузится обновляю страницу список пуст. при этом кнопка домой (домик неактивна)

Выбираю модх поставщика нормально переадресовывается

bezumkinВасилий Наумкин
23.05.2013 19:51

Это уже не от меня зависит.

Мордынский Николай
23.05.2013 19:34

судя по id регистарций было 15 уже скачиваний 5 ))

inetloverАлександр Наумов
23.05.2013 20:17

Здорово все!! Подключился, установил MS2.

bezumkinВасилий Наумкин
23.05.2013 20:20

И теперь при новых релизах у тебя будет загораться кнопочка "обновить" =)

inetloverАлександр Наумов
23.05.2013 20:31

Здорово, теперь буду ждать в продаже пакет Office.

SadykhSadykh Sadykhov
23.05.2013 20:32

Отличная работа! Сколько в человеко-часах ушло времени? :)

bezumkinВасилий Наумкин
23.05.2013 20:34

На Office 32 часа, но он еще не закончен + на сам сайт часов 8.

Но я не учитываю многие вещи, типа метания с Kendo UI.

agel_nashЕвгений Борисов
24.05.2013 01:07

Ну раз это открытый beta тест, то вот еще:

Непонятно зачем графа хост, если она автоматически заполняется. При чем заполняется только 1 раз (в первый раз при соединении с данным ключиком).

bezumkinВасилий Наумкин
24.05.2013 01:10

Чтобы тебе проще было видеть, для какого сайта этот ключ. Я не верю, что все будут заполнять description и не начнется путаницы.

Также, скорее всего, будет привязка ключа к домену и блокировка попыток зайти с другого имени.

agel_nashЕвгений Борисов
24.05.2013 01:21

Также, скорее всего, будет привязка ключа к домену и блокировка попыток зайти с другого имени.

А зачем так жестко? Ключ есть. Мыло есть. Может у меня для 1 клиента сразу несколько сайтов - какой смысл штамповать кучу ключей для него. И раз уж такая пьянка, то логи хостов с которых идет обращение логируются? **кионарап я**

bezumkinВасилий Наумкин
24.05.2013 01:36

Смысл в том, что платные дополнения привязываются к ключу, а не к пользователю.

Почему так? Потому что покупка - это поддержка. Это ответы на вопросы, это трата времени. Разбираться с работой компонента, купленного 1 раз на 10 сайтах интереса нет.

Конечно будут скидки при нескольких покупках, сам процесс еще обсуждается - это всё пока теория. В коде заложены и vip ключи - по ним доступны все пакеты сразу, безлимит.

Исходники от большинства компонентов будут на github - можно будет не покупать и собирать самому - но без поддержки, понятно. По большому счету, продаваться будет даже не сам компонент, а консультации по работе с ним и документация.

Ясен пончик, все обращения к репозиторию детально логируются.

agel_nashЕвгений Борисов
24.05.2013 03:40

По большому счету, продаваться будет даже не сам компонент, а консультации по работе с ним и документация.

и > Разбираться с работой компонента, купленного 1 раз на 10 сайтах интереса нет

Незнаю как будет на практике. Но у меня в голове немного не связываются вот эти два пункта. Ну, поживем увидим.

mvoevodskiyВоеводский Михаил
28.05.2013 16:26

Василий, как быть в ситуации, когда ключ получается и используется на техническом домене, а затем сайт переносится на основной домен?

bezumkinВасилий Наумкин
28.05.2013 16:31

Напишешь в ТП и привяжут к другому домену.

Поддержка должна быть нашем козырем, так что дело 5 минут.

vbatushevВиталий Батушев
24.05.2013 04:58

Документацию в оффлайн-версиях продавать не думаете? Для меня резко за последнюю неделю встала проблема отсутствия интернета, пришлось сидеть на локальном сайте и проблема отсутствия оффлайн-документации стала критичной.

bezumkinВасилий Наумкин
24.05.2013 11:05

Вот я даже не знаю, как это организовать.

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

Тут только один вариант - писать сразу доки при подготовке новой версии, и прикладывать к ней, что выглядит трудозатратно.

Так что, не знаю, как тут быть. Сохраняй пока странички в html, как 10 лет назад.

argnistВиталий Киреев
24.05.2013 13:07

Основной репозиторий modx упал с 502 ошибкой. Это как-то связано? :D

bezumkinВасилий Наумкин
24.05.2013 13:08

Конечно, он же Ruby сделан, а не MODX - вот и падает =)

alex.vakhitovAlex Vakhitov
24.05.2013 15:10

Надо было на Django делать, а не на какомто руби ((:

vanchelloИван Брежнев
25.05.2013 04:41

Насколько мне известно Django это Framework, а Ruby - язык. Поэтому правильно было бы написать "на Питоне".

P.S. Если конечно под Ruby вы не подразумеваете RoR ))

alex.vakhitovAlex Vakhitov
25.05.2013 07:55

Все правильно вам известно (: Репозиторий modx построен на рельсах поэтому не стал уточнять язык программирования

KravaPavel Kravchuk
25.05.2013 22:56

пробовал зарегистрироваться на репозитории simpledream. Что то не приходят письма с ссылкой можете помочь?

bezumkinВасилий Наумкин
25.05.2013 22:58

70 человек зарегистрировались без проблем.

Разбирайся со своей почтой.

KravaPavel Kravchuk
26.05.2013 03:55

сорри .... письмо попало в спам :(

bezumkinВасилий Наумкин
26.05.2013 12:33

Понял, надо мне spf прописать - забыл.

sergantСергей Шлоков
26.05.2013 14:56

Мне кажется, пагинация для 15 компонентов только мешает. Удобнее огласить сразу весь список.

Peter Zenin
28.05.2013 10:17

Проблема с активацией! Перехожу по присланному урлу: http://store.simpledream.ru/?action=auth%2Flogin&email=inforomb%40gmail.com&hash=3db8f4b2e60XXXXXXXXXXXXXXXXXXXXXXX Пишет: На этой странице обнаружена циклическая переадресация... А повторно получить ссылку не могу, пишет - такой емайл уже используется.... Блин, очень нужен MS2... UPD: Чуть позже пустил мой емайл повторно и вроде без проблем активировался...

bezumkinВасилий Наумкин
28.05.2013 10:29

Был баг, пофиксил. Спасибо!

Ссылки на активацию (при условии, что предыдущая была не использована) можно получать раз в 30 минут. На всякий случай сократил до 10.

Alexandr LisovskiyAlexandr Lisovskiy
28.05.2013 14:28

Очень круто, спасибо. А как можно посмотреть/скачать office? UPD: Имеется в виду приобрести :)

bezumkinВасилий Наумкин
28.05.2013 15:06

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

Скоро, надеюсь, запущу.

CleanClean
28.05.2013 16:48

Зарегистрировался,ссылка пришла, переход по ней результата не дал-открывается сайт,но я не авторизован.

bezumkinВасилий Наумкин
28.05.2013 18:02

Запроси еще раз ссылочку.

После тебя уже 3 человека активировались.

CleanClean
28.05.2013 19:35

вошел..странный баг..

bezumkinВасилий Наумкин
28.05.2013 19:59

Вполне может быть, что баг - система совсем новенькая и необычная.

Посмотрим дальше.

98b503e504239ead5cc360331СикретНаме
23.06.2013 01:39

MiniShop2 откуда качать то, с родного или вашего репозитария? Будет ли его версия в родном репозитории обновляться нормально или только в вашем? Будут ли расширения нормально вставать в версию из родного репозитория?

bezumkinВасилий Наумкин
23.06.2013 02:00

Качай откуда хочешь, это дело добровольное.

98b503e504239ead5cc360331СикретНаме
23.06.2013 02:03

Просто показалось, что в вашем репозитарии новее версия, вот и думаю, не будет ли так, что в родном гораздо позже обновления будут появляться.?

bezumkinВасилий Наумкин
23.06.2013 02:43

Ты сравни какая лежит версия там. И какая у нас.

Многое прояснится.

born2slip
pishnaa istntome
22.11.2022 14:06
огромное спасибо! )
inetlover
Александр Наумов
14.11.2022 10:19
посмотри документацию. Спасибо, что-то она мне не нагуглилась. Это просто функции объединения для о...
bezumkin
Василий Наумкин
10.11.2022 05:46
Спасибо за поздравления!
inetlover
Александр Наумов
09.11.2022 17:08
Посмотрел в ДевТулсе свойство overscroll-behavior: none; присутствует, проверил в Chrome и Chromium ...
bezumkin
Василий Наумкин
03.11.2022 20:57
Поискать в исходниках ссылки на её адрес и поменять - скорее всего только nuxt.config.js. А зачем эт...
ni.kolokol@mail.ru
Николай Каленников
03.11.2022 19:43
Спасибо. Попробую тоже с нуля переставить
inetlover
Александр Наумов
03.11.2022 19:24
Спасибо!!! Все заработало!
bezumkin
Василий Наумкин
28.10.2022 05:23
В тексте есть подсказка // Контроллер требует новое разрешение protected $scope = 'ord...
bezumkin
Василий Наумкин
27.10.2022 13:25
Понял, спасибо!
inetlover
Александр Наумов
23.10.2022 13:33
Понял, спасибо!