Проблемы с событием 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 результатов не принесла.
Алексей П
24 октября 2013, 09:57
modx.pro
1 339
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0