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

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

Андрей Ятин
Андрей Ятин
Получилось, но как по мне, то не совсем корректно. В сниппете msProducts внёс изменения начиная с 70-ой строки:
if (strpos($scriptProperties['where'],'{') === false) $where[] = $scriptProperties['where'];
else $tmp = $modx->fromJSON($scriptProperties['where']);
//return print_r($where);
if (is_array($tmp)) {
	$where = array_merge($where, $tmp);
}
Единственное что не совсем корректная проверка на JSON, как по мне.
В таком варианте я могу передать параметр where вида:
Data.product_type NOT LIKE 'Рамки' AND Data.product_type NOT LIKE 'Вставки' AND (Data.external_signs LIKE 'пластик кремовый глянцевый' OR Data.external_signs_extra LIKE 'пластик кремовый глянцевый')
И тогда работает.
Андрей Ятин
Андрей Ятин
Василий, и ещё вопрос. Как мне нужно написать параметр where, чтобы в результате в строке запроса получить:
`Data`.`product_type` != 'Рамки' AND `Data`.`product_type` != 'Вставки' AND (`Data`.`external_signs` = 'пластик кремовый глянцевый' OR `Data`.`external_signs_extra` = 'пластик кремовый глянцевый')
Не выходят скобки.
Алексей Карташов
Алексей Карташов
Андрей Ятин
Андрей Ятин
Разобрался. У меня идёт вызов через runSnippet. Может кому пригодится:

$ord = "
            'Выключатели',
            'Розетки электрические',
            'Розетки TV',
            'Розетки телеф/комп',
            'Розетки акустические',
            'Управление жалюзи',
            'Светорегуляторы',
            'Терморегуляторы теплого пола',
            'Датчики движения',
            'Выключатели автоматические',
            'Вывод кабеля',
            'Заглушки'
        ";
    $sortby = "FIELD(Data.product_type,".$ord.")";
Serge Kosykh
Serge Kosykh
Василий, спасибо большое, что откликнулся!

Фронтэндовый контекст — один; классический «web». Но на всякий случай проставил везде по коду его конкретизацию.
APC убрал совсем (он был установлен на сервере).

Если юзер на уровне API аутентифицирован, значит у него есть нужные значения в сесси, вопрос — почему они не удалены?
Согласен; в этом-то и вопрос.
Но глюки пока все равно продолжаются. Выясняю, что же там сейчас не так.
Василий Наумкин
Василий Наумкин
Василий Наумкин
Василий Наумкин
Если контекстов несколько, то в этом могут быть проблемы.
Если нет, то похоже на кэширование сесии php-apc.

Если юзер на уровне API аутентифицирован, значит у него есть нужные значения в сесси, вопрос — почему они не удалены?