Skip to content
msReviews
msReviews
Отзывы, рейтинг, Q&A и JSON-LD для MiniShop3
  • MODX 3
  • PHP 8.2
  • miniShop3
  • Vue 3
  1. Компоненты
  2. msReviews
  3. Интеграция на сайте
  4. msRatingSummary

Сниппет msRatingSummary

Выводит HTML-сводку рейтинга: средняя оценка, число отзывов, разбивка по звёздам (режим full) или компактная строка ★ 4.4 (32) (режим aggregate). С 1.2.3 область задаётся через productIds / parents / all (главная или раздел).

Назначение

  • Страница товара — полная сводка над списком отзывов (summaryMode=full, чанк tplRatingSummary).
  • Каталог — одна строка в карточке товара (summaryMode=aggregate, чанк tplRatingCatalog).
  • Главная / категория / лендинг: суммарный рейтинг по области (all=1 / parents / productIds).

Где вызывать

МестоРежимЧанк
Шаблон msProductfulltplRatingSummary (по умолчанию)
Чанк карточки в msProductsaggregatetplRatingCatalog
Главная, категория, «О компании»aggregate + scopetplRatingCatalog или свой

Зависимости

  • MiniShop3, msReviews
  • Агрегат рейтинга из БД msReviews (не требует pdoTools)

Параметры

ПараметрПо умолчаниюОписание
product_idid текущего ресурсаID товара MS3. Без scope при product_id=0 fallback на текущий ресурс
productIds(пусто)CSV id ресурсов. Явная область, приоритет над parents
parents(пусто)CSV id папок: сами папки + потомки, затем ресурсы каталога
all01: суммарный рейтинг по всему сайту (игнорирует product_id)
tpltplRatingSummaryЧанк вывода. В каталоге: tplRatingCatalog
summaryModefullfull: полная сводка. aggregate: только средняя и count
hideEmpty01: не выводить при нуле отзывов
registerCss10: не подключать reviews.css повторно. См. Подключение reviews.css
registerJs1Подключать JS витрины
connectorUrlautoURL connector.php (редко нужен override)

Приоритет области: productIdsparentsall → одиночный product_id / msr_product_id / текущий ресурс. Среднее взвешенное по числу опубликованных отзывов (SUM(rating)/COUNT), не среднее средних по товарам. Явно заданный, но пустой список (productIds=0`` / несуществующие id) даёт нулевую сводку, не весь сайт (hideEmpty=0 показывает нули, hideEmpty=1 пустую строку). Connector rating/get и JSON-LD остаются per-product.

Подключение reviews.css

Файл стилей: assets/components/msreviews/css/reviews.css.

На карточке товара (msProduct) сниппет подключает CSS сам.

В каталоге (msProducts) карточка вызывается много раз. Два варианта:

Вариант A — автоматически (по умолчанию)

Не передавайте registerCss или оставьте registerCss=1. CSS подключится, когда у первого товара с отзывами появится рейтинг. Повторно в сетке файл не грузится.

Шаблон страницы каталога (не чанк карточки), один раз в <head>:

fenom
<link rel="stylesheet" href="{$_modx->getOption('assets_url')}components/msreviews/css/reviews.css">
modx
<link rel="stylesheet" href="[[++assets_url]]components/msreviews/css/reviews.css">

Чанк карточки — с registerCss=0 (см. пример «Компактная строка в каталоге» ниже).

Полное описание с третьим способом (regClientCSS): Каталог — подключение reviews.css.

Полная сводка на странице товара

fenom
{'!msRatingSummary' | snippet : ['product_id' => $_modx->resource.id]}
modx
[[!msRatingSummary? &product_id=`[[*id]]`]]

Компактная строка в каталоге

fenom
{'!msRatingSummary' | snippet : [
  'product_id' => $id,
  'tpl' => 'tplRatingCatalog',
  'summaryMode' => 'aggregate',
  'hideEmpty' => 1
]}
modx
[[!msRatingSummary?
  &product_id=`[[+id]]`
  &tpl=`tplRatingCatalog`
  &summaryMode=`aggregate`
  &hideEmpty=`1`
]]

CSS уже в шаблоне каталога (registerCss=0)

Используйте, если в catalog.tpl добавили <link> на reviews.css (см. Подключение reviews.css).

fenom
{'!msRatingSummary' | snippet : [
  'product_id' => $id,
  'tpl' => 'tplRatingCatalog',
  'summaryMode' => 'aggregate',
  'hideEmpty' => 1,
  'registerCss' => 0
]}
modx
[[!msRatingSummary?
  &product_id=`[[+id]]`
  &tpl=`tplRatingCatalog`
  &summaryMode=`aggregate`
  &hideEmpty=`1`
  &registerCss=`0`
]]

Общий рейтинг (главная, категория)

С 1.2.3 задайте область вместо одного product_id:

fenom
{'!msRatingSummary' | snippet : [
  'all' => 1,
  'summaryMode' => 'aggregate',
  'hideEmpty' => 1
]}

{'!msRatingSummary' | snippet : [
  'parents' => $_modx->resource.id,
  'summaryMode' => 'aggregate',
  'hideEmpty' => 1
]}
modx
[[!msRatingSummary? &all=`1` &summaryMode=`aggregate` &hideEmpty=`1`]]
[[!msRatingSummary? &parents=`[[*id]]` &summaryMode=`aggregate` &hideEmpty=`1`]]

hideEmpty в листинге

При hideEmpty=1 карточка без отзывов не показывает пустую строку рейтинга:

fenom
{'!msRatingSummary' | snippet : [
  'product_id' => $id,
  'summaryMode' => 'aggregate',
  'hideEmpty' => 1
]}
modx
[[!msRatingSummary?
  &product_id=`[[+id]]`
  &summaryMode=`aggregate`
  &hideEmpty=`1`
]]

Связь со списком отзывов

Если над списком стоит msRatingSummary, передайте в msReviews showStats=0, чтобы не дублировать строку verified / медиа / ответ / рекомендуют.

См. также