Расширения MODX

[HybridAuth] Сильно улучшенная версия 0.7.0-pl1

Серьёзно обновил компонент социальной авторизации HybridAuth. Переписано и улучшено практически всё, что только можно.

Основное изменение — избавление от action.php и перенос логики авторизации в плагин. Теперь HybridAuth может делать вход\выход пользователю на любой странице сайта.

Обратите внимание, если вы пользуетесь OAuth авторизацией через Google или Яндекс и получаете после обновления ошибку 400 redirect_uri_mismatch — это нормально.

Вам нужно зайти в управление ключами своего сервиса (Google, Яндекс) и заменить адрес редиректа с

http://example.com/assets/components/hybridauth/action.php?hauth.done=Google

на

http://example.com/?hauth.done=Google

Вообще, теперь у всех сервисов такой короткий адрес, отличается только параметр "?hauth.done=Имяпровайдера". Это единственный возможный недостаток обновления, дальше сплошные плюсы.

Читать далее

[miniShop2] Версия 2.1.0-rc: работа без javascript

Новая версия miniShop2 превносит очень серьезные изменения в архитектуру компонента. Именно из-за них это версия 2.1, потому что здесь:

  • Меняются чанки

  • Пропадает action.php, и все ajax запросы работают через системный плагин

  • Полностью переписан стандартный javascript

  • miniShop2 сохраняет функциональность с отключенным javascript

Именно ради работы с отключенным js у посетителя все старания. Хотя, лично меня больше радует новый default.js.

За релиз говорим спасибо Алексею Карташову, который не только поднял вопрос, но и прислал готовые решения. Мне осталось только обработать и добавить. Почти все изменения в этой версии — его.

Читать далее

[ms2Gallery] Версия 1.0.4: friendly имена

Обновил компонент с учетом всех правок от bezumkin'a

  • Исправлен параметр «resource»

  • Изменен механизм загрузки TV ms2Gallery

  • Исправлено отображение даты изображения

  • Доработан загрузчик

  • Обновлены сниппеты

Скачать или обновить можно из нашего репозитария

Читать далее

[miniShop2] 2.1.0-beta2: улучшения админки и фиксы

Продолжаю марафон «ни для без заметки». Сегодня у нас очередная бета-версия MS2.1, в которой парочка приятных улучшений админки и другие изменения.

Кастомизация управления заказами

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

Теперь эта возможность, в немного другом виде, переехала и в MS2. Вот вам реальный пример того, как платные компоненты помогают развитию бесплатных.

У себя в админке мы отключили адрес и вывесли ключи со скидками:

Сделать подобное можно при помощью 3х новых системных параметров:

Читать далее

[pdoTools] Версия 1.5.0: новый сниппет pdoUsers

Сегодня доработал и выпустил новую версию pdoTools. Главное новшество — сниппет pdoUsers, позволяющий легко выводить ваших пользователей.

Рабочий пример — у нас на сайте.

В принципе, это бета-версия, но данный статус касается только pdoUsers, а вот pdoResources вполне себе стабилен и проблем при обновлении быть не должно.

Читать далее

[miniShop2] 2.1.0-beta1: галерея и профиль покупателя

Продолжаю трудиться над новой версией miniShop2. Сегодня у нас готова масштабная переделка галереи и новый объект с профилем покупателя.

Профиль покупателя

Это новый объект msCustomerProfile, он служит для удобного хранения данных о покупателе. На данный момент он никак не управляется из админки, и является заготовкой на будущее.

В объекте следующие поля:

  • id — идентификатор пользователя, совпадает с id modUser и internalKey у modUserProfile.

  • account — внутренний счет покупателя. В будущем с него можно будет оплачивать покупки и зачислять бонусы.

  • spent — сумма денег, которую покупатель оставил в магазине за всё время.

  • createdon — дата создания профиля покупателя.

  • referrer_code — уникальный код юзера, по которому он может пригласить кого-то на сайт.

  • referrer_id — идентификатор пригласившего покупателя.

Читать далее

[AdminPanel] Панель администратора на вашем сайте

Многие помнят прикольный плагинчик editButton, который в несколько строчек очень упрощал управление сайтом.

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

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

Любопытным, как обычно, сразу демо на minishop2.com (логин и пароль в админке — demo). Также, компонент уже доступен на modx-test.com.

А теперь подробнее: как работает и что умеет.

Читать далее

[miniShop2] 2.1.0-beta: плагины и сниппеты

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

Запланировано огромное количество изменений, объём работ приличный, поэтому я буду выкладывать здесь бета версии, для тестирования энтузиастами.

В репозитории новая версия не появится, пока мы всё не отладим и не проверим — я не хочу, чтобы при апгрейде у вас поломались сайты. Поэтому те, кто хочет помочь — качайте и проверяйте беты.

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

Читать далее

[TypoMCE] Модифицированный TinyMCE

Форкнул и переделал пакет TinyMCE для Revolution.

Основная причина — добавление плагина с типографами (анонс на Хабре).

В свое время, я уже добавлял его к TinyMCE для одного из наших клиентов, но мой pull-request не был принят и висит в очереди уже год.

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

Итак, пакет TypoMCE — это отдельное дополнение, оно не мешает стандартному TinyMCE, при этом имеет приятные отличия:

  • 3 типографа: студия Лебедева, typograf.ru и студии Муравьева (кажется, этот уже не работает)

  • TinyMCE обновлен до последней версии 3.5.8

  • Главная фича, лично для меня — работает Ctrl+S

Читать далее

yTranslit вернулся в репозиторий

Выкроил время и привел компонент для генерации алиасов через Яндекс.Переводы в соответствие с новыми требованиями их API.

В системных настройках появился пункт friendly_alias_ytranslit_key, куда обязательно нужно внести свой ключ API, полученный на Яндексе.

Читать далее

[getPageExt] Неверный номер страницы

Уже 2 дня идёт обсуждение, как правильно должен вести себя getPage, если шаловливый юзер набрал в url что-то не то? Ну или пришел по старой ссылке, когда каталог был большой, а теперь он маленький?

Должна быть ошибка, 404 not found или редирект? Или забить, и оставить как есть — пустую страницу и ответ 200?

В общем, я побродил по крупным каталогам (Озон, Яндекс.Маркет) и поглядел, как поступают они. Ответ прост — редирект на первую страницу пагинации, с удалением неверного параметра.

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

Читать далее

[mSearch2] Версия 0.6.2 - переключение чанков

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

В техподдержке нашего магазина запросили такую фишку, и вуаля — теперь она есть в компоненте по умолчанию, с версии 0.6.2.

Читать далее
bezumkin
Василий Наумкин
30.06.2022 03:58
Есть ли возможность формировать "friendly URL aliases", используя аналог translit MODx? ...
bezumkin
Василий Наумкин
27.06.2022 03:32
Спасибо за исправления, очень выручаешь =) Но учитывая количество не описаных в заметке дополнительн...
bezumkin
Василий Наумкин
27.06.2022 03:10
что будет использоваться для вывода многоуровневого меню Посмотри как работают комментарии на этом ...
bezumkin
Василий Наумкин
25.06.2022 11:56
Поправил, спасибо!
bezumkin
Василий Наумкин
22.06.2022 10:08
Я обычно не пользуюсь RTE редакторами, потому что они пишут всякое непонятное что в HTML. Но можно в...
bezumkin
Василий Наумкин
21.06.2022 01:58
onLoad(data) { this.total = data.total }, и onLoad({total}) { this.total = total }, В нашем случ...
bezumkin
Василий Наумкин
20.06.2022 14:01
Прекрасно тебя понимаю, я когда сам в этом разбирался - голова дымилась. Но зато теперь прямо-таки п...
bezumkin
Василий Наумкин
20.06.2022 09:30
Не надо, оно по умолчанию так - я просто чуть более подробно написал.
bezumkin
Василий Наумкин
19.06.2022 13:42
А можно же из 1 файла сделать 2 экспорта. По-умолчанию, и отдельно для футера: export const Footer =...
bezumkin
Василий Наумкин
19.06.2022 09:44
Тебе спасибо, что поддерживаешь рублём мои начинания!