koozoo

koozoo

Был в сети 18 декабря 2018, 00:21
Заказы не принимаю
А, нет, не решилось, pdoResources ведь ищет по значениям базы, а не Output. Пока идея только написать плагин, который бы при сохранении документа переписывал значения в нужном формате в отдельный TV и использовать его.
Решилось добавлением кастомного TV Output с примерно следующим кодом:

$multiples = explode("||", $value);

foreach ($multiples as $multiple) {
    $o .= 'u' . $multiple . 'u';
}

return $o;
Он добавляет 'u' в начало и в конец значения, поэтому можно вызывать через %u____u%
Спасибо за ответ. Объясню своим кодом:

$profile = $modx->user->getOne('Profile');
$uid = $profile->get('id'); // = 21

$resources = 
	$modx->runSnippet('pdoResources',array(
		'includeTVs'=>'OwnedBy', // = 21,22,23,24
		'processTVs'=>'1',
		'tvFilters'=>'OwnedBy==' . $uid, // вот эту строчку надо заменить
		'tpl'=>'@INLINE {{+id}}'',
                'outputSeparator'=>','));

$resources должен быть списком разрешённых ресурсов или тех ресурсов (если не брать мой пример), в котором в множественном списке TV OwnedBy один из вариантов был бы $uid.

Я пытаюсь сообразить можно ли сделать как-то конструкцию по типу where, превратить вашу строчку

&where=`{
        "color:IN": ["синий","желтый"]
    }`
во что-то грубо говоря типа
&where=`{
        "$uid:IN": [OwnedBy]
    }`
Неважно ведь Users там или Colors. Ну, будут цвета blue и darkblue, а я хочу отфильтровать blue, а не получится, потому что tv выведет blue,darkblue. А если добавлять %blue%, то может быть цвет blueblue, что тоже не является корректным. Юзеров я привёл для наглядности. Вопрос в том как отфильтровать ресурсы, у которых есть точное значение в массиве, то есть списке с использованием delimiter.
Не особо поможет кейсу, но тогда вопрос будет другой. Можно ли как-то по-другому вызвать

$modx->user->isMember('Ololo')

Чтобы он всегда показывал актуальную информацию, а не ждать, пока пользователь выйдет?

Условно, пользователь видет в личном кабинете определённую инфу, пока находится в определённой группе. Удаление его из группы должно лишить возможность видеть эту инфу, но сейчас пока пользователь не выйдет из системы, его нахождение в группе для MODX так и остаётся без изменений.