Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 145 комментариев

Василий Наумкин
Василий Наумкин
1. При регистрации нового юзера вызывается событие OnUserFormSave, в которое передается юзер и переменная $mode, указывающая, новый ли он.

2. У юзера есть свои настройки (объект modUserSetting), куда можно писать произвольные данные и их даже видно в админке.

3. А у MS2 есть системная настройка ms2_price_snippet, которая позволяет прогонять все цены товаров через произвольный сниппет и возвращать стоимость. По этой же цене товары будут добавлены и в корзину.

4. Настройки юзера можно получать вот так:
$modx->user->getSettings();
Василий Наумкин
Василий Наумкин
В логе системы должны быть ошибки.

Если там что-то про запрос и сортировку — то ты не обновил
чанк mFilter, вручную.

Он в новой версии сильно отличаются, но автоматически не обновляется, во избежание затирания пользовательского контента.
Peter Zenin
Peter Zenin
Если кому пригодится, вот выборка всех данных продукта:
$whereImages = array();
$whereImages['parent'] = $productId;
$leftJoin = '{"class":"msProductData","alias":"Data","on":"msProduct.id=Data.id"}';
$resourceColumns = $modx->getSelectColumns('msProduct', 'msProduct');
$dataColumns = $modx->getSelectColumns('msProductData', 'Data', '', array('id'), true);
$select = '"msProduct":"'.$resourceColumns.'","Data":"'.$dataColumns.'"';
$defaultImages = array(
    'class' => 'msProduct',
    'where' => $modx->toJSON($whereImages),
    'leftJoin' => '['.$leftJoin.']',
    'select' => '{'.$select.'}',
    'fastMode' => false,
    'return' => 'data',
    'limit' => 0,
);
$pdoFetch->config = array_merge($pdoFetch->config, $defaultImages, $scriptProperties);
$rowsImages = $pdoFetch->run();

foreach ($rowsImages as $k_i => $row_i) {
    echo "<hr>\n";
    echo $row_i["thumb"];
    echo "<hr>\n";
}
Peter Zenin
Peter Zenin
Я делаю запрос на msProduct, а pdoTools мне возвращает данные из таблицы site_content, разве что только с class_key = msProduct… Почему так? А как сделать полноценный запрос к msProduct через pdoTools?

$whereImages = array();
        $whereImages['parent'] = $row['id'];

        $defaultImages = array(
            'class' => 'msProduct',
            'where' => $modx->toJSON($whereImages),
            'fastMode' => true,
            'return' => 'data',
            'limit' => 0,
        );

        $pdoFetch->config = array_merge($pdoFetch->config, $defaultImages, $scriptProperties);

        $rowsImages = $pdoFetch->run();

        foreach ($rowsImages as $k_i => $row_i) {
            echo "[".$k_i."] => 
";
            //echo $row_i["thumb"];
            var_dump($row_i);
            echo "
\n";
            echo "<hr>\n";
        }
Мне надо получить данные поля thumb из таблицы ms2_products