české znaky v url a problém s VisualPaginator
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- taypan
- Člen | 11
Dobrý den,
snažím se udělat přesměrování z vyhledávacího formuláře na presenter, který požadavek zpracuje:
$presenter->redirect(":SearchFrontend:Default:default", array('needle' => $needle));
V proměnné $needle
je hledaný řeťezec, který obsahu
české znaky, mezery a pod.
Pod Apachem, není problém. Ten nastane až na IIS 7.5, který si s českými
znaky neporadí (norma non-ascii znaky v url, pokud se nepletu, dokonce
zakazuje).
Napadlo mě zakódovat $needle
pomocí urlencode()
,
což pomůže, dokud se do toho nevloží VisualPaginator, který v šabloně
volá něco jako:
<a href="{link this, 'page' => $paginator->page + 1}">Další »</a>
což zakódovaný řetězec přeloží opět na verzi nezakódovanou.
Nenapadá vás jak to vyřešit?
Předem děkuji za rady.
- taypan
- Člen | 11
HosipLan napsal(a):
To snad dělá router automaticky, ne? Nepřepisuješ tam
FILTER_OUT
?
Pokud vím, tak ne (píše to víc lidí).
Routa vypadá takto:
$router[] = new \Nette\Application\Routers\Route($prefix.'<needle>/<paginator-page>', array(
'module' => 'SearchFrontend',
'presenter' => 'Default',
'action' => 'default',
'needle' => '',
'paginator-page' => 1
)
);