Estoy usando el siguiente código para preprocesar las variables para mi plantilla:
function template_preprocess_imagegallery_format(&$vars) {
template_preprocess_image_formatter($vars);
$vars['image']['#theme'] = 'igimage';
$vars['image']['#thumbnail'] = ImageStyle::load('thumbnail')->buildUrl($vars ['image']['#uri']);
$vars['image']['#fullimage'] = file_create_url($vars ['image']['#uri']);
}
La variable #uri ya está presente, y si solo la modifico, todo funciona bien. Pero necesito agregar variables adicionales aquí ya que necesito dos estilos diferentes de la misma imagen. Pero simplemente agregar esas variables a la matriz no funciona.
Si vuelco las variables disponibles en mi plantilla Twig con {{ dump(_context|keys) }}
, no veo las variables que agregué allí. Si trato de usarlos en mi plantilla, no se inserta nada.
Puedo ver que los valores se agregan a la matriz, cuando vuelco la variable de imagen en el tema que representa todo el campo, veo mis variables en la matriz. Pero todavía no están disponibles en la plantilla que representa la variable de imagen en sí.
¿Qué más necesito hacer para agregar una variable en mi función de preproceso que pueda usar en mi plantilla Twig?
$vars
y sus claves (por ejemplo['image']
). Estoy bastante seguro de que no está permitido.template_preprocess_imagegallery_format
pero 'plantilla' debe reemplazarse con el tema o el nombre del módulo. También necesitarás un caché claro.Respuestas:
Finalmente resolví el problema, el problema fue que intenté agregar las variables en el preprocesador incorrecto. Editar el #theme funciona allí, pero para agregar variables necesitaba preprocesar el tema que configuré allí:
fuente
Nombre del tema: atvdirect
use {{logopath}} en page.html.twig
fuente