Pole typu <ImgCollection>
je kolekcí polí typu <Img>
. Pole typu <ImgCollection>
umožňuje v administraci nahrát více obrázků najednou. Pořadí jednotlivých obrázků v kolekci lze v administraci měnit pomocí drag-and-drop. V .aspx se pole typu <ImgCollection>
vypíše pomocí <je:img>
vloženého do <je:repeater>
. Ve všem ostatním se shoduje s polem typu <Img>
, kde je uveden podrobnější popis.
<ImgCollection name="photo"> <Size name="original" /> <Size name="fullHD" /> <Size name="thumb" /> </ImgCollection>
Příklady
Mějme v Site.config proměnnou page
následujícího typu:
... <Vars> <Var name="pageWithGallery" type="PageWithGallery" /> </Vars> <Types> <Type name="PageWithGallery"> <ImgCollection name="gallery"> <Size name="original" /> <Size name="fullHD" width="1920" height="1080" /> <Size name="thumb" width="320" height="200" /> </ImgCollection> </Type> </Types> ...
Kolekce gallery
obsahuje prvky typu <Img>
a pracuje se s ní podobně jako s jakoukoliv jinou kolekcí. Prvky kolekce jsou přístupné pod proměnnou .item
. Výpis galerie formou náhledů s odkazem na velikost fullHD
by tedy vypadal takto:
<je:repeater runat="server" source="pageWithGallery.gallery"> <item> <je:imgLink runat="server" field=".item" size="fullHD"> <je:img runat="server" field=".item" size="thumb" /> </je:imgLink> </item> </je:repeater>
Řešení klasickou kolekcí
Podobného výsledku bychom mohli dosáhnout i deklarací obyčejné kolekce obsahující prvky vlastního typu GalleryItem
:
<Type name="PageWithGallery"> <Collection name="img" itemType="GalleryItem" itemFormatType="img" itemFormat="{img}" allowBulkAdd="true" defaultOrder="custom" /> </Type> <Type name="ImgItem"> <Img name="item"> <Size name="original" /> <Size name="fullHD" width="1920" height="1080" /> <Size name="thumb" width="320" height="200" /> </Img> </Type>
Atributy itemFormatType
, itemFormat
a allowBulkAdd
zařídí, že se kolekce zobrazí jako galerie náhledů, včetně možnosti nahrání více obrázků najednou. Více viz Collection. Atribut defaultOrder="custom"
pak umožňuje řazení obrázků v administraci pomocí drag-and-drop.
Výhodou tohoto přístupu je, že typ ImgItem
lze kdykoliv rozšířit o libovolná pole, např. textový popis obrázku.