Всего 123 800 комментариев

Баха Волков
10 марта 2023, 09:46
0
Спасибо за отклик!

Исправил.

Версия 1.0.0 доступна на modstore.pro
Она же будет доступна после модерации на modx.com
grotesqueman
10 марта 2023, 03:15
0
приветствую
компонент работает, только в журнал ошибок сыпет:
(ERROR @ ...\core\cache\includes\elements\modsnippet\41.include.cache.php : 53) PHP warning: Undefined variable $hash
ERROR @ ...\core\components\fetchit\model\fetchit.class.php : 94) PHP warning: Undefined array key ""
MODX Revolution 2.8.4-pl
PHP Version 8.1.10
Scorp Satex
09 марта 2023, 23:32
0
msFavorites.ids — тоже наследует общие параметры от pdoTools.

Попробуйте прописать:

[[!msFavorites.ids?
&limit=`99`
]]
Сергей Карпович
09 марта 2023, 20:54
0
отбой, не в то поле смотрел. от сниппета не зависит
Артур Шевченко
09 марта 2023, 18:51
0
Скиньте вызов, я посмотрю. А вообще, AjaxForm точно так же работает, показывает все ошибки сразу.
Сергей Карпович
09 марта 2023, 13:15
0
Интересно то, что если я исполню сниппет AjaxForm то такой проблемы не возникает
Сергей
09 марта 2023, 12:42
0
Убил день жизни, расковырял. В ядре ошибка.
Файл /core/vendor/xpdo/xpdo/src/xPDO/xPDOConnection.php
В строке
$connectFile = XPDO_CORE_PATH. 'om/'. $this->config['dbtype']. '/connect.inc.php';
меняем
'om/' на 'Om/'
Ошибка не позволяет подключить файл, в котором ставится SET NAMES. Вероятно, следует сообщить разработчикам.
Артур Шевченко
09 марта 2023, 12:28
0
Немного не по адресу вопрос, за валидацию отвечает FormIt.
Сергей Карпович
09 марта 2023, 12:14
0
Если для поля установлено несколько валидаторов, например:
name.vTextRequired и name.vTextMinLength
То при незаполненном поле — показывается текст ошибки и с первого валидатора со второго валидатора, хотя до него еще не дошли. Это можно поправить?
Те. если поле не заполнено — показываем name.vTextRequired, если заполнено мало, то name.vTextMinLength
Денис Усачев
09 марта 2023, 12:09
0
msFavorites.ids
<?php
/** @var array $scriptProperties */
/** @var msFavorites $msFavorites */
if (!$msFavorites = $modx->getService('msfavorites.msFavorites', '', MODX_CORE_PATH . 'components/msfavorites/model/')) {
    return 'Could not load msFavorites class!';
}
/** @var pdoFetch $pdoFetch */
if (!$modx->loadClass('pdofetch', MODX_CORE_PATH . 'components/pdotools/model/pdotools/', false, true)) {
    return false;
}

if (!empty($returnIds)) {
    $return = 'ids';
}
if ($return === 'ids') {
    $returnIds = 1;
}

if (!isset($list) OR $list == '') {
    $list = 'default';
}
if (!isset($type) OR $type == '') {
    $type = 'resource';
}

$list = is_array($list) ? $list : array_map('trim', explode(',', $list));
$rows = $modx->runSnippet('msFavorites.objects', array_merge($scriptProperties, ['return' => 'data', 'list' => $list, 'type' => $type, 'groupKey' => 'list']));
$pls = [
    'list'  => [],
    'total' => [],
];
foreach ($list as $l) {
    $keys = !empty($rows[$l]) ? array_column($rows[$l], 'key') : [];
    $pls['list'][$l] = !empty($keys) ? implode(',', $keys) : '-0';
    $pls['total'][$l] = count($keys);
}
$msFavorites->setPlaceholders($pls);

$log = '';
if ($modx->user->hasSessionContext('mgr') && !empty($showLog)) {
    $log .= '<pre class="msFavoritesLog">' . print_r($pdoFetch->getTime(), 1) . '</pre>';
}
$modx->setPlaceholder('msFavorites.log', $log);

$output = [];
switch ($return) {
    case 'data':
        $output = $pls;
        break;
    case 'json':
        $output = json_encode($pls, true);
        break;
    case 'ids':
    default:
        $output = reset($pls['list']);
        if (!empty($toPlaceholder)) {
            $modx->setPlaceholder($toPlaceholder, $output);
            $output = '';
        }
        break;
}

return $output;
Денис Усачев
09 марта 2023, 11:42
0
1. выдает ровно 10 id [32,46,55,64,73,84,95,105,114,120]

2. pdoPage &limit=`999` ставлю но без изминений,
так как в resources передаю id
&resources=`{'!msFavorites.ids' | snippet}`  
что равно 
&resources=`32,46,55,64,73,84,95,105,114,120`
Scorp Satex
09 марта 2023, 10:21
0
1. Вызов
{'!msFavorites.ids' | snippet}
— сколько idшников выдает? тоже 10 штук или больше?
2. У pdoPage есть параметры: docs.modx.pro/komponentyi/pdotools/snippetyi/pdopage Один из них — &limit по умолчанию limit и там указано 10. Попробуйте указать там 99.
Алексей Смирнов
08 марта 2023, 20:21
0
Ну если квалификация позволяет расковырять — расковыряйте.
Там встроенный обработчик. Можно по аналогии сделать свой. И тогда получите свой вариант.
Prihod
08 марта 2023, 20:19
+1
Все те кто при установки базового пакета выбирает также установку всех нужных ему и не нужных дополнительных пакетов расширяющих базовый должны иметь ввиду, что вам может не хватить лимита времени которое у вас отведено на выполнение php скрипта из-за чего пакеты либо вообще не установятся, либо установятся не полностью. В итоге у вас лог ошибок modx будет забит ошибками вида

Problem getting service iemsoptionsprice2, instance of class IeMsOptionsPrice2, from path
Problem getting service iemssaleprice, instance of class IeMsSalePrice, from path
Problem getting service iemsoptionscolor, instance of class IeMsOptionsColor, from path
Что бы их убрать нужно либо установить/переустановить пакеты фигурирующие в логе классическим способом, либо удалить о них информацию в следующих местах

  1. На странице пространство имен /manager/?a=workspaces/namespace
  2. В системных настройках в опции extension_packages /manager/?a=system/settings
  3. Также может понадобиться удалить, если он есть, плагин его дополнения
Александр
08 марта 2023, 20:19
0
Как понял, в самом компоненте, в котором работал с контроллером.
Использовал свой код + ваши подсказки и код в другом контроллере от zoomx и все сработало.
Хотя до этого и там не работало.
Константин Ильин
08 марта 2023, 20:16
0
Не за что! В чем была проблема?
Александр
08 марта 2023, 20:06
0
в итоге получилось.
Спасибо вам больше за помощь!
Константин Ильин
08 марта 2023, 19:04
0
Тут дальше только выяснять постепенно как я писал вам ранее, выводите в лог или как то логгируйте, что получаете и т.д. сам Пример(!) как у меня работает я дал, ну и в теории повторюсь вы получаете строку с заказом ее надо из json вытащить и получить заказ.

так же в вашем коде два раза вызывается $miniShop2->order->submit()

Так же вы не поменяли $modx на $this->modx
Адаптируйте мой код под ваш самостоятельно