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.

Příklad: Zjištění velikosti souboru v assetu
Vstup
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.

Příklad: Zjištění velikosti souboru v dětském odkazu
Vstup
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.

Příklad: Zjištění velikosti souboru v obrázku
Vstup
{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.)

Příklad: Vypsání blobu do výstupu
Vstup
{/* 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.

Příklad: Získání názvu varianty motivu galerie vybrané pomocí imageFitStrategy:
Vstup
{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í.

Příklad: Výpis velikosti souboru
Vstup
<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.

Příklad: Test existence blobu
Vstup
{if _asset.data}
  <a href="{ref(_asset)}">stáhnout</a>
{/if}
Pro vložení příspěvku do diskuse se přihlašte.