BlobData
BlobData je datový element, který může být obsažený v assetu. Kodér se s ním nejčastěji setká u assetů typu Soubor a Obrázek.
Získání hodnoty typu blob
Assety obsahující blob
Asset typu Soubor a Obrázek zpřístupňují blob jako svou vlastnost data
.
Velikost: {_asset.data.length} B
Předpokládáme, že _asset
je asset typu Soubor (například ve formátovači).
Odkaz na soubor
Pokud identifikátor stránky reprezentuje odkaz na soubor (tedy je typu AK_FILE nebo AK_UNSTABLE), pak zpřístupňuje blob jako svou vlastnost blob
.
Velikost: {target(_asset, "fileLink").blob.length} B
Předpokládáme, že _asset
má odkaz s názvem "fileLink".
Obrázek
Obrázek, tedy typ objektu, který vrací TFS funkce image, obsahuje blob jako vlastnost image
.
{let i := image(_asset, "CLOSEST_WIDTH", 200, -1)}
Velikost souboru s obrázkem: {i.image.length} B
Předpokládáme, že _asset
je zdroj obrázků.
Funkce s blobem na vstupu
Vytvoření odkazu
Blob může být vstupem funkce ref. Pokud je to blob data assetu typu soubor nebo obrázek, vrací funkce ref
stejnou hodnotu, jako bychom ji volali přímo na asset.
Vypsání obsahu blobu
Výhradně pro zpracování blobů je určená funkce blobAsString, která vrací řetězec s obsahem textového blobu. (Dostupná od verze jNetPublish 3.4.1.)
{/* Pokud je skript malý: */}
<script type="text/javascript"><![CDATA[
{blobAsString(_template.jsSomeTinyScript.data) raw}
]]></script>
{/* Pokud je skript velký: */}
<script type="text/javascript"
src="{ref(_template.jsSomeHugeScript)}"></script>
V ostatních případech není definováno, jaká konverze se provede, pokud je vstupem TFS funkce blob.
Výpis blobu
Pro přímý výpis není garantovaný žádný formát výpisu.
Selekce podhodnoty
Blob zpřístupňuje do šablony následující vlastnosti:
- id
- identifikátor blobu (ze stejného oboru jako identifikátory assetů),
- composite
- asset obsahující blob,
- length
- velikost v bytech,
- dataType
- mime type, například „application/pdf“,
- encoding
- pro textové bloby obsahuje označení kódování, pro binární soubory je null,
- filename
- název souboru, například „mydata.pdf“.
Vlastnost composite
se může hodit, pokud je blob výsledkem nějaké složitější kalkulace. Měla by se používat pouze tehdy, pokud víme, že je blob obsahem nějakého assetu.
{let i := image(galleryMotive, "CLOSEST_WIDTH", 200, -1)}
Varianta: {i.composite.parent.name}
Ostatní vlastnosti jsou užitečné při výpisu souborů ke stažení.
<a href="{ref(_asset)}">{_asset.displayName}
({(_asset.data.length + 1023) div 1024} KB)</a>
Mapování
Probíhá stejně jako selekce.
Sekvenční zpracování
Chová se jako prázdná sekvence.
Převod na logickou hodnotu
V podmínce se jakýkoli blob vyhodnotí jako true. Lze tak tedy například testovat, zda asset se souborem skutečně blob obsahuje.
{if _asset.data}
<a href="{ref(_asset)}">stáhnout</a>
{/if}