Evgeny Epifanov

Evgeny Epifanov

С нами с 17 июня 2013; Место в рейтинге пользователей: #202

Фильтрация в msProducts по пользовательским опциям

Сейчас вывод такой:
{$_modx->runSnippet('!msProducts', [
    'parents' => $gparent,
    'tpl' => 'tpl.Category.Product',
    'includeThumbs' => 'jpg500',
    'limit' => 0,
    'sortby' => 'pagetitle',
    'sortdir' => 'ASC',
    'where' => [
        'Data.price:>' => $min_price,
        'Data.price:<' => $max_price
    ],
])}
Нужно бы еще фильтровать по пользовательским опциям, типа «похожие товары».
Вроде как, для этого есть optionFilters, но что-то никак не пойму какой там синтаксис.
Кто знает, подскажите, пожалуйста.
Evgeny Epifanov
09 апреля 2024, 22:10
modx.pro
111
0

Фильтрация по списку с автодополненинем

Заметил своеобразное поведение при фильтрации через mFilter2.
Если у товара несколько опций (например: опция1, опция2), то фильтрация происходит по принципу «или». Т.е. в фильтре выводится чекбокс с именем «опция1, опция2», но при выборе его, выводятся все товары, у которых есть хотя бы одна из этих опций. А нужно, чтобы выводились товары, у которых указаны обе опции.
Можно ли сделать это штатными средствами? Или подскажите, в какую сторону думать. Спасибо.
Evgeny Epifanov
10 марта 2024, 19:30
modx.pro
377
0

Фильтрация по опциям в msProducts

Прошу помощи.
Нужно вывести список товаров, у которых пользовательская опция соответствует таковой же у текущего ресурса. Через msProducts делаю так:
'where' => [
    'Data.price:>=' => $_modx->resource.price * 0.85,
    'Data.price:<=' => $_modx->resource.price * 1.15,
    'Data.device_type:=' => $_modx->resource.device_type[0]
]
Но не выводит вообще ничего. Ошибка
Could not process query, error #1054: Unknown column 'Data.device_type' in 'where clause'
Сама опция «device_type» — список с автодополнением.
Evgeny Epifanov
20 апреля 2019, 23:33
modx.pro
1
825
0

Как вывести опцию товара в плейсхолдере

Уже всю голову сломал…
Есть дополнительная опция товара «device_type». Хочу привязать ее к списку сравнения. Добавление к сравнению нужно вывести и в карточке товара и в категории. Проблемы возникли именно в категории.
[[+device_type.value]]
все отлично выводит, но не работает тут:
[[!AddComparison?
	&id=`[[+id]]`
	&tpl=`Comparison.add`
	&list=`[[+device_type.value]]`
	&list_id=`14`
]]

{$device_type.value}
//или
{$_pls['device_type.value']}
вообще ничего не выводят.
Подскажите, как можно реализовать этот функционал? Желательно на fenom, хочу все на нем переписать.
Evgeny Epifanov
02 июня 2018, 20:35
modx.pro
1 047
0

Вложенный файл при оформлении заказа

Нужно, чтобы при выборе оплаты по безналу, посетитель мог вложить файл с реквизитами, который будет отправлен менеджеру по почте.
Я так понимаю, для этого нужно расширить класс.
Подскажите какой?
Evgeny Epifanov
01 июня 2018, 11:10
modx.pro
655
0

Не могу вывести куки через fenom

Собственно:
ни
{$.cookie.driver_id}
ни
{$.cookie[driver_id]}
Ничего не выводят.
Evgeny Epifanov
01 апреля 2018, 13:28
modx.pro
1 369
0

Вывод групп пользователя

Кто знает, подскажите, как вывести названия групп, в которых состоит пользователь? Желательно через fenom.
Evgeny Epifanov
25 марта 2018, 16:06
modx.pro
2 145
0

Изменение системных настроек

Здравствуйте, друзья.
Нужно через форму изменять системную настройку с типом поля «Да/Нет»
Кусок формы:
<select name="plist_reverse_default" id="plist_reverse_default" class="custom-select custom-select-sm">
    <option value="0" {if $_modx->config.plist_reverse_default == 0}selected{/if}>Нет</option>
    <option value="1" {if $_modx->config.plist_reverse_default == 1}selected{/if}>Да</option>
</select>
Трудность в том, что при выборе «Да», настройка меняется, но при выборе «Нет» ничего не происходит. Подскажите, что я не так делаю.
Данные сохраняю так:
$settings = array(
        //Тут другие настройки
        'plist_reverse_default' => $plist_reverse_default
    ); 
    foreach($settings as $key => $value) {
        if ($value) {
            $setting = $modx->getObject('modSystemSetting', $key);
            $setting->set('value', $value);
            $setting->save();
        }
    }
Evgeny Epifanov
17 марта 2018, 22:28
modx.pro
1 557
0

Изменить пользовательское поле MS2 из сниппета

Друзья.
Есть пользовательское поле ms2, назовем его «user-pole».
Как изменить его значение через сниппет?
Конструкция типа:
$res = $modx->getObject('msProduct', $resID);
$res->set('user-pole', date('Y-m-d'));
$res->save();
не работает.
Evgeny Epifanov
19 декабря 2017, 20:33
modx.pro
1 089
0

Сломал сайт. Ошибка 500

Выручайте.
Обновил pdoTools и MS2 до последних версий. Теперь сайт умер. Не могу ни в админку попасть, ни куда. Везде «500 Internal Server Error». В логах вот это:
[2017-07-02 00:41:07] (ERROR @ /var/www/site/www/core/xpdo/xpdo.class.php : 643) Could not load class: pdoFetch from pdofetch.
[2017-07-02 00:41:07] (ERROR @ /var/www/site/www/core/xpdo/xpdo.class.php : 1245) Problem getting service pdoFetch, instance of class pdoFetch, from path
Гуглил — не помогло.
Evgeny Epifanov
01 июля 2017, 21:47
modx.pro
3 725
0