switch ($modx->event->name) {
case 'OnBeforeDocFormSave':
if ($modx->user->get('id') != $object->get('createdby')) {
$modx->event->output('Ошибка! У вас нет прав редактировать этот документ');
};
break;
}

Эта связка решает маленькую, но в контексте Wayfinder важную задачу: выводит корректно меню и подменю раздельно.

Я потратил два дня на поиски этого решения, пока не нашел на официальном форуме MODx ответ. Хочу поделиться с вами свободным переводом этого решения ( оригинал modxcms.com/forums/index.php?topic=34773.0

[­[*content:showCode]­]


Сниппет showCode:

$output = str_replace(
array('[', ']', '`', '{', '}', '<', '>'),
array('[', ']', '`', '{', '}', '<', '&qt;'),
$input);
return $output;

Задача простая, вводить в TV ресурса цену только розницы, а при сохранении ресурса, в соответствующие TV должны проставляться цены со скидкой. В данном случае поля называются price10, price20 и price30

switch ($modx->event->name) {
//Проверяем событие
    case 'OnDocFormSave':{
       …
$modx->log(modX::

Для того, чтобы создать новый ресурс с помощью кода, нужно использовать процессор resource/create:

$response = $modx->runProcessor('resource/create', $data);
if ($response->isError()) {
    return $modx->error->failure($response->getMessage());
}

$id = $response->response['object']['id'];
return…

Where добавляет условие к выборке

		 Символ		Пример
Равно		 —		$query->where(array('width' => 15));
Не равно	 !=		$query->where(array('width:!=' => 15));
Меньше		 >		$query->where(array('width:>' => 15));
Больше		 <		$query->where(array('width:<' => 15));
больше или равно >=		$query->where(array('width:>=' => 15));
Меньше…