Macros de comandos command-macros
Las macros de comandos proporcionan accesos directos con nombre para conjuntos de comandos.
Las macros se definen en archivos de definición de macros independientes, que se pueden adjuntar a los catálogos de imágenes o al catálogo predeterminado.
Las macros pueden invocarse en cualquier lugar de una solicitud después de "?" y en cualquier lugar dentro de un campo catalog::Modifier
. Las macros solo pueden representar uno o más comandos completos de servicio de imágenes; por lo tanto, debe ir entre separadores "&" (excepto cuando se encuentra al principio o al final de la cadena del modificador).
Las invocaciones a macros se sustituyen por sus cadenas de sustitución al principio del análisis. Los comandos dentro de las macros anulan los mismos comandos de la solicitud si se producen antes de la invocación de la macro en la solicitud. Este flujo es diferente de catalog::Modifier
, donde los comandos de la cadena de solicitud siempre anulan los comandos de la cadena catalog::Modifier
, independientemente de la posición en la solicitud.
Las macros se pueden anidar. Sin embargo, una macro sólo se puede invocar si ya está definida en el momento de analizar la definición de la macro. Este flujo se lleva a cabo apareciendo anteriormente en el mismo archivo de definición de macro o colocando la definición de dicha macro incrustada en el archivo de definición de macro predeterminado.
Las macros pueden resultar útiles si se van a aplicar los mismos atributos a imágenes diferentes.
http://server/cat/1345?wid=240&fmt=pdf&imageRes=300
http://server/cat/1435?wid=240&fmt=pdf&imageRes=300
http://server/cat/8243?wid=480&fmt=pdf&imageRes=300
Puede definir una macro para los atributos comunes:
view wid=240&fmt=pdf&imageRes=300
La macro se usaría de la siguiente manera:
http://server/cat/1345?$view$
http://server/cat/1435?$view$
http://server/cat/8243?$view$&wid=480
Dado que wid=
es diferente para la tercera solicitud, simplemente invalide el valor después de cuando se invoque la macro (especificando wid=
antes $view$
no tiene ningún efecto).