Odkaz na jednoduchý soubor
Nejjednoduší typ obsahu odkazovaného z webové stránky je statický soubor, který sám žádné webové adresy neobsahuje.
V takovém případě není potřeba řešit integritu referencí na další obsah a soubor může být uložený v CMS staticky, jako obsah assetu Soubor.
Způsob odkazování na takový soubor můžeme demonstrovat na připojení tiskového stylu k prezentaci.
Soubor se stylem
Soubor se stylem je nejprve potřeba přenést do systému jNetPublish: Je třeba vytvořit asset typu Soubor (zvolte textovou obsahovou variantu) a do něj obsah vložit. Pro systém je zcela lhostejné kde ve struktuře složek bude soubor uložený; je ale žádoucí umístit ho tak, aby nebyl přístupný pro správce obsahu a publikované struktury prezentace; obyčejně se umisťuje do některé z podsložek složky logic
.
Odkaz na soubor
V HTML dokumentu, který zobrazujeme – tedy vlastně v hlavní šabloně prezentace – je obsažený následující fragment odkazující styl:
<link href="styles/print.css"
type="text/css" media="print" rel="stylesheet" />
Hodnotu atributu href
je zde třeba nahradit kódem, který bude automaticky generovat URL aktuální verze souboru.
Konstrukce odkazu v TFS šabloně
Pro TFS kód šablony je třeba nějakým způsobem zpřístupnit vytvořený asset se souborem. Nejběžnější technikou je využití proměnné _template. Hodnotou této proměnné je asset s aktuální šablonou. Šablona, stejně jako každý jiný asset, může mít přidané libovolné vlastnosti a přes proměnnou _template lze k těmto vlastnostem přistupovat. Postup je tedy následující:
- Je třeba vytvořit vlastnost hlavní šablony; půjde o vlastnost typu "reference na asset"; název je zcela libovolný; pro přehlednost volíme název
print_css
. Cílem reference je vytvořený Soubor. - V šabloně samotné je od tohoto okamžiku možné přistupovat k souboru konstruktem
_template.print_css
(a obecně lze přistupovat k hodnotě jakékoli vlastnosti:_template.název_vlastnosti
).
K sestavení URL aktuální verze souboru slouží TFS funkce ref. Výsledná podoba kódu tedy bude:
<link href="{ref(_template.print_css)}"
type="text/css" media="print" rel="stylesheet" />
Oddělení definice odkazu
Sestavování odkazu v šabloně má zcela obecně své nevýhody: pokud bychom například chtěli začít generovat odkaz na soubor dynamicky, bylo by nutné změnit jak vlastnosti šablony, tak TFS kód v samotné šabloně.
Lepší praxí je využít další možnosti systému jNetPublish: každý asset může mít definované připojené odkazy. Zatímco vlastnost je jednoduchá hodnota (řetězec nebo reference na asset), odkaz je struktura obsahující všechny informace, které systém potřebuje k tomu, aby mohl sestavit URL.
V našem případě můžeme vytvořit odkaz pojmenovaný print_css
; půjde o podtyp odkazu "soubor" a odkazovaný asset bude opět asset se souborem vytvořený na začátku.
V TFS kódu šablony je možné k odkazům libovolného assetu (tedy i assetu, který je hodnotou proměnné _template
– aktuální šablony) pomocí funkce target. Argumenty funkce jsou (1) asset a (2) zvolený název odkazu.
Upravený TFS kód bude následující:
<link href="{target(_template, "print_css")}"
type="text/css" media="print" rel="stylesheet" />