Наумов Алексей

Наумов Алексей

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
13 сентября 2023, 10:02
1
+1
У вас несколько вариантов:
1. Указать в параметре threads строку с нужными вам цепочками, например resource-5,resource-6,resource-7, где 5,6,7 — как раз те самые дочерние страницы. Но этот способ нормально будет работать только если таких страниц не так много, 5..10..100.
2. Изначально можно изменить способ формирования параметра thread, например сделать его вида category-2-product-5, тогда можно делать запрос вида thread LIKE 'category-2-%'. Но тоже, если тысячи товаров, то LIKE может быть не быстрым.

Если речь о тысячах товаров — нужно придумывать что-то другое, я бы рассмотрел возможность добавления какой-нибудь колонки в таблицу modx_ec_threads, куда бы записывались данные, по которым фильтровать удобно. В вашем случае колонка category со значением 2.
Наумов Алексей
12 сентября 2023, 10:02
+1
Второй способ, но вы потеряли параметр thread (и threads), который укажет что нам нужно выводить все отзывы, а не только те, что есть у текущей страницы:

[[!ecMessages? 
    &threads=`*`
    &tpl=`ecMessages.Row.Home-Review`
    &limit=`0`
    &subject=`отзыв` 
]]
Наумов Алексей
06 сентября 2023, 14:28
0
значит там опечатка)))
Наумов Алексей
06 сентября 2023, 08:27
0
В параметре thread рядом с resource потерян дефис:
'resource-' ~ $id
Наумов Алексей
05 сентября 2023, 17:18
0
В базе удобно… администратор может видеть брошенные корзины.
А еще можно зайти под своей учеткой с разных устройств и видеть корзину же?..
Наумов Алексей
05 сентября 2023, 15:10
0
1. нагенерируйте нужные превью, указав их в источнике файлов miniShop2
2. см. доки docs.modx.pro/components/easycomm/rating-in-pdoresources-and-msproducts
Наумов Алексей
05 сентября 2023, 12:13
+2
п. 3 и 4 в msProducts — ура))
Необязательная регистрация пользователя — тоже ура)
Наумов Алексей
05 сентября 2023, 10:54
0
Ну у вас прям навороченный чанк…
Во-первых избавляйтесь от phpthumbon.
Во-вторых уберите встроенный синтаксис modX (с прямоугольными скобками который).
Если у вас выводится на странице много товаров — стоит попробовать вместо вызова ecThreadRating делать join таблицы чтобы получать рейтинг товара.

Два вызова msOptions тоже… может как-то упростить?
Наумов Алексей
05 сентября 2023, 09:58
0
Попробовать:
1. отключить suggestions и посмотреть время
2. временно убрать почти все фильтры (оставить 1-2) и посмотреть время
2. покажите чанк с товаром, может там чего?
Наумов Алексей
03 сентября 2023, 13:02
1
0
Я бы посоветовал посмотреть, как это реализовано в компоненте ClientConfig, он решает похожую задачу: хранит свои настройки не в таблице modx_system_settings, а в другом месте (в своей таблице).

В частности посмотри код плагина.
Наумов Алексей
15 августа 2023, 09:05
+1
В каталоге
/core/components/easycomm/elements/chunks/old
остались старые чанки на стандартном синтаксисе MODX, но да, они были созданы еще до того, как у компонента появилась возможность прикреплять файлы, поэтому эти чанки немного более старой версии.

Насколько помню, запрашиваемое вами выглядит так:
[[+files:notempty=`formenctype="multipart/form-data"`]]

[[++upload_maxsize]]
Наумов Алексей
14 августа 2023, 09:10
+1
добрый день!

[[!ecMessages?
&fileTypes = `jpg,jpeg,png,gif,webp`
&fileSize = `10485760`
]]
или на Fenom
{'!ecMessages' | snippet : [
	'fileTypes' => 'jpg,jpeg,png,gif,webp',
	'fileSize' => '10485760'
]}
fileSize — в байтах
Наумов Алексей
23 февраля 2023, 05:21
+1
Допустим, есть 3 цепочки (3 товара).
1: 5 отзывов, рейтинг 4
2: 180 отзывов, рейтинг 3,5
3. 1 отзыв, рейтинг 5

Вопрос: какой средний рейтинг у категории с этими товарами? Просто сложить рейтинг и поделить на кол-во отзывов? Ну нет… да и вообще, как это звучит по логике?.. Средний рейтинг всех наших мобильных телефонов равен 4? Как-то не очень понятно звучит… а если внутри категории «Телефоны» с десяток подразделов (да еще вложенных в 2-3 уровня), а внутри порядка 500 товаров… что с этим делать, как считать? А если используется miniShop2 с его мультикатегориями… у меня столько вопросов возникает))) а если товар перенести в другой раздел, все пересчитывать?..

А конкретно в вашем случае я бы рассмотрел возможность сделать для каждого товара только одну цепочку с отзывами, например по артикулу: product-ARTICLE вместо стандартного resource-ID (так у вас 2 цепочки отзывов для фактически одного товара).
Наумов Алексей
22 февраля 2023, 11:45
0
Конечно, рейтинг же хранится и считается для каждой цепочки отдельно.
Напишите свой сниппет, основываясь на ecThreadRating, который будет брать кол-во отзывов и рейтинг обоих цепочек и «складывать» нужным вам способом.
Наумов Алексей
16 февраля 2023, 06:05
0
Добрый день! У компонента нет такого. Нужно что-то писать самому. Я бы предложил для ускорения работы результат вычисления сохранять у категории в доп поле (хоть в тв).
Наумов Алексей
08 февраля 2023, 16:19
+2
Потому что в значениях опций есть запятая, а она используется как разделитель адресной строке в mFilter2. См. параметр values_delimeter в доках docs.modx.pro/komponentyi/msearch2/snippetyi/mfilter2
Наумов Алексей
10 января 2023, 10:09
0
Да, что-то я совсем не то написал в своем сниппете)))
Наумов Алексей
09 января 2023, 16:09
0
Самое простое:

[[!ecMessages?
&threads=`*`
&tpl=`tpl.ecMessages.Row.all`
&limit=``
&messages=`[[!getMessageIdFromRequest]]`
]]
и создаем сниппет getMessageIdFromRequest:
<?
$messageId = intval($modx->getOption('id', $scriptProperties, 0));

return $messageId;
но тут нет никакой «защиты» от неверно переданного id (несуществующего, например, или удаленного).
Наумов Алексей
09 января 2023, 10:50
+1
Добрый день!
Механизма хуков нет, есть возможность повесить плагин (в смысле обычный плагин MODX) на различные события (создание сообщения, удаление и т.п.).