Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 087 комментариев

Prihod
Prihod
MyFavorites — 3.0.0-beta

Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архитектура). Чистая установка; совместимость с данными, куками и настройками старой версии для MODX 2 не предусмотрена.

Добавлено
— Публичный REST API (assets/components/myfavorites/api.php) для фронтенд-виджета и стороннего кода (мобильные приложения, кастомный фронтенд)
— Фронтенд-виджет на нативном TypeScript (сборка Vite), без внешних JS-зависимостей; кастомизация через CSS-переменные и подписку на JS-события
— Сниппеты MyFavorites, MyFavorites.btn, MyFavorites.counter, MyFavorites.lists, MyFavorites.ids, MyFavorites.share
— Пользовательские списки избранного: создание, переименование и удаление своих списков посетителем (настройка myfavorites_custom_favorite_lists)
— Публичные ссылки на списки избранного с копированием ссылки в буфер обмена одним кликом
— Синхронизация списков между устройствами: слияние избранного при авторизации или совпадении меток аналитики (настройка myfavorites_sync_favorite), ленивая инвалидация кэша по версии
— Синхронизация индикатора избранного: обновление всех кнопок товара на странице и между открытыми вкладками браузера через BroadcastChannel (настройка myfavorites_tab_sync)
— Идентификация анонимных посетителей по собственной cookie (_mfuid, дублируется в localStorage) и меткам систем аналитики (_ym_uid, _ga)
— Экспорт данных избранного и посетителей из админки в CSV/XLSX/ODS; реестр отчётов задаётся настройкой myfavorites_export_handlers
— Дашборд в админке: KPI, динамика активности (7/30/90 дней), топ ресурсов, распределения действий/типов пользователей/браузеров, лента событий и блок «Безопасность» (срабатывания защиты)
— Уведомления администратора о срабатывании защиты (превышение лимита запросов, провал капчи, бан по IP); каналы доставки email и Telegram, канал заменяем через NotifierInterface
— Защита REST API: CSRF-токены, чёрные списки IP, лимит запросов (rate limit), reCAPTCHA v3, Yandex SmartCaptcha, доверенные reverse-proxy для заголовка X-Forwarded-For
— Аналитика: передача событий добавления/удаления/очистки/шаринга в Google Analytics и Яндекс.Метрику
— Системные события OnMyFavorites* (добавление/удаление/очистка избранного, операции со списками, создание/восстановление/слияние посетителей, экспорт, срабатывание защиты) для расширения сторонними плагинами
— Журнал действий с аудитом и автоматическая очистка устаревших записей и истёкших банов по CRON (скрипт cron/clear.php)



Артур Шевченко
Артур Шевченко
Добавил. Вот было бы здорово если бы загрузку файлов сделали попроще: например нажал в редакторе кнопку указал ссылку на файл и при сохранении заметки он скачивается на сервер форму, ссылка меняется на локальный путь… эх мечты)))
Иван Бочкарев
Иван Бочкарев
Денис Валентинович
Денис Валентинович
Позвольте ещё немного понудить по поводу блока комментария.

Рамка в рамке в рамке в рамке – создает визуальный шум. Не то чтобы это было плохо или хорошо (по факту это вкусовщина), но минимализм всегда в моде.

Правило простое, если нет объяснения «зачем оно надо?» значит можно убрать. Разделить текст и нижние элементы? Там линия этот вопрос решает. Разделить один комментарий от другого? Общий белый блок решил этот вопрос.

А ну и еще кнопку «Ответить» можно перенести в общий ряд элементов и сделать визуально кнопкой.

На скрине было/стало предлагаю своё виденье.



P.S. Там ещё кнопка «Изменить» имеется, её тоже предлагаю в этот ряд.
Денис Валентинович
Денис Валентинович
Очень нравится! Хорошо свежо и современно!

Позвольте вставить свои 5 копеек:
1. А можно сделать прилипающую шапку меню сверху? (сейчас надо или скролить вверх или жать кнопку «Наверх»)
2. В темной теме сделать белые линии серыми (цвет как верхняя линия)

Иван Бочкарев
Иван Бочкарев
Доработал шапку, карточки заметок и блок действий под маленькие экраны.

  • Шапка. На мобиле лого, поиск, тема и профиль остаются в одной строке. Меню уходит на вторую. На планшете/узком десктопе навигация тоже переносится отдельной строкой. Кнопки логина, аватара, поиска и темы выровнены по размеру, без схлопывания.
  • Карточки и страница заметки. Подписи кнопок («Изменить», «В черновики» и т.д.) короткие на мобиле, полные на десктопе, есть aria-label. Статистика и голоса/избранное собраны в одну строку engagement.
  • Сайдбар пакетов. Версия и дата идут в одну строку, длинные версии обрезаются с ellipsis, сетка чуть плотнее.
Итого: меньше переносов и «ломаной» шапки на телефоне, компактнее действия и мета в ленте.