Показать сообщение отдельно
Старый 05.04.2011, 19:36   #10
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Решение:
1. Настраиваем в linkVars нашу переменную R
2. Пишем экст, который добавит в pages поле ignore_region - "не учитывать R для это страницы", потом в BE ставим флаг для нужных страниц.
2. Используя хук encodeSpURL_postProc делаем следующее:
PHP код:
    public function postProcessRealURL($params$pObj) {
        
// if page record has "ignore region" flag
        
if ($params['params']['args']['page']['ignore_region']) {
            
$query_params = array();
            
parse_str($params['params']['LD']['linkVars'], $query_params);
            
// remove first URL segments if not in default region
            
if (intval($query_params['R']) > 0) {
                
$params['URL'] = preg_replace('|/[a-z]+/|''/'$params['URL'], 1);
            }
        }
    } 
Все, готово.
Использование хука позволяет решать исходную задачу несколькими способами.
dmartynenko вне форума   Ответить с цитированием