Variables de sustitución

Las variables de sustitución se utilizan para transferir valores desde la dirección URL de la solicitud a la composición de plantillas almacenadas en catálogos de imágenes. Las variables también se pueden utilizar para transmitir el mismo valor a diferentes lugares de una solicitud compleja.

$ * *= *varvalue*

var

Nombre de la variable.

value

Valor al que se debe configurar la variable (cadena).

Las definiciones y referencias de variables pueden producirse en la parte de consulta de la solicitud, en catalog::Modifier y en catalog::PostModifier.

Las variables se definen como se indica arriba, de forma similar a otros comandos IS; el elemento principal '$' identifica el comando como una definición de variable. Las variables deben definirse antes de hacer referencia a ellas.

El nombre de la variable var no distingue entre mayúsculas y minúsculas y puede constar de cualquier combinación de letras ASCII, números, '-', '_' y '.'.

NOTA

value debe tener codificación de dirección URL de paso único para la transmisión HTTP segura. Se requiere una doble codificación si value se retransmite mediante HTTP. Este es el caso cuando value se sustituye en una solicitud externa anidada o en el atributo href de un elemento SVG <image>.

Las referencias de variables constan del nombre de variable delimitado por '$' al principio y al final ($var$). Las referencias pueden producirse en cualquier parte de la porción de valor de cualquier comando IS (es decir, entre el '=' después del nombre del comando y el '&' posterior o el final de la solicitud). Las variables personalizadas no se pueden aplicar a los comandos layer= y effect=. Se permiten varias variables en el mismo valor de comando. El servidor sustituye cada incidencia de $ *var*$ por value.

Es posible que las referencias de variables no estén anidadas. No se sustituye ninguna ocurrencia de $ *var*$ dentro de value.

Por ejemplo, el fragmento de solicitud:

$var2=apple&$var1=my$var2$tree&text=$var1$

resuelve en:

text=my$var2$tree

NOTA

'$' no es un carácter reservado; de lo contrario, podría ocurrir en la solicitud. Por ejemplo, src=my$image$file.tif es un comando válido (suponiendo que existe una entrada de catálogo o un archivo de imagen denominado my$image$file.tif), mientras que wid=$number$ no lo es, porque wid requiere un argumento numérico.

Procesamiento de variables en solicitudes anidadas

$ * *$ pueden producirse en cualquier lugar dentro de las llaves de una solicitud anidada de servicio de imágenes o de renderización de imágenes, incluso a la izquierda de '?' separar la ruta de acceso de la consulta. El servidor sustituye estas referencias por valores (ya sea de la dirección url o de catalog::Modifier del catálogo de imágenes principal) antes de seguir analizando y procesando la solicitud anidada.

Además, todas las definiciones $ *var*= de la dirección url o catalog::Modifier se reenvían a todas las solicitudes anidadas de servicio de imágenes y renderización de imágenes. Esto garantiza que todas las definiciones de variables estén disponibles para todas las plantillas, independientemente del nivel de anidación.

Independientemente del nivel de anidación, solo se debe aplicar una codificación HTTP de un solo paso a los valores de las variables que se van a sustituir en cualquier lugar de las solicitudes anidadas de Representación de imágenes o Servicio de imágenes o sus cadenas catalog::Modifier asociadas.

Procesamiento de variables en solicitudes externas incrustadas

$ *Las variables de *$ que se producen en cualquier parte dentro de las llaves de una solicitud externa incrustada se sustituyen por valores de definición de variable coincidentes. Esto permite colocar las solicitudes externas incrustadas en una plantilla en un catálogo de imágenes.

Los valores de variable que se van a sustituir en solicitudes externas generalmente deben codificarse dos veces, ya que no se aplica ninguna recodificación antes de que el servidor intente transmitir la dirección url externa final.

Procesamiento de variables en archivos SVG

$ * *$ pueden aparecer en archivos SVG en valores de atributo y en <text> cadenas. Image Serving los sustituye por las definiciones coincidentes $ *var*= conocidas en el nivel de anidación de la solicitud en el que se especifica el archivo SVG.

NOTA

Cualquier valor de variable que se vaya a sustituir por un valor de atributo href debe tener una codificación de URL doble; todos los demás deben codificarse de forma individual.

Variable de ruta predefinida

El object especificado en la ruta de solicitud se asigna a la variable predefinida *$object*. ' $ *object*$' puede colocarse en cualquier lugar de la solicitud, en la plantilla a la que hace referencia la solicitud o en una solicitud anidada/incrustada en la que se permita dicho objeto, incluido el valor de src= y mask=, y la ruta de una solicitud anidada/incrustada.

Por ejemplo, la siguiente solicitud reutiliza la imagen especificada en la ruta como origen de una capa en una solicitud anidada:

/is/image/a/b?…&layer=3&src=is{…&src=$object$}&…

Esto equivale a

/is/image/a/b?…&layer=3&src=is{…&src=a/b}&…

La definición de *$object* puede anularse especificando explícitamente $ *object*= con el valor deseado.

La variable de ruta predefinida se utiliza comúnmente junto con template=.

Predeterminado

Ninguno. El servidor solo sustituirá las variables que se hayan definido (excepto la variable de ruta predefinida $object, que siempre se sustituirá). Cualquier ocurrencia de $ *var*$ permanece literal si *var*no se puede coincidir con una definición de variable existente.

Ejemplos

Consulte "Ejemplo A" en Templates.

Véase también

Plantillas, plantilla=

En esta página