15 сентября 2026
15 сентября 2026
10 сентября 2026
10 сентября 2026
9 сентября 2026
Последние обновления
- При отсутствии `visibleUntil` применяется fallback `(max-width: 359px)`: панель скрыта до 359 CSS px включительно и показывается с 360 CSS px. Пустое значение больше не передаётся в `matchMedia` как совпадающий со всеми viewport media query
- В SSR-окружении без `window` или `document` вызов `new ViPanel()` стал тихим no-op без DOM-монтажа, callbacks и ошибок в консоли; рабочая модель создаётся отдельным клиентским вызовом после появления DOM
- Override `smol-toml@1.7.2` устраняет high-severity advisory в dev-цепочке `markdownlint-cli2` без отката самого Markdown-linter.
- возможность добавления собственных провайдеров и моделей
Сервисное обновление.
Доработки и исправления:
- Правки и улучшения
Внимание! Перед установкой обновления необходимо сделать полную резервную копию сайта.
Что изменилось после версии 2.11.1.
Что нового
- Кто проверил материал. Страница получила свойства reviewedBy и lastReviewed: кто проверил содержимое на достоверность и когда. Материал на сложную тему нередко пишет редактор или маркетолог, а за факты отвечает профильный специалист — без разметки страница выглядит написанной непрофильным автором, хотя фактически она проверена.
- Рецензентом может быть и человек, и организация — редакция, лаборатория, экспертный совет.
- Специалист с постоянным идентификатором попадает в разметку ссылкой, а не копией: все проверенные им материалы связываются между собой в одну сущность.
Как это выглядит в коде
Свойства задаются на объекте страницы, который возвращает Schema::setMainEntity():
- ->setReviewedBy($reviewer) — принимает то же, что setAuthor(): объект Person, массив полей, имя строкой или ссылку по идентификатору. Вторым аргументом задаётся тип, если проверяла организация.
- ->setLastReviewed($date) — дата разбирается так же, как дата публикации.
Оба поля необязательные, и пустое значение допустимо: незаполненное свойство инфоблока просто не попадёт в разметку, проверять его перед вызовом не нужно. Уже проставленное значение пустым вызовом не затирается.
Где именно живут эти свойства
На странице, а не на статье. По schema.org reviewedBy и lastReviewed объявлены у типа WebPage, а Article и WebPage — не родитель и потомок, а соседи: свойства друг друга они не наследуют. Поставленные на статью, эти поля стали бы неизвестными, и валидатор Google выводил бы на них предупреждение.
Что исправлено
- Метод установки даты проверки при пустом значении заводил пустое поле. В разметку оно не попадало, но сущность с ним переставала считаться пустой и могла уехать в граф бессмысленным узлом. Метод существовал с версии 2.2.0, не был описан в руководстве и не проверялся тестами — теперь описан и покрыт.
Что сделать после обновления
- Если на сайте есть материалы, проверенные профильным специалистом, — завести свойство инфоблока со ссылкой на его карточку и вызвать setReviewedBy() в шаблоне детальной страницы. На страницах списка эти свойства смысла не имеют: они описывают страницу целиком, а не отдельный материал в перечне.
- Открыть любую страницу сайта с параметром ?microdata_debug=Y под администратором и убедиться, что рецензент попал в граф отдельным узлом.
Рич-результата reviewedBy не даёт ни у Google, ни у Яндекса — это сигнал для графа знаний и для оценки экспертности материала.
Полный список изменений — в файле CHANGELOG.md внутри модуля. Руководство — в docs/MANUAL.md.
- Номера заказов Ozon записываются в поле Трек-номер отгрузки заказа.
- Заказы, созданные раньше, получают трек-номер при ближайшей проверке статусов.
Поддержка PHP8
Добавление настройки цвета текста
Добавление настройки цвета рамки
Добавление настройки цвета фона
Возможность добавления ID цели выполняемой по клику на MAX
Обновление безопастности модуля
Новый шаблон магазина
2) Устранены ошибки в работе функционала преобразований.
3) Исправлена ошибка сортировки элементов по свойству типа Список.
4) Доработан фильтр на 2-м шаге.
- Отправка ссылки на оплату из карточки заказа. Менеджер выставляет счёт одной кнопкой и отправляет покупателю ссылку на e-mail, в СМС или Viber — по отдельности или сразу двумя способами.
- Подтверждение оплаты при двухстадийной схеме. Снятие захолдированных средств прямо из заказа, без перехода в личный кабинет CloudPayments.
- Защита от повторной оплаты. При выставлении нового счёта предыдущий автоматически отменяется — по устаревшей ссылке заплатить нельзя.
- Оповещения о сбоях. Сообщения о проблемах с деньгами и чеками через бесплатный модуль rover.notifier, с раздельными настройками для срочных и некритичных событий. Отдельно предупреждаем, если в кабинете CloudPayments отключено Check-уведомление — без него магазин остаётся без проверки суммы и защиты от повторной оплаты.
- Установка стала аккуратнее. Уже заведённые на сайте статусы заказа не предлагаются к повторному созданию, модуль корректно ставится и удаляется без модуля «Интернет-магазин», а после установки можно сразу перейти к настройкам.
- Исправлены найденные уязвимости, повышена безопасность