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

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

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
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
Наумов Алексей
08 ноября 2022, 12:06
0
Я не знаю точной причины к сожалению ошибки. У самого бывало подобное, но не систематично как-то.
Есть версия, что дело может быть в том, что ваш сервер не может корректно соединится с сервером modstore из-за того, что ему «не нравится» ssl сертификат. Но это только версия.
Наумов Алексей
06 ноября 2022, 09:02
0
Добрый день! А другие пакеты устанавливаются? Обновляются? Из modstore и из официального репозитория?
Наумов Алексей
24 октября 2022, 12:33
0
привет, прочитал статью!
Да, я поправлю и выпущу обновление.
Нюанс в том, кол-во пользователей облаков минимально и никто не сталкивался с этим в easyComm, да и я сам тоже)
Наумов Алексей
18 октября 2022, 10:24
1
+1
template — это поле ресурса, нужно это указать.

Я сейчас не вспомню точно как, но что-то типа resource.template или modResource.template.
насчет join — поищите примеры здесь на форуме…
ну типа modx.pro/help/13888
Наумов Алексей
18 октября 2022, 09:09
1
+1
привет!
Да, здесь pdoPage должен работать.
{'!pdoPage' | snippet : [
    'element' => 'ecMessages',
...
все прочие параметры ecMessages
....
]}
Про работу кнопки «Загрузить еще» стоит читать его документацию…

Насчет этого «Необходимо собрать все комментарии которые находятся под ресурсом с id 5.»
Два варианта решения:
1. дочерних ресурсов мало — просто формируйте сторонним сниппетом строку для параметра threads для ecMessages в виде 'resource-6,resource-7,resource-8,resource-9,resource-10'…
2. Дочерних много — укажите threads='*', а ограничение выборки делайте через параметр where.
3. Дочерних много и они вложены на много уровней вниз — тут посложнее, все зависит от конкретной ситуации.
Я бы наверное изначально формировал thread в виде category-5-resource-10, чтобы потом через LIKE выбирать: 'category-5-%'.

>> также вывести pagetitle
Читайте про параметр resourceFields у сниппета ecMessages в документации.
А вот TV вы так не выберете. Тут только JOIN если делать.