Делаю интеграцию MODx Revo 2.2.2 и движка Livestreet 0.4.1, принцип взаимодействия с пользователями взял из этого поста:
community.modx-cms.ru/blog/dev/1255.html, но он в полной мере не подходит для текущих версий движков.
MODx установлен в корне, а Livestreet во вложенной папке (/blogs/).
Поэтому пришлось изобретать своё решение. В итоге дошел до такого: в классе Livestreet /classes/modules/user/User.class.php в функции Authorization после
if ($bRemember) {
setcookie('key',$sKey,time()+60*60*24*3,Config::Get('sys.cookie.path'),Config::Get('sys.cookie.host'));
}
дописал:
require_once $_SERVER['DOCUMENT_ROOT'].'/config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService('error','error.modError');
$data = array(
'username' => $_POST['login']
,'password' => $_POST['password']
,'rememberme' => false
,'login_context' => 'web'
,'add_contexts' => 'web'
);
$response = $modx->runProcessor('security/login', $data);
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, 'login error. Username: '.$_POST['login'].', Message: '.$response->getMessage());
}
НО, пользователь так и не проходит авторизацию на сайте(в базе MODx пользователь присутствует с таким же паролем, через стандартные средства MODx проходит авторизацию).
Копирую этот код в отдельный файл, и всё получается, пользователь авторизацию проходит.
В чём может быть проблема? Прошу помощи.