Процессоры во frontend
Добрый день!
Нравится модель процессор/коннектор, очень удобно с ней работать, но она требует, чтобы пользователь был авторизован в контексте mgr. Можно ли это обойти и использовать процессоры для контекста web?
Добрый день!
Нравится модель процессор/коннектор, очень удобно с ней работать, но она требует, чтобы пользователь был авторизован в контексте mgr. Можно ли это обойти и использовать процессоры для контекста web?
Добрый день. Да, можно.
$_REQUEST['ctx'] = 'web';
if(!isset($location)){
$location = '';
}
@session_cache_limiter('public');
define('MODX_REQP',false);
require_once dirname(dirname(dirname(dirname(dirname(__FILE__))))).'/config.core.php';
require_once MODX_CORE_PATH.'config/'.MODX_CONFIG_KEY.'.inc.php';
require_once MODX_CONNECTORS_PATH.'index.php';
if ($modx->user->hasSessionContext($modx->context->get('key'))) {
$_SERVER['HTTP_MODAUTH'] = $_SESSION["modx.". $modx->context->get('key') .".user.token"];
} else {
$_SESSION["modx." .$modx->context->get('key'). ".user.token"] = 0;
$_SERVER['HTTP_MODAUTH'] = 0;
}
/* handle request */
if(!$path = $modx->getOption('mycomponent.core_path')){
$path = $modx->getOption('core_path').'components/mycomponent/';
}
$path .= 'processors/web/';
$modx->request->handleRequest(array(
'processors_path' => $path,
'location' => $location,
));
И если надо, вызываю его другим коннектором, передавая $location в него.