[Office] Версия 1.3.0-pl и расширение другими компонентами
Привет, друзья! Продолжаю улучшать свои дополнения, и анонс этой версии Office стоит разделить на две части: для обычных пользователей и для разработчиков.
В первую очередь, обновился внешний вид личного кабинета miniShop2 на версиях MODX 2.3+.
Если новый внешний вид вам не нравится, то отредактируйте системную настройку office_extjs_css и укажите там старый файл со стилями:
Второе новшество — появился поиск по заказам. Искать можно по платежу, по доставке и даже по товарам заказа.
Всё протестировано и отлично работает с MODX 2.2, 2.3 и 2.4, но если вдруг у вас есть какие-то вопросы по обновлению — пишите в поддержку магазина.
Многие знают, что Office это не просто авторизация и личный кабинет покупателя, это еще и система для вывода любых PHP скриптов, взаимодействующих с пользователями.
На всякий случай напоминаю, что у Office есть система контроллеров и действий, которые из них загружаются. В прошлых версиях вы могли положить свой PHP файл в нужную директорию, объявить там класс, расширяющий стандартный контроллер компонента, и писать любую логику. После чего просто вызывали свой контроллер на страницах сайта вот так:
Для примера я обновил нашу заготовку modExtra:
Вам вовсе не обязательно использовать Ext JS, это просто пример возможностей. Выводится на странице она так:
Регистрация своего контроллера проводится добавлением пути к нему в новом системном параметре office_controllers_paths. Для упрощения этой работы лучше всего использовать методы Office::addExtenstion() и Office::removeExtension() — принцип такой же, как и при регистрации моделей компонентов в MODX. Вот, посмотрите на ресолвер modExtra.
После регистрации пути к контроллеру Office будет загружать его из указанной директории для всех действий, с ним связанных. Вам не нужно ничего никуда копировать, вы можете поставлять и обновлять свой виджет внутри своего пакета.
По этому принципу уже работает управление ключами в modstore.pro и вывод статистики продаж авторов. Разработка и поддержка стала проще в разы.
Если же вы планируете использовать Ext JS в своих виджетах, то обратите внимание, что по умолчанию уже подгружаются кое-какие улучшенные компоненты Office, типа таблицы со встроенным поиском — можно свободно их расширять.
Напоминаю, что modExtra уже поддерживает работу с Office, так что советую использовать его для примера.
Новая версия доступна в репозитории modstore.pro, можно загружать.
В первую очередь, обновился внешний вид личного кабинета miniShop2 на версиях MODX 2.3+.
Если новый внешний вид вам не нравится, то отредактируйте системную настройку office_extjs_css и укажите там старый файл со стилями:
[[++assets_url]]components/office/css/main/lib/xtheme-modx.min.css
Второе новшество — появился поиск по заказам. Искать можно по платежу, по доставке и даже по товарам заказа.
Всё протестировано и отлично работает с MODX 2.2, 2.3 и 2.4, но если вдруг у вас есть какие-то вопросы по обновлению — пишите в поддержку магазина.
Расширение сторонними компонентами
Многие знают, что Office это не просто авторизация и личный кабинет покупателя, это еще и система для вывода любых PHP скриптов, взаимодействующих с пользователями.
На всякий случай напоминаю, что у Office есть система контроллеров и действий, которые из них загружаются. В прошлых версиях вы могли положить свой PHP файл в нужную директорию, объявить там класс, расширяющий стандартный контроллер компонента, и писать любую логику. После чего просто вызывали свой контроллер на страницах сайта вот так:
[[!Office?
&action=`MyController/actionName`
¶m1=`value1`
¶m2=`value2`
]]В новой версии эта система была расширена и теперь контроллеры могут физически находиться в любых директориях, в том числе и принадлежать другим дополнениям. То есть, ваш компонент может поставлять как-бы виджет для Office.Для примера я обновил нашу заготовку modExtra:
Вам вовсе не обязательно использовать Ext JS, это просто пример возможностей. Выводится на странице она так:
[[!Office?
&action=`modExtra`
]]Регистрация своего контроллера проводится добавлением пути к нему в новом системном параметре office_controllers_paths. Для упрощения этой работы лучше всего использовать методы Office::addExtenstion() и Office::removeExtension() — принцип такой же, как и при регистрации моделей компонентов в MODX. Вот, посмотрите на ресолвер modExtra.
После регистрации пути к контроллеру Office будет загружать его из указанной директории для всех действий, с ним связанных. Вам не нужно ничего никуда копировать, вы можете поставлять и обновлять свой виджет внутри своего пакета.
По этому принципу уже работает управление ключами в modstore.pro и вывод статистики продаж авторов. Разработка и поддержка стала проще в разы.
Если же вы планируете использовать Ext JS в своих виджетах, то обратите внимание, что по умолчанию уже подгружаются кое-какие улучшенные компоненты Office, типа таблицы со встроенным поиском — можно свободно их расширять.
Напоминаю, что modExtra уже поддерживает работу с Office, так что советую использовать его для примера.
Новая версия доступна в репозитории modstore.pro, можно загружать.
Комментарии: 14
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.








П.С. Это я про Office.
Для меня достаточная причина, что я сам этим воспользуюсь и не один раз =)
Не люблю что-то дублировать, поэтому удалил и дописал в modExtra. Если есть желание — можешь добавить скрипт выпиливания, который удалит новые директории.
Собака друг человекаеще больше меня запутала.
Внутри админки всё работает через админку, через её контроллеры и процессоры. Но снаружи, на фронтенде, такого механизма нет. Там только чанки и сниппеты, и если ты хочешь сделать какой-то личный кабинет, всю систему тебе нужно изобретать самостоятельно.
Мне это давно надоело и тогда я придумал написать Office, который позволяет работать с юзером на фронтенде и не забивать себе голову сложностями. Пишешь контроллер, кладёшь его куда надо, забиваешь в нём методы и можешь обращаться к ним как
Таким же способом ты можешь обращаться и к другим методам через Ajax, просто отправляя нужный action на /assets/components/office/action.php.
Заодно добавил всякие вещи, чтобы было просто на фронтенде использовать Ext JS для крутого функционала. Именно этот пример теперь можно увидеть в modExtra.
Ну и в новой версии любо разработчик может использовать Office, если он установлен на сайте, для своего личного кабинета. Я уверен, что многие люди смогут этим воспользоваться для создания крутых личных кабинетов.
Например я уже делаю кое-что новое для modstore.pro.
Еще вопрос, а скрипт ExtJs офис грузит?
В основном классе для этого есть специальные методы.
Исходники Office открыты, можно посмотреть.
Т.е. мне не нужно чтобы человек ввел Логин(емайл) и ему тут же сбросился пароль.