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

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

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
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) на различные события (создание сообщения, удаление и т.п.).
Наумов Алексей
30 декабря 2022, 08:01
0
У отзыва нет отдельной страницы. реализовать, естественно, это можно, вариантов реализации много.
Простой способ — передавать id отзыва через GET параметр при запросе к специальной странице «Читать отзыв». Ну и там далее получать этот отзыв из базы и выводить.
Наумов Алексей
24 декабря 2022, 06:06
0
Или вот так, просто передавая массив, а не JSON строку:
'where' => ["doctor" => $_modx->resource.pagetitle],
Наумов Алексей
23 декабря 2022, 09:39
0
Добрый день!
Здесь можно попробовать так, к примеру.
1. Вы привязываете отзыв к услуге (через thread).
2. У отзыва есть поле subject, его можно использовать, чтобы хранить имя врача.
3. Добавить новое текстовое поле clinic для клиники.

На странице врача и клиники ставить у ecMessages thread=* (т.е. любая цепочка), а отзывы фильтровать через where по полям subject и clinic/
Наумов Алексей
18 ноября 2022, 09:07
1
+1
Добрый день. Основной принцип — комментарий добавляется с фронта, поэтому в админке и нет кнопки загрузки файла. Но в целом наверное полезно, сделать можно… поставлю в список хотелок
Наумов Алексей
11 ноября 2022, 11:38
0
Добрый день.
Поле вводе с типом xtype «ec-combo-thread» предназначено именно для формирования списка цепочек, ничего другого оно не выведет.

Если вам нужно выводить какие-то записи из базы — то нужно или использовать уже существующий xtype, например посмотрите здесь bobsguides.com/xtype-list.html, поиск по странице «modx-combo-».

Либо написать свой xtype.
Ну к примеру посмотрите как сделано в miniShop2

Или используйте базовый combo:
docs.modx.com/3.x/ru/extending-modx/custom-manager-pages/modext/modx.combo.combobox