Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Зря Вы упоминаете в статье xPDO, т.к. вы его не используете.
xPDOCriteria() можно заменить на $this->modx->prepare() + bindValue()
$sql="SELETCT * FROM ... WHERE a=:a AND b=:b";
if($result=$modx->prepare($sql)->execute([":a"=>1,":b"=>2])->fetch(PDO::FETCH_ASSOC))//и чтобы при неудавшемся создании
{//какого-то объекта просто возвращалось false, а не исключение/ошибка
...//работа с бд
}
...
/**
* This is the MODX gateway class.
*
* It can be used to interact with the MODX framework and serves as a front
* controller for handling requests to the virtual resources managed by the MODX
* Content Management Framework.
*
* @package modx
*/
class modX extends xPDO {
/**
...
$modx->sendRedirect($modx->makeUrl(14));//отправляем его на страницу номер 14, именно там у нас вход в систему.
$modx->sendUnauthorizedPage(); 
Система доступа к документам для MODX