Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/06/2017, 09:18
jeremiselxi
(Desactivado)
 
Fecha de Ingreso: septiembre-2008
Mensajes: 269
Antigüedad: 16 años, 3 meses
Puntos: 22
Respuesta: Drupal 8 - Variables - Template Twig - Cache

Cita:
Iniciado por el_javi Ver Mensaje
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]
    );
}

Para mi puede ser por dos cosas:
1) Intenta agregarle un return $variables["personsFilter"]; despues de la sección que dice:
Código PHP:
Ver original
  1. $variables["personsFilter"] = array (
  2.         "filterType" => $personsFilter[0],
  3.         "filterId" => $personsFilter[1]
  4.     );
2) Intenta cambiar el && por || o porque en la siguiente linea
Código PHP:
Ver original
  1. if (isset($_COOKIE[personsSearchCookie]) && !empty($_COOKIE[personsSearchCookie]))
quiere decir que si tiene un valor establecido la variable y no está en blanco entonces ejecuta el código que sigue.

Nota: || significa o

Si aún así no te funciona, entonces instalas el modulo Devel.

y luego sustituye el código del preprocess por este que te voy a enviar:
Código PHP:
Ver original
  1. function XXXXXX_preprocess(array &$variables) {
  2. if (isset($_COOKIE[personsSearchCookie]) && !empty($_COOKIE[personsSearchCookie])) {
  3.  
  4. //esto es para saber si está llegando a esta sección.
  5. dsm('El valor del cookie es:');
  6. dsm($_COOKIE[personsSearchCookie]);
  7.  
  8.     $personsFilter = explode("-", $_COOKIE[personsSearchCookie]);
  9.  
  10. dsm('Verificamos el valor de la variable $personsFilter');
  11. dsm($personsFilter);
  12.  
  13.  
  14. dsm('Verificamos el valor de la variable $variables antes de asignar el valor');
  15. dsm( $variables["personsFilter"]);
  16.  
  17.  
  18.     $variables["personsFilter"] = array (
  19.         "filterType" => $personsFilter[0],
  20.         "filterId" => $personsFilter[1]
  21.     );
  22.  
  23. dsm('Verificamos el valor de la variable $variables después de asignar el valor');
  24. dsm( $variables["personsFilter"]);
  25. }


Lo que te arroje ponlo aquí.

Saludos y Dios te bendiga.