linkTail
Funkce, která umožňuje modifikovat parametry a kotvu vygenerovaného odkazu.
PageIdentificationlinkTail
(
PageIdentification lnk,
( Map | String ) params [,
String anchor [,
( Boolean | List<String> ) overwrite ] ])
- lnk
- Výchozí adresa. Tato už může obsahovat vlastní parametry nebo kotvu.
- params
- Parametry; zadané buď jako mapa, nebo jako řetězec – viz dále.
- anchor
- Kotva, pokud má být součástí odkazu.
- overwrite
- Určuje, jak zacházet s existujícími parametry a kotvou. Hodnota
true
znamená, že budou všechny parametry i kotva odstraněny. Od verze 3.5 systému jNetPublish je možné zadat pole názvů parametrů, které se mají odstranit, ostatní budou zachovány.
Vrací nový odkaz, který k existujícím parametrům přidá nové. Pokud je zadána kotva, změní i tu. Je-li zadán parametr overwrite s hodnotou true, odstraní se předtím existující parametry i kotva.
Parametry jako řetězec
Řetězec musí být stejného tvaru, jako potom v URL. Speciální znaky musejí být zakódované pro URL (tzn. sekvencemi ve tvaru "%XX"). Znak "&" nemá být nahrazen HTML entitou.
Použití této možnosti se může stát zdrojem komplikací, protože správný tvar řetězce závisí na tom, jaké má být kódování výsledné URL. Je tedy bezpečné jedině pro ASCII hodnoty parametrů nebo v případě, kdy se použije řetězec, jehož správné kódování je zaručeno odjinud.
{linkTail(_pageId, _request.queryString)}
Jsou tu pochopitelně jen parametry obsažené v URL. Pro požadavky metodou POST to typicky nebudou všechny parametry.
Mapa parametrů
Předpokládá se, že na vstupu bude mapa, jejíž klíče jsou řetězce. Pokud jsou v mapě jednoduché (neiterovatelné) hodnoty, převádějí se také na řetězec.
Jestliže je hodnotou v zadané mapě pole nebo jiný iterovatelný objekt, měl by se přidat takový parametr vícenásobně. Toto reálně platí pro seznamy sestrojené pomocí funkce asList; nikoli pro objekty typu ListMap. (Testováno ve verzi 3.6.1.)
Pokud je hodnotou prázdné pole, je chování obecně nedefinováno. (V současné verzi to způsobí přidání parametru s prázdnou hodnotou, v budoucnu se však může implementace změnit a příslušný parametr úplně vynechat.)
Pokud se má odkaz s přidanými parametry hned vypsat, je použití funkce linkTail
zbytečné. Parametry lze přidat jako parametry příkazu vypsání hodnoty. Použití funkce linkTail
má smysl jen v případě, že je potřeba s odkazem ještě dále manipulovat: převést na řetězec apod.