Компонент 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.

Заодно и страница со всеми скриптами и стилями стала весить < 500кб, что очень круто, учитывая вес одного ext-all.js в 717кб. Если кто хочет крикнуть «ужас!» — не надо. Kendo Ui весит 560кб, это не сильно меньше.

Вот, что вышло:

Понимаю, что Ext JS нравится далеко не всем (а зря), но это не особо важно, ибо используемые библиотеки зависят от контроллера Office, а он может быть любым.

То есть, на странице с управлением ключами работа организована через Ext, а в обновлении профиля — нет. Разработчик сам выбирает, что ему подключать в своем контроллере.

Хочу еще отметить, что при такой удачной интеграции Ext JS, во фронтенд можно вынести абсолютно все: управление ресурсами, заказами, товарами, галереей и что душа пожелает.
Плюсуем удобную авторизацию, редактирование профиля и кучу будущих контроллеров на все случаи жизни (которые довольно просто пишутся) и понимаем, что Office тоже платный и появится в репозитории только после открытия магазина.

Часто спрашивают, — «а будет личный кабинет для MS2?» Ага, это оно.

И все таки, как подключиться к репозиторию?

Упс, я немного увлекся рассказом про Office, поэтому возвращаемся к сути заметки:

1. Нужно авторизоваться на store.simpledream.ru/
2. Заполнить свое имя в профиле
3. Создать новый ключик
4. Зайти в админку своего сайта и добавить нового провайдера (логин — ваш email в репо, api ключ копипастим из всплывающего окошка)
Адрес для запросов — http://store.simpledream.ru/extras/ — при заходе из браузера будет 404, не удивляйтесь, так надо.
5. Переключаем на другого провайдера и смотрим, что есть.

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

Заключение

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

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

Обновлено 24.05.13


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

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

Следующая заметка
Вопросы про магазин
Предыдущая заметка
Чудеса оптимизации


Комментарии ()

  1. Alex Vakhitov 23 мая 2013, 15:16 # 0
    Круто (: Правда когда подключал затупил сильно, не заметил что скопировал адрес с пробелом в конце и долго не мог понять почему я не могу приконектиться
    1. СикретНаме 23 мая 2013, 15:20 # 0
      Мои конгратулэйты, Василий (вроде даже багов не видать).
      1. Мордынский Николай 23 мая 2013, 15:30 # 0
        Подключился пакеты вижу кнопка загрузить зеленая — >пыщь -> грузится грузится грузится ололололо )) не загрузилось ((
        1. Василий Наумкин 23 мая 2013, 15:44 # 0
          Упс, исправил.
          1. Мордынский Николай 23 мая 2013, 15:50 # 0
            Угу загрузил после загрузки на список скачанных и установленных пакетов криво переадресация стоит или хз пишет грузится обновляю страницу список пуст. при этом кнопка домой (домик неактивна)

            Выбираю модх поставщика нормально переадресовывается
            1. Василий Наумкин 23 мая 2013, 15:51 # 0
              Это уже не от меня зависит.
        2. Мордынский Николай 23 мая 2013, 15:34 # 0
          судя по id регистарций было 15 уже скачиваний 5 ))
          1. Александр Наумов 23 мая 2013, 16:17 # 0
            Здорово все!!! Подключился, установил MS2.
            1. Василий Наумкин 23 мая 2013, 16:20 # 0
              И теперь при новых релизах у тебя будет загораться кнопочка «обновить» =)
              1. Александр Наумов 23 мая 2013, 16:31 # 0
                Здорово, теперь буду ждать в продаже пакет Office.
            2. Sadykh Sadykhov 23 мая 2013, 16:32 # 0
              Отличная работа! Сколько в человеко-часах ушло времени? :)
              1. Василий Наумкин 23 мая 2013, 16:34 # 0
                На Office 32 часа, но он еще не закончен + на сам сайт часов 8.

                Но я не учитываю многие вещи, типа метания с Kendo UI.
              2. Евгений Борисов 23 мая 2013, 21:07 # 0
                Ну раз это открытый beta тест, то вот еще:
                Непонятно зачем графа хост, если она автоматически заполняется. При чем заполняется только 1 раз (в первый раз при соединении с данным ключиком).
                1. Василий Наумкин 23 мая 2013, 21:10 # 0
                  Чтобы тебе проще было видеть, для какого сайта этот ключ. Я не верю, что все будут заполнять description и не начнется путаницы.

                  Также, скорее всего, будет привязка ключа к домену и блокировка попыток зайти с другого имени.
                  1. Евгений Борисов 23 мая 2013, 21:21 # 0
                    Также, скорее всего, будет привязка ключа к домену и блокировка попыток зайти с другого имени.
                    А зачем так жестко? Ключ есть. Мыло есть. Может у меня для 1 клиента сразу несколько сайтов — какой смысл штамповать кучу ключей для него. И раз уж такая пьянка, то логи хостов с которых идет обращение логируются? **кионарап я**
                    1. Василий Наумкин 23 мая 2013, 21:36 # 0
                      Смысл в том, что платные дополнения привязываются к ключу, а не к пользователю.

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

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

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

                      Ясен пончик, все обращения к репозиторию детально логируются.
                      1. Евгений Борисов 23 мая 2013, 23:40 # 0
                        По большому счету, продаваться будет даже не сам компонент, а консультации по работе с ним и документация.
                        и
                        Разбираться с работой компонента, купленного 1 раз на 10 сайтах интереса нет
                        Незнаю как будет на практике. Но у меня в голове немного не связываются вот эти два пункта. Ну, поживем увидим.
                        1. Воеводский Михаил 28 мая 2013, 12:26 # 0
                          Василий, как быть в ситуации, когда ключ получается и используется на техническом домене, а затем сайт переносится на основной домен?
                          1. Василий Наумкин 28 мая 2013, 12:31 # 0
                            Напишешь в ТП и привяжут к другому домену.

                            Поддержка должна быть нашем козырем, так что дело 5 минут.
                  2. Виталий Батушев 24 мая 2013, 00:58 # 0
                    Документацию в оффлайн-версиях продавать не думаете? Для меня резко за последнюю неделю встала проблема отсутствия интернета, пришлось сидеть на локальном сайте и проблема отсутствия оффлайн-документации стала критичной.
                    1. Василий Наумкин 24 мая 2013, 07:05 # 0
                      Вот я даже не знаю, как это организовать.

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

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

                      Так что, не знаю, как тут быть. Сохраняй пока странички в html, как 10 лет назад.
                    2. Виталий Киреев 24 мая 2013, 09:07 # 0
                      Основной репозиторий modx упал с 502 ошибкой. Это как-то связано? :D
                      1. Василий Наумкин 24 мая 2013, 09:08 # 0
                        Конечно, он же Ruby сделан, а не MODX — вот и падает =)
                        1. Alex Vakhitov 24 мая 2013, 11:10 # 0
                          Надо было на Django делать, а не на какомто руби ((:
                          1. Иван Брежнев 25 мая 2013, 00:41 # 0
                            Насколько мне известно Django это Framework, а Ruby — язык. Поэтому правильно было бы написать «на Питоне».

                            P.S. Если конечно под Ruby вы не подразумеваете RoR ))
                            1. Alex Vakhitov 25 мая 2013, 03:55 # 0
                              Все правильно вам известно (: Репозиторий modx построен на рельсах поэтому не стал уточнять язык программирования
                      2. Pavel Kravchuk 25 мая 2013, 18:56 # 0
                        пробовал зарегистрироваться на репозитории simpledream. Что то не приходят письма с ссылкой
                        можете помочь?
                        1. Василий Наумкин 25 мая 2013, 18:58 # 0
                          70 человек зарегистрировались без проблем.

                          Разбирайся со своей почтой.
                          1. Pavel Kravchuk 25 мая 2013, 23:55 # 0
                            сорри… письмо попало в спам :(
                            1. Василий Наумкин 26 мая 2013, 08:33 # 0
                              Понял, надо мне spf прописать — забыл.
                        2. Сергей Шлоков 26 мая 2013, 10:56 # 0
                          Мне кажется, пагинация для 15 компонентов только мешает. Удобнее огласить сразу весь список.
                          1. Peter Zenin 28 мая 2013, 06:17 # 0
                            Проблема с активацией! Перехожу по присланному урлу: store.simpledream.ru/?action=auth%2Flogin&email=inforomb%40gmail.com&hash=3db8f4b2e60XXXXXXXXXXXXXXXXXXXXXXX
                            Пишет: На этой странице обнаружена циклическая переадресация…
                            А повторно получить ссылку не могу, пишет — такой емайл уже используется…
                            Блин, очень нужен MS2…
                            UPD: Чуть позже пустил мой емайл повторно и вроде без проблем активировался…
                            1. Василий Наумкин 28 мая 2013, 06:29 # 0
                              Был баг, пофиксил. Спасибо!

                              Ссылки на активацию (при условии, что предыдущая была не использована) можно получать раз в 30 минут. На всякий случай сократил до 10.
                            2. Alexandr Lisovskiy 28 мая 2013, 10:28 # 0
                              Очень круто, спасибо. А как можно посмотреть/скачать office?
                              UPD: Имеется в виду приобрести :)
                              1. Василий Наумкин 28 мая 2013, 11:06 # 0
                                Посмотреть ты его можешь в личном кабинете, а купить только после открытия магазина, которым я сейчас активно занимаюсь.

                                Скоро, надеюсь, запущу.
                              2. Clean 28 мая 2013, 12:48 # 0
                                Зарегистрировался, ссылка пришла, переход по ней результата не дал-открывается сайт, но я не авторизован.
                                1. Василий Наумкин 28 мая 2013, 14:02 # 0
                                  Запроси еще раз ссылочку.

                                  После тебя уже 3 человека активировались.
                                  1. Clean 28 мая 2013, 15:35 # 0
                                    вошел… странный баг…
                                    1. Василий Наумкин 28 мая 2013, 15:59 # 0
                                      Вполне может быть, что баг — система совсем новенькая и необычная.

                                      Посмотрим дальше.
                                2. СикретНаме 22 июня 2013, 21:39 # 0
                                  MiniShop2 откуда качать то, с родного или вашего репозитария? Будет ли его версия в родном репозитории обновляться нормально или только в вашем? Будут ли расширения нормально вставать в версию из родного репозитория?
                                  1. Василий Наумкин 22 июня 2013, 22:00 # 0
                                    Качай откуда хочешь, это дело добровольное.
                                    1. СикретНаме 22 июня 2013, 22:03 # 0
                                      Просто показалось, что в вашем репозитарии новее версия, вот и думаю, не будет ли так, что в родном гораздо позже обновления будут появляться.?
                                      1. Василий Наумкин 22 июня 2013, 22:43 # 0
                                        Ты сравни какая лежит версия там. И какая у нас.

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

                                  Добавление новых комментариев отключено.