Jeg har for at gøre min blog mere brugbar i fremtiden, lavet en
hurtig galleri macro som kan bruges inline i richtext editoren.
Der er ikke noget hemmligt i det blot en hurtig snippet kode du
kan smide i en macro og gøre den brugbar i din editor. Ved du ikke
hvordan ? Så går jeg det hurtigt igennem med dig.
Step.1 - lav en macro
Macroer er i umbraco "små" byggeklodser som vi kan anvende ud
igennem vores løsning.
Du finder dem under developer -> Macros.
Når den er oprettet skal vi have oprettet en parameter hvor vi
kan vælge en folder(eller et billede) fra mediearkivet. Dette gør
vi oppe i tab'en parameter. Her skal du stikke din parameter et
navn og et alias. Aliaset er det vi kalder selve parameteren på
senere i vores razor kode. Herudover skal du også vælge en
parameter type, her kan du bruge "media current", som egentlig er
en media picker hvor vi for mulighed for at vælge en medie
mode(folder/billede/andet).
Husk at du skal sætte flueben i "Use in editor"(nede i bunden af
af macro menuen), så kan vi efterfølgende bruge den ude fra vores
editor.
Step.2 - Flæk noget raz0r sammen
Nu skal vi ha' oprettet et hurtigt razor script som kan håndtere
at vi har valgt en medie node. Jeg vil ikke kommentere koden da den
er så kort og meget selv forklarende.
Eneste relevante at fortælle er at
"nodeSelector" er mit alias for macro
parameteren.
@{
var chosenMedia =
Model.MediaById(@Parameter.nodeSelector);
if (chosenMedia.NodeTypeAlias
== "Folder")
{
foreach (var
img in chosenMedia.Children)
{
if
(img.NodeTypeAlias == "Image")
{
<img src="@img.umbracoFile"/>
}
}
}
}
Så er du bare klar til at vise alle dine fede ferie billder, her
nedenfor kan du se hvordan jeg hurtigt har pakket den ind i en
omgang fancybox galleri.
PS: hvis du render din "bodytext"(indholdet fra din
wysiwag editor) igennem en macro betyder det jo egentlig at du
prøver at render en macro i en macro?!(inception anyone?). for at
løse dette så tag et kig på denne post fra
communitiet. pst. hemmeligheden er
"RenderMacroContent"