Подобная система очень легко и понятно разрабатывается на фреймворке Yii2 за несколько дней. Даже новичок сможет это сделать, используя генератор кода Gii, входящий в пакет этого фреймворка. На MODX создание подобной системы реально сложное и неудобное дело (один ExtJS чего только стоит). Самопис — это не вариант, так как можно наделать кучу дыр в безопасности и многое не учесть, что учтено по умолчанию в фреймворках (правильная валидация форм, фильтры, связи таблиц итд.)

Многим, кому полюбился twitter bootstrap наверно известно, что на подходе 4 версия — Bootstrap 4. На текущий момент доступна Bootstrap v4.0.0-alpha.5, это говорит о том, что он все еще в альфа версии, но уже можно скачать и пощупать его. На самом деле серьезных изменений почти нет, в основном это переделка сетки, названий классов, и усложнение структуры компонентов, за счет ухода от привязки к конкретным тегам. Но все же посмотрим, что там внутри. После скачивания вам доступны несколько css файлов: bootstrap.css - собственно сам бутстрап (классический, с float) bootstrap-reboot.css - здесь находится только normalize.css (к слову, во всех остальных css он уже вшит) bootstrap-grid.css - здесь находится только сетка bootstrap-flex.css - версия с flex А теперь о нововведениях: 1. Сетка В сетке появились некоторые изменения: теперь в сетке целых 4 брекпойнта (вместо 3). Нужно упомянуть, что сетка может быть как на привычных float так и на flex, в зависимости от выбранного файла css Было Стало xs < 768px < 576px sm >= 768px >= 576px md >= 992px >= 768px lg >= 1200px >= 992px xl >= 1200px Кроме этого, изменились названия классов для col-%%-offset-%%, col-%%-pull-%%, col-%%-push-%% Теперь нужно писать так: offset-%%-%%, pull-%%-%% и push-%%-%% Улучшились состояния hidden: раньше — hidden-%%, теперь — hidden-%%-down и hidden-%%-up (down означает, что элемент будет скрыт на расширениях меньше чем %%, up — больше, чем %%) 2. Компоненты Очень многие компоненты потеряли свой привычный вид (кодовый имеется ввиду) Например, для того, чтобы вывести простую nav панель, раньше нужно было всего лишь добавить класс nav navbar-nav к элементу ul, теперь чтобы вывести меню, придется изрядно добавить классов Было Стало Меню, табы, хлебные крошки ul.nav.navbar-nav>li>a .nav.navbar-nav>.nav-item>.nav-link Пагинация ul.pagination>li>a .pagination>.page-item>.page-link Панели .panel>(.panel-header+.panel-body+.panel-footer) .card>(.card-header+.card-block>(.card-title+.card-text+.card-link)+.card-footer) Я привел самые важные компоненты, все их здесь перечислять не имеет смысла, вкратце, многое осталось прежним (btn, form-control) 3. Типографика Классы для выравнивания текста (text-center, text-right, text-justify) более не работают, вместо них добавлены классы для выравнивания на различных брекпойнтах: text-%%-center, text-%%-right, text-%%-left, text-%%-justify Подведя итог, для себя я выяснил, что 4 версия вполне жизнеспособна, к ней придется немного привыкнуть, но в целом получился приятный для использования фреймворк

Николай, спасибо за направление) Буду копать…

Сниппеты — это серверная часть (php). А ExtJS — это фронтовая (javascript).

  1. Учите ExtJS, коннекторы и процессоры.
  2. Создавайте свой extJS-компонент, который будет вызывать ваш процессор. Но тут момент: если это у вас будет грид (таблица), ей данные нужны в JSON. А [[!Office?action=miniShop2 ]] вряд ли JSON возвращает. Смотрите в минишопе какие там процессоры есть для работы с заказами. Проще всего изучить как работает управление заказами в админке у самого минишопа.

Всем привет! Подскажите пожалуйста как через ext js запустить по клику сниппет [[!Office?action=miniShop2 ]] так как я понял он подтягивает свой скрипт js еще?

Всем привет! Сегодня у нас очень важное обновление на сайте: платные вопросы. Что это такое? Это возможность назначить цену за ответ на свой вопрос. Сценарий очень простой: Вы задаете вопрос Назначаете за помощь по нему цену (эта сумма сразу блокируется на вашем счету). Это публикуется по сути как объявление. Кто-нибудь откликается на это объявление, подтверждая свою готовность помочь с решением. После выполнения, исполнитель отправляет вам заявку на подтверждение перевода ему. Вы подтверждаете, исполнитель получает перевод на свой счет. Очень надеемся, что данный механизм поможет за небольшую стоимость (50-100+ рублей) получать значительно более оперативную и качественную помощь. Ну а теперь как это реализовано. Пока еще полутестовый режим (хотя балансы уже реальные), так что не все еще отточено. Получим фидбэк когда, будем дорабатывать. Но в целом все рабочее. Сразу уточню, что, хотя сама программная часть реализована на сайте, практически все интерфейсы реализованы в слэке, так что чтобы опробовать этот функционал, надо авторизоваться и получить доступ к слэку (запросить его). ? И так, сначала надо заиметь монетки на счет. Их можно получить тремя способами: Приобрести доступ к репозиторию пакетов. Часть суммы вернется вам на личный счет в виде монеток (сейчас это 50%). Просто пополнить баланс на любую сумму (счет пополняется один-к-одному). Попросить кого-нибудь, у кого есть монетки, подарить вам (выполнить прямой перевод) :) Затем в слэке пишем свой вопрос обычным сообщением (одним). ? Собственно, в этот момент еще можно не вешать цену (может кто-то бесплатно ответит) и повесить ценник на это сообщение позже, но если сроки жмут или еще что-то, то можно и сразу цену объявить. К сожалению, я так и не нарыл в слэке достаточных инструментов интерактивности, чтобы сделать это все более удобным, потому сделал это вот так: чтобы инициировать механизм платных объявлений, надо своему сообщению добавить специальную реакцию :payable: ? ? Если вы использовали ее хоть раз, она будет у вас в ранее используемых вверху списка. ? И так, когда вы кликаете добавляете эту эмоцию, система вас спросит какую стоимость хотите назначить (если не спросила, значит скорее всего вы не предоставили сайту права на чтение ваших реакций, спросите меня как их предоставить (хотя в большинстве случаев как минимум для новых пользователей все должно быть ОК)). ? Вот здесь как раз и сказывается недостаток нужных механизмов в слэке. Нельзя в ответ на запрос от сервера написать какое-то произвольное сообщение, которое бы отправилось именно по этому сценарию. Можно только кнопки какие-нибудь кликать. А просить вводить какие-то команды с четким синтаксисом — вообще не удобно. Поэтому пока все это реализовано именно в таком виде. Но сейчас это пока как эксперимент. Если тема полетит, то скорее всего будем ее дублировать на стороне самого сайта, и здесь уже мы сможем дать любые инструменты взаимодействия, чтобы было максимально удобно. Ладно, едем дальше… Система спросила какую цену хотим назначить — кликаем нужную кнопку, например, 100 монет. В ответ на это действие система создает новое сообщение-объявление. ? Здесь автор сообщения получает небольшой бонус в виде того, что сообщение опять попадает в самый ТОП. Плюс к этому, система отправляет всем пользователям уведомление с пометкой важно, которое привлекает гораздо больше внимания. Так что сообщение могут увидеть те, кто ранее его пропустил. ? В этот момент указанная сумма уже замораживается на счету автора объявления, так что кто видит это сообщение, может быть уверен, что оно гарантированно обеспечено финансами. Если кто-то откликается на объявление, система запрашивает у него подтверждение серьезности его намерений. ? Если пользователь подтверждает действие, заявка им принимается, и этот пользователь назначается получателем в замороженном обеспечительном платеже по данному объявлению, и больше никто не может откликнуться об этому объявлению (даже если отправили одновременно запрос на подтверждение, успешно запрос пройдет только для одного запроса, другому будет выдана ошибка). Таким образом исключается необходимость у заказчика спрашивать «Исполнителя еще не нашли?». Если все ОК, пользователь получает подтверждение. ? В свою очередь и заказчику сразу отправляется личное сообщение от имени откликнувшегося о готовности помочь. ? ? Далее уже заказчик общаются напрямую друг с другом через личные сообщения. После выполнения задания исполнителю остается только запросить подтверждение перевода за выполненую работу. ? Если все ОК, система сообщает, что запрос успешно отправлен ? А заказчик получает личное сообщение с запросом на подтверждение. ? Заказчик подтверждает перевод ? И исполнитель получает личное сообщение от заказчика, что он выполнил перевод. ? Вот такая вот довольно обширная бизнес-логика получилась. Предлагаю всем заинтересованным попробовать ее в действии. Для этого достаточно пополнить свой баланс на сумму от 50 рублей, зарегистрироваться у нас в слэке (читаем про это в предыдущей статье), и задать свой платный вопрос. Конечно же хотелось бы, чтобы как можно больше людей откликалось на такие вопросы, но скорее всего так не будет, поэтому сразу заявляю о готовности нашей команды отвечать на ваши вопросы. Прошу всех, у кого есть замечания и/или предложения, высказываться.

в gist все изменения прописаны. Единственное что — нужно не по номерам строк искать, поскольку в разных версиях MODX они могут отличаться. Просто искать именно эти строки и вносить изменения.

Кстати а как? Я пробовал тоже CustomURL недавно, сильно правда не вникал, но с первых двух попыток ничего не заработало. Можете поделиться инфой? Версия MODx 2.5.2

Спасибо огромное, правда не сразу помогло, ковырял как мог, уж опустил руки и пытался разобраться с CustomURL, но о чудо, заработало