Ersättningsvariabler substitution-variables
Ersättningsvariabler används för att överföra värden från begärande-URL:en till sammansättningsmallar som lagras i bildkataloger. Variabler kan också användas för att förmedla samma värde till olika platser i en komplex begäran.
$ *var*= *value*
Variabeldefinitioner och referenser kan förekomma i frågedelen av begäran, i catalog::Modifier och i catalog::PostModifier.
Variabler definieras enligt ovan, ungefär som andra IS-kommandon. Med radavståndet '$' identifieras kommandot som en variabeldefinition. Variabler måste definieras innan de refereras.
Variabelnamnet var är inte skiftlägeskänsligt och kan bestå av en kombination av ASCII-bokstäver, siffror, -, _ och …
value måste vara URL-kodad med en omgång för säker HTTP-överföring. Dubbel kodning krävs om value överförs på nytt via HTTP. Detta är fallet när value ersätts i en kapslad extern begäran eller i href-attributet för ett SVG <image> -element.Variabelreferenser består av variabelnamnet som avgränsas av inledande och avslutande '$' ($var$). Referenser kan förekomma var som helst i värdedelen av ett IS-kommando (det vill säga mellan '=' efter kommandonamnet och efterföljande '&' eller slutet av begäran). Det går inte att använda anpassade variabler för kommandona layer= och effect=. Flera variabler tillåts i samma kommandovärde. Servern ersätter varje förekomst av $ *var*$ med value.
Variabelreferenser får inte kapslas. Förekomster av $ *var*$ i value ersätts inte.
Exempelvis begärandefragmentet:
$var2=apple&$var1=my$var2$tree&text=$var1$
matchar:
text=my$var2$tree
src=my$image$file.tif är till exempel ett giltigt kommando (förutsatt att det finns en katalogpost eller bildfil med namnet my$image$file.tif), medan wid=$number$ inte är det, eftersom wid kräver ett numeriskt argument.Variabel bearbetning i kapslade begäranden section-26d63adc446c4fa0808e11e8082abdfa
$ *var*$ -referenser kan förekomma var som helst inom klammerparenteserna för en kapslad Image Serving- eller Image Rendering-begäran, inklusive till vänster om ? avgränsar sökvägen från frågan. Servern ersätter dessa referenser med värden (antingen från url eller från catalog::Modifier i huvudbildkatalogen) innan den kapslade begäran analyseras och bearbetas ytterligare.
Dessutom vidarebefordras alla $ *var*= -definitioner från URL:en eller catalog::Modifier till alla kapslade förfrågningar om bildservering och bildåtergivning. Detta garanterar att alla variabeldefinitioner är tillgängliga för alla mallar, oavsett kapslingsnivå.
Oavsett kapslingsnivån måste bara HTTP-kodning i en enda omgång användas för variabelvärden som ska ersättas var som helst i kapslade begäranden om bildåtergivning eller bildservning eller deras associerade catalog::Modifier-strängar.
Variabel bearbetning i inbäddade externa begäranden section-314e39a9aefb46faa737fd137897d1b0
$ *var*$ -referenser som förekommer var som helst inom klammerparenteserna för en inbäddad extern begäran ersätts med matchande variabeldefinitionsvärden. Detta gör att inbäddade externa begäranden kan placeras i en mall i en bildkatalog.
Variabelvärden som ska ersättas i externa begäranden måste vanligtvis dubbelkodas, eftersom ingen omkodning används innan servern försöker överföra den slutliga externa URL:en.
Variabel bearbetning i SVG-filer section-a8359f9909764142b6a18ae778dca913
$ *var*$ -referenser kan förekomma i SVG-filer i attributvärden och i <text> -strängar. Image Serving ersätter dessa med de matchande $ *var*=-definitionerna som är kända vid den begärankapslingsnivå där SVG-filen anges.
href-attributvärde måste vara dubbla URL-kodade. Alla andra måste vara enskilt kodade.Fördefinierad sökvägsvariabel section-930d0dd12e8f49499becc9fe8df24092
object som anges i begärandesökvägen tilldelas den fördefinierade variabeln *$object*. $ *object*$ kan placeras var som helst i begäran, i mallen som begäran refererar till eller i en kapslad/inbäddad begäran där ett sådant objekt tillåts, inklusive värdet för src= och mask= samt sökvägen för en kapslad/inbäddad begäran.
Följande begäran återanvänder till exempel den bild som anges i sökvägen som källa för ett lager i en kapslad begäran:
/is/image/a/b?…&layer=3&src=is{…&src=$object$}&…
Detta motsvarar
/is/image/a/b?…&layer=3&src=is{…&src=a/b}&…
Definitionen av *$object* kan åsidosättas genom att explicit ange $ *object*= med önskat värde.
Den fördefinierade sökvägsvariabeln används vanligtvis i samband med template=.
Standard section-b02483d15529444586a2e9504805b155
Ingen. Endast variabler som har definierats ersätts av servern (förutom den fördefinierade sökvägsvariabeln $object, som alltid ersätts). Alla förekomster av $ *var*$ förblir literala om *var* inte kan matchas med en befintlig variabeldefinition.
Exempel section-fba9393df6984247b7e30b3f93992e86
Se Exempel A i Mallar.