linkTail

Funkce, která umožňuje modifikovat parametry a kotvu vygenerovaného odkazu.

PageIdentification linkTail (
    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.

Příklad: Odkaz na aktuální stránku včetně parametrů
Vstup
{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.)

Přepsání parametrů url pomocí funkce linkTail().

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.

Pro vložení příspěvku do diskuse se přihlašte.