Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/06/2017, 09:56
Avatar de el_javi
el_javi
 
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 14 años, 7 meses
Puntos: 9
Drupal 8 - Variables - Template Twig - Cache

En el HOOK de mi proyecto XXX_preprocess estoy definiendo una variable en función de una cookie.

Código de mi Preprocess php:

Código:
function XXXXXX_preprocess(array &$variables) {
if (isset($_COOKIE[personsSearchCookie]) && !empty($_COOKIE[personsSearchCookie])) {
    $personsFilter = explode("-", $_COOKIE[personsSearchCookie]);
    $variables["personsFilter"] = array (
        "filterType" => $personsFilter[0],
        "filterId" => $personsFilter[1]
    );
}

Pero en la plantilla Twig, siempre me da el valoir inicial de esa variable, nunca cambia.
Código de mi Twig:
Código:
Filtering results by [{{ personsFilter.filterType }}]<br />

{% if personsFilter is defined and personsFilter.filterType is defined and personsFilter.filterType is not empty %}
    {% if personsFilter.filterType == "area" %}
        Filtering by Area <br />      
    {% endif %}

    {% if personsFilter.filterType == "office" %}
        Filtering by Office <br />
    {% endif %}
{% else %}
    No filtering
{% endif %}

Esto debe ser un tema de caché no?

¿Cómo puedo hacer para que cuando mi cookie cambie, la variable sea modificada y desde twig pueda acceder al nuevo valor?

Si hago un dump en el preprocess la variable en PHP tiene siempre el valor actualizado.

Pero Twig siempre saca el valor de la primera carga (tras una limpieza de caché).

Gracias!