/ / ¿Cómo puedo anular WRAPPER en un archivo de plantilla Template Toolkit? - perl, plantillas, catalizador

¿Cómo puedo anular WRAPPER en un archivo de plantilla de Template Toolkit? - Perl, plantillas, catalizadores.

¿Hay alguna manera de deshabilitar un WRAPPER que se estableció en nuevo (% config), a través de la plantilla o una anulación temporal con parse()? Quiero tener un solo valor predeterminado WRAPPER (que usaré para el 99.9% de mis plantillas), pero excluyo algunas.

Estoy haciendo esto todo el tiempo Catalyst::View::TT al igual que el ejemplo en el sinopsis de configuración, excepto que no quiero el WRAPPER para aplicar a todas mis plantillas.

Respuestas

8 para la respuesta № 1

Edite el contenedor, para incluir un condicional como:

[% IF no_wrapper OR template.no_wrapper %] [% content %] [% ELSE %]
top;
[% content %]
bottom;
[% END %]

Esto me permite deshabilitar el contenedor ya sea (1) dentro de la plantilla o (2) desde el alijo.

  1. [%- META no_wrapper = 1 -%]
  2. $c->stash->{no_wrapper} = 1

META var ...; es una directiva que hace var accesible a través del template hash como template.var

fuente: http://wiki.catalystframework.org/wiki/gettingstarted/howtos/template_wrappers


4 para la respuesta № 2

Definir excepciones en site/wrapper en sí, y por cierto, ya hay excepciones definidas allí.

[% IF template.name.match(".(css|js|txt)");
debug("Passing page through as text: $template.name");
content;
ELSE;
debug("Applying HTML page layout wrappers to $template.namen");
content WRAPPER site/html + site/layout;
END;
-%]

0 para la respuesta № 3

Me encontré con el mismo problema y creé una solución más generalizada que permite el cambio dinámico de diseños o no tener ningún diseño. Mira aquí:

Más de un diseño / envoltorio con Dancer y Template :: Toolkit