Substitutionsvariablen substitution-variables
Substitutionsvariablen werden verwendet, um Werte von der Anfrage-URL zu in Bildkatalogen gespeicherten Compositing-Vorlagen zu übertragen. Variablen können auch verwendet werden, um denselben Wert an verschiedene Stellen in einer komplexen Anfrage zu übermitteln.
$ *
var*= *
value*
Variablendefinitionen und -verweise können im Abfrageteil der Anfrage, in catalog::Modifier
und in catalog::PostModifier
vorkommen.
Variablen werden wie oben definiert, ähnlich wie andere IS-Befehle. Das führende "$" identifiziert den Befehl als eine Variablendefinition. Variablen müssen definiert werden, bevor sie referenziert werden.
Beim Variablennamen var
wird nicht zwischen Groß- und Kleinschreibung unterschieden. Er kann aus einer beliebigen Kombination von ASCII-Buchstaben, Zahlen, '-', '_' und '.' bestehen.
value
muss für eine sichere HTTP-Übertragung URL-kodiert sein. Bei einer erneuten Übertragung von value
über HTTP ist eine doppelte Kodierung erforderlich. Dies ist der Fall, wenn value
in eine verschachtelte Fremdanforderung oder in das href-Attribut eines SVG-<image>
ersetzt wird.Variablenverweise bestehen aus dem Variablennamen, der durch "$" ($var$) am Anfang und Ende getrennt ist. Verweise können an jeder beliebigen Stelle im Wertteil eines beliebigen IS-Befehls auftreten (d. h. zwischen dem "=", das dem Befehlsnamen folgt, und dem nachfolgenden "&" oder dem Ende der Anfrage). Benutzerdefinierte Variablen können nicht auf die Befehle layer=
und effect=
angewendet werden. Im selben Befehlswert sind mehrere Variablen zulässig. Der Server ersetzt jedes Vorkommen von $ *
var*$
durch value
.
Variablenverweise dürfen nicht verschachtelt sein. Alle Vorkommen von $ *
var*$
innerhalb von value
werden nicht ersetzt.
Beispielsweise das Fragment Anfrage :
$var2=apple&$var1=my$var2$tree&text=$var1$
löst auf:
text=my$var2$tree
src=my$image$file.tif
ist beispielsweise ein gültiger Befehl (vorausgesetzt, dass ein Katalogeintrag oder eine Bilddatei mit dem Namen my$image$file.tif
vorhanden ist), wid=$number$
ist es jedoch nicht, da wid
ein numerisches Argument erfordert.Variablenverarbeitung in verschachtelten Anfragen section-26d63adc446c4fa0808e11e8082abdfa
$ *
var*$
-Verweise können überall in den geschweiften Klammern einer verschachtelten Bildbereitstellungs- oder Bildbereitstellungsanfrage auftreten, auch links neben "?“ Trennen des Pfads von der Abfrage Der Server ersetzt diese Verweise durch Werte (entweder aus der URL oder aus catalog::Modifier
des Hauptbildkatalogs), bevor die verschachtelte Anfrage weiter analysiert und verarbeitet wird.
Darüber hinaus werden alle $ *
var*=
-Definitionen aus der URL oder catalog::Modifier
an alle verschachtelten Bildbereitstellungs- und Bildrendering-Anfragen weitergeleitet. Dadurch wird sichergestellt, dass alle Variablendefinitionen für alle Vorlagen verfügbar sind, unabhängig von der Verschachtelungsebene.
Unabhängig von der Verschachtelungsebene muss bei Variablenwerten, die an einer beliebigen Stelle in verschachtelten Bild-Rendering- oder Bildbereitstellungsanfragen oder den zugehörigen catalog::Modifier
ersetzt werden sollen, nur eine HTTP-Kodierung mit einem Durchgang angewendet werden.
Variablenverarbeitung in eingebetteten Fremdanforderungen section-314e39a9aefb46faa737fd137897d1b0
$ *
var*$
Verweise, die überall in den geschweiften Klammern einer eingebetteten Fremdanforderung auftreten, werden durch übereinstimmende Variablendefinitionswerte ersetzt. Dadurch können eingebettete Fremdanfragen in einer Vorlage in einem Bildkatalog platziert werden.
Variablenwerte, die in fremde Anforderungen ersetzt werden sollen, müssen in der Regel doppelt kodiert werden, da keine erneute Kodierung erfolgt, bevor der Server versucht, die endgültige fremde URL zu übertragen.
Variablenverarbeitung beim SVG von Dateien section-a8359f9909764142b6a18ae778dca913
$ *
var*$
-Verweise können beim SVG von Dateien in Attributwerten und in <text>
auftreten. Die Bildbereitstellung ersetzt diese durch die entsprechenden $ *
var*=
-Definitionen, die auf der Anfrageverschachtelungsebene bekannt sind, auf der die SVG-Datei angegeben ist.
href
Attributwert ersetzt werden soll, muss doppelt URL-kodiert sein; alle anderen müssen einzeln kodiert sein.Vordefinierte Pfadvariable section-930d0dd12e8f49499becc9fe8df24092
Der im Anfragepfad angegebene object
wird der vordefinierten Variablen *
$object zugewiesen*
. " $ *
object*$
" kann an einer beliebigen Stelle in der Anfrage, in der von der Anfrage referenzierten Vorlage oder in einer verschachtelten/eingebetteten Anfrage platziert werden, wenn ein solches Objekt zulässig ist, einschließlich des Werts von src=
und mask=
und des Pfads einer verschachtelten/eingebetteten Anfrage.
Die folgende Anfrage verwendet beispielsweise das im Pfad angegebene Bild als Quelle einer Ebene in einer verschachtelten Anfrage:
/is/image/a/b?…&layer=3&src=is{…&src=$object$}&…
Dies entspricht
/is/image/a/b?…&layer=3&src=is{…&src=a/b}&…
Die Definition von *
$object*
kann überschrieben werden, indem explizit $ *
object*=
mit dem gewünschten Wert angegeben wird.
Die vordefinierte Pfadvariable wird häufig in Verbindung mit template=
verwendet.
Standard section-b02483d15529444586a2e9504805b155
Keine. Nur definierte Variablen werden durch den Server ersetzt (mit Ausnahme der vordefinierten Pfadvariablen $object, die immer ersetzt wird). Alle Vorkommen von $ *
var*$
bleiben Literal, wenn *
var*
nicht mit einer vorhandenen Variablendefinition abgeglichen werden kann.
Beispiele section-fba9393df6984247b7e30b3f93992e86
Siehe Beispiel A in Vorlagen.