Qwarble 11 июля 2013 0 1
Добрый день!
Нравится модель процессор/коннектор, очень удобно с ней работать, но она требует, чтобы пользователь был авторизован в контексте mgr. Можно ли это обойти и использовать процессоры для контекста web?
1 комментарий
Fi1osof1
Fi1osof 11 июля 2013г в 17:52 #
Добрый день.

Да, можно.
1. Можете посмотреть публичный коннектор компонента Gallery (там он наиболее полный).
2. Я использую урезанную версию без лишних проверок, что-то типа этого:
<?php
$_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 в него.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.