Евгений Ц.

Евгений Ц.

С нами с 24 сентября 2019; Место в рейтинге пользователей: #538
Евгений Ц.
15 февраля 2023, 02:15
0
Смотря какой характер спама, я для себя написал валидатор formit, который отсеивает по заданному списку слов, неплохо помогает.
Евгений Ц.
14 февраля 2023, 16:28
0
Может, кому пригодится, поле в таблицу можно добавить в системной настройке ms2_category_grid_fields
Евгений Ц.
19 января 2023, 12:25
0
Думал об этом, но в таком случае я ожидал ошибку «permission_denied_processor».
Евгений Ц.
19 января 2023, 03:27
0
В общем, решение своей задачи нашел здесь docs.modx.com/current/en/building-sites/client-proofing/security/troubleshooting-security/resetting-a-user-password-manually но вопрос с процессором все же остаётся открытым.
Евгений Ц.
10 мая 2022, 17:47
0
Можно написать свой сниппет и отправлять им, как я изначально и поступил.
Евгений Ц.
20 апреля 2022, 13:13
0
Спасибо!
Евгений Ц.
15 марта 2022, 15:53
0
Спасибо. Как раз в этом направлении я и двигаюсь. Сохраняю id конкретной нужной мне сессии в БД, а потом смотрю access. Я просто думал, что может быть «из коробки» какое-то решение есть.
Евгений Ц.
09 марта 2021, 01:48
+1
Так как url более не доступен, то приведу код Руслана с небольшим дополнением: товары, добавленные в корзину до входа, добавляются в сохранённую корзину.
switch ($modx->event->name) {
    case 'msOnAddToCart':
    case 'msOnChangeInCart':
    case 'msOnEmptyCart':
    case 'msOnRemoveFromCart':
        if ($user = $modx->getAuthenticatedUser('web') and $ms2 = $modx->getService('minishop2')) {
            $ms2->initialize($modx->context->key);
            $profile = $user->getOne('Profile');
            $extended = $profile->get('extended');
            $extended['ms2cart'] = $ms2->cart->get();
            $profile->set('extended', $extended);
            $profile->save();
        }
        break;
        
    case 'OnWebPageInit':
    case 'OnWebLogin':
        if ( $user = $modx->getAuthenticatedUser('web') and  $ms2 = $modx->getService('minishop2')) {
            $ms2->initialize($modx->context->key);
            $profile = $user->getOne('Profile');
            $extended = $profile->get('extended');
            if ( isset($extended['ms2cart']) && !empty($extended['ms2cart']) ) {
                $mycart = array_merge($extended['ms2cart'], $ms2->cart->get());
                $ms2->cart->set($mycart);
            }
        }
        break;
}
Евгений Ц.
08 августа 2020, 00:14
+1
Спасибо. Я сначала думал, что это из-за моего плагина, ломал голову, как такое происходит, но потом оно появилось там, где плагина не было. Надо будет его отловить и хотя бы в css display: none прописать по возможности.
Евгений Ц.
23 июля 2020, 09:58
0
Да уж, наверное, не стоит допоздна за компом засиживаться :) Спасибо!
Евгений Ц.
23 июля 2020, 02:46
1
0
Костыльный, но всё же вариант — писать рейтинг в TV и потом по этому TV фильтровать. Создаем TV, например product_rating и в файл assets/components/simplerating/action.php после
$simpleRating->save();
вставляем
$res = $modx->getObject('modResource',$id);
$res->setTVValue('product_rating',$ratingNewValue);
Правда при таком варианте в случае обновления компонента код надо будет вставлять заново.
Евгений Ц.
23 июля 2020, 01:56
0
Вместо прямоугольных скобок используйте фигурные:
[[!pdoPage?
                &element=`getImageList`
                &limit=`20`
                &tvname=`our_clients`
                &reverse=`1`
                &tpl=`@CODE:
                <a class="item {{!+idx:is=`1`:then=`index_1`}}" href="[[+slide]]">
                    <img src="[[+slide]]">
                </a>
                `
               ........
               ]]
Евгений Ц.
16 июня 2020, 17:18
1
+1
Столкнулся с аналогичной ситуацией. Проблема была в кэшируемом вызове сниппета. Проверьте наличие восклицательного знака [[!mFilter2…
Евгений Ц.
26 апреля 2020, 17:34
0
Я сделал через TV, плагин на событие msOnCreateOrder
<?php
$products = $msOrder->getMany('Products');
foreach ($products as $item) {
    $product = $item->getOne('Product');
    $product_id = $product->id;
    $product_qty = $item->count;
    $res = $modx->getObject('modResource',$product_id);
    $count = $res->getTVValue('ProductSalesQty');
    $count = $count + $product_qty;
    $res->setTVValue('ProductSalesQty', $count);
}
Евгений Ц.
12 ноября 2019, 01:02
0
В общем, наставил костылей и все заработало. Если кто-то знает, как это по нормальному сделать — напишите.
Евгений Ц.
24 сентября 2019, 14:07
0
Тоже об этом подумал, хотел к 2-м событиям привязать, но восклицательный знак всё же проще.
Евгений Ц.
24 сентября 2019, 13:59
0
Спасибо! Я думал "!" только к сниппетам применим. Я еще одно решение нашёл — привязал плагин к событию OnLoadWebPageCache.