Решение:
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);
}
}
}
Все, готово.
Использование хука позволяет решать исходную задачу несколькими способами.