Помогите с runSnippet через custom connector
Добрый вечер.
Проблема состоит в том что не как не получается запустить сниппет через runSnippet, все время получаю 505-ю. Хотя все остальное работает.
Пример файла коннектора к которому идет обращение:
А вот пример процессора для обработки
Разницы какой сниппет пытаться запустить нет, всегда выдается 505-я.
Может вы что посоветуете?
Проблема состоит в том что не как не получается запустить сниппет через runSnippet, все время получаю 505-ю. Хотя все остальное работает.
Пример файла коннектора к которому идет обращение:
if ($_REQUEST['action'] == 'web/mainswitch') {
@session_cache_limiter('public');
define('MODX_REQP',false); //отключаем проверку прав пользователя для нашего коннектора
}
require_once 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'; //подключаем необходимые файлы
//require_once MODX_CORE_PATH.'model/modx/modx.class.php';
//$modx = new modX();
$useradditsCorePath = $modx->getOption('core_path').'components/siterequest/';
if ($_REQUEST['action'] == 'web/mainswitch') {
$version = $modx->getVersionData();
if (version_compare($version['full_version'],'2.1.1-pl') >= 0) {
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;
}
} else {
$_SERVER['HTTP_MODAUTH'] = $modx->site_id;
}
$_REQUEST['HTTP_MODAUTH'] = $_SERVER['HTTP_MODAUTH'];
}
$_REQUEST['ctx'] = 'web';
$path = $useradditsCorePath.'processors/';
$modx->request->handleRequest(array(
'processors_path' => $path,
'location' => '',
));
А вот пример процессора для обработки
$key = $_REQUEST['key'];
switch ($key) {
case 'new':
$outer = $modx->runSnippet('getProducts', array(
'parents' => 9,
'depth' => 4,
'limit' => 6,
'sortby' => 'publishedon',
'sortdir' => 'DESC',
'includeTVs' => 1,
'where' => '{"template":4,"hidemenu":0}',
'includeTVList' => 'img,price,old_price',
'tpl' => 'itemTpl',
'tvFilters' => '{"new":1}'
));
break;
case 'pop':
$outer = $modx->runSnippet('getProducts', array(
'parents' => 9,
'depth' => 4,
'limit' => 6,
'sortby' => 'publishedon',
'sortdir' => 'DESC',
'includeTVs' => 1,
'where' => '{"template":4,"hidemenu":0}',
'includeTVList' => 'img,price,old_price',
'tpl' => 'itemTpl',
'tvFilters' => '{"pop":1}'
));
break;
case 'sale':
$outer = $modx->runSnippet('getProducts', array(
'parents' => 9,
'depth' => 4,
'limit' => 6,
'sortby' => 'publishedon',
'sortdir' => 'DESC',
'includeTVs' => 1,
'where' => '{"template":4,"hidemenu":0}',
'includeTVList' => 'img,price,old_price',
'tpl' => 'itemTpl',
'tvFilters' => '{"sale":1}'
));
break;
}
return $outer;
Разницы какой сниппет пытаться запустить нет, всегда выдается 505-я.
Может вы что посоветуете?
Комментарии: 2
1. Пожалуйста, отредактируйте свой вопрос, используя тег <cut/>.
2. Вам должна помочь вот эта заметка и ее более продвинутый вариант.
Обратите внимание на логин через процессор во второй заметке. Это гораздо лучше чем ваши манипуляции с сессией.
2. Вам должна помочь вот эта заметка и ее более продвинутый вариант.
Обратите внимание на логин через процессор во второй заметке. Это гораздо лучше чем ваши манипуляции с сессией.
Спасибо, буду разбираться.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.