link

Generuje objekt reprezentující URL odkazu.

Funkce generuje různé reprezentace URL podle toho, jestli se volá v editačním, nebo v publikačním rozhraní systému jNetPublish:

  • Ve editačním rozhraní je to objekt Address.
  • Ve veřejném rozhraní je to běžná PageIdentification.
PageIdentification link ( 
  [ SectionData primary , ]
  [ Asset main , ]
  [ PageletData pagelet [ ,
    String action ] ] [ ,
    String format [ ,
    String language ] ]
)
primary
Odkazovaná sekce.
main
Hlavní obsahový asset odkazované stránky; typicky článek.
pagelet
Volaný pagelet.
action
Akce (webová metoda) volaného pageletu.
format
Výstupní formát cíle odkazu.
language
Jazyk cíle odkazu.

Motivace

Funkce slouží k sestavení identifikace stránky, na kterou má vést odkaz, přímo v šabloně, z jednotlivých prvků vytvářené struktury. Je tedy v jistém smyslu komplementem k funkci target, která jen zpřístupňuje odkaz, který už existuje jako součást assetového obsahu.

Volitelné parametry, výchozí hodnoty

Prakticky všechny parametry funkce jsou volitelné.

Nejdůležitější je v praxi možnost volat funkci tak, že není uvedená hodnota primary, ale je uvedený asset main ("článek"). V takovém případě se může uplatnit jedna nebo několik strategií pro dohledání primární sekce k hlavnímu assetu:

  • uplatnění pravidel definovaných v relevantní konfiguraci náhledu;
  • pokud je rodičem assetu main sekce nebo asset odvozeného typu, použije se tato sekce jako primary.

V daném projektu se může použít jedna nebo obě uvedené strategie v libovolném pořadí; je také možné relativně snadno přidávat další strategie.

Příklad: Odkaz na pagelet z jeho šablony
Šablona pageletu
<form method="post" action="{link(_me,"save")}">
  ...
</form>

Funkce link generuje odkaz na aktuálně vypisovaný pagelet (to je hodnota proměnné _me); při tom se volá jeho webová metoda "save".

Toto je nejběžnější způsob vytvoření odkazu na pagelet v jeho šabloně.

Příklad: Odkaz na styl ze šablony
Sestavení odkazu v šabloně
<link rel="stylesheet" type="text/css" media="screen"
  href="{link(_template.secCss, _template.screen, "css", "none")}" />
Použití odkazu šablony
<link rel="stylesheet" type="text/css" media="screen"
  href="{target(_template, "cssScreen")}" />

Odkaz na styl je možné vytvořit dvěma způsoby:

  • buď ho sestavit z několika referencí na assety (připojených k šabloně jako její vlastnosti) pomocí funkce link,
  • nebo u šablony definovat celý odkaz najednou (viz popis ortogonálních odkazů) a jen ho načíst pomocí funkce target.

Druhá možnost je poněkud flexibilnější – umožňuje měnit cíl odkazu i samotný typ odkazu, aniž by bylo nutné zasahovat přímo do kódu šablony.

Další práce s odkazem, další možnosti

Funkce typicky vrací objekt PageIdentification, který je možné snadno hned vypsat, ale jinak je práce s ním ne zcela triviální. Viz příslušnou dokumentaci.

Funkce umožňuje vytvářet jen odkazy v rámci jedné prezentace a na dané úrovni zabezpečení. Tato omezení nemá funkce xlink.

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