Проблемы с событием OnHandleRequest
Суть в том, что при запросе к определенной странице параметры передаются в таком виде
мойсайт/cities/azerbaijan
вместо такогомойсайт/cities?&country=azerbaijan
Т.е. плагин перехватывает запрос и если в адресе есть раздел cities, то разбивает урл на параметры.
Вот код плагина
<?php
if($modx->event->name == 'OnHandleRequest'){
$method = $modx->request->getResourceMethod();
if ($method == 'alias') {
$resourceIdentifier = $modx->request->getResourceIdentifier($method);
$rAlias = $modx->getOption('request_param_alias', null, 'q');
$params = array('cities'=>'country');
foreach($params as $val => $country){
$matches = null;
if (preg_match("/^(".$val.")\/(.+)/", $resourceIdentifier, $matches)){
$q = $matches[1]; $u = $matches[2];
$_GET[$rAlias] = $q;
$_REQUEST[$rAlias] = $q;
if (isset($u) && $u != ''){
$_GET[$country] = $u;
$_REQUEST[$country] = $u;
}
else {
$modx->log(modX::LOG_LEVEL_ERROR,'Variable "u" is empty');
}
return;
}
else {
$modx->log(modX::LOG_LEVEL_ERROR,'Mathes is empty, resourceid is '.$resourceIdentifier.', method is'.$method );
}
}
}
else {
$modx->log(modX::LOG_LEVEL_ERROR,'Method is '.$method);
}
}
return;
Проблема в том, что это все прекрасно работает, когда я авторизован как админ. Он перенаправляет на страницу cities и передает ей нужные параметры. Но когда я выхожу из админки, то плагин не работает, выдает ошибку 404.Расставив логирование ошибок выяснил, что почему-то при выходе из админки методы $modx->request->getResourceMethod() и $modx->request->getResourceIdentifier() отдают пустой результат.
Замена этих методов на переменные $modx->resourceMethod и $modx->resourceIdentifier результатов не принесла.