Раньше такой проблемы не было, кажется, появилась она с последним (не уверена, что совсем-совсем последним) выходом MODx.
Стандартная функция сниппет login - регистрация пользователя. Зарегистрировался он, мне нужно, чтобы он мог добавить свой ресурс в определенный раздел. Написала сниппет (обычный вызов xpdo):
$new = $modx->newObject("modResource");
$new->set("pagetitle", "asdfa sdfasdf");
$new->set("alias", "asdf");
$new->save();
Ошибка.
Поискала на форуме, нашла вариант, добавила
$new->set("context", "web");
Эффект - такой же.
Увидела (хоть и не совсем на 100% поняла на английском), что это может быть вопрос прав. Создала пользователя через админку, дала ему права - работает. Те же права админа (внесла в группу админов) дала тестовому пользователю, зарегистрированному через сайт - не работает. Где разница между ними (кроме очевидного, что я создавала их разными способами) - не нахожу. Что делать - ума не приложу. Никто с таким не сталкивался?
П. С. На практике и в спешке пришлось залезть в исходники: в /core/model/modx/modresource.class.php функция getAliasPath. В ней workingContext для тестового юзера не возвращает свойства контекста. Временно закоментила все эти вызовы. Но нужно-то сделать нормально. Есть варианты?
П.П.С. Ошибка возникает конкретно в момент save()