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

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

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
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 если делать.
Наумов Алексей
02 октября 2022, 09:54
0
Добрый день. Да для MODX 2 прикрепление файлов есть.
А вот демонстрации у меня нет. В целом это выглядит как просто input type=file с атрибутом multiple.
В админке — просто вкладка в окне редактирования сообщения со списком файлов и возможностью ими управлять (удалить файл).
Наумов Алексей
14 сентября 2022, 10:07
0
Да, я наверное код привел из версии для MODX 3…

В версии для MODX 2 все несоклько по другому…
Там вместе с $this->mediaSource->createContainer почему-то используется еще и $this->mediaSource->fileHandler->make и подозреваю что с облачным хранилищем это не сработает. Я сейчас уже не помню почему так…
Наумов Алексей
14 сентября 2022, 10:04
0
Привет!

Да нет, можно любые файлы. В настройках есть список допустимых расширений файлов (ну и у источника файлов тоже есть такая же настройка). Есть проверка на макс. размер файла.

Насчет облаков не могу сказать, я не проверял.

Смотри основные выдержки кода по закгрузке файлов:
// получение и инициализация mediaSource
$this->mediaSource = modMediaSource::getDefaultSource($this->modx, $this->modx->getOption('ec_files_source'));
$this->mediaSource->set('ctx', $context);
$this->mediaSource->initialize();
...
// проверка policy
if (!$this->mediaSource->checkPolicy('create')) {...}
...
// формирование пути и создание каталога
$this->mediaSource->createContainer($internalPath, '');
..
// загрузка файла
$uploadResult = $this->mediaSource->uploadObjectsToContainer(
    $internalPath,
    array(
        array_merge($file, array('name' => $filename))
    )
);
на первый взгляд все выглядит корректно)))
Swift уж тем более не проверял
Наумов Алексей
26 июля 2022, 14:14
0
Документация говорит, что вот такое возможно:
{$foo.$bar}
github.com/fenom-template/fenom/blob/master/docs/ru/syntax.md
Наумов Алексей
15 июня 2022, 12:09
0
Значит у вас есть массив, его нужно объединить в строку, но не через запятую, а через пробел:
{$row.group | join : " "}