¡Estoy tratando de entender nuevamente los filtros contextuales! Lo usé hace un tiempo pero me quedé totalmente perplejo nuevamente. Esto es lo que estoy tratando de hacer:
- Genere una página de nodo de contenido clonado con términos de taxonomía insertados en esta página clonada.
Ej .: EJEMPLO.com/botas blancas / azul
Cuando un usuario llega a la página / white-shoes, mostrará la página del nodo original orientada hacia el color blanco. Ahora, si el usuario aterriza en / white-shoes / blue, mostrará la misma página de nodo, pero esta vez todo el contenido del cuerpo se reescribirá reemplazando el color blanco con el color azul.
En Vistas , tendría que crear una visualización de página con la ruta de:% /%
Ahora crearía un filtro contextual para recuperar el nid. Agrego Content: nid como filtro contextual. Elijo PROPORCIONAR UN VALOR POR DEFECTO y pongo este código PHP:
$ x = drupal_lookup_path ('fuente', arg (0));
$ y = explotar ('/', $ x);
devolver $ y 1 ;
Ese código PHP básicamente convierte la parte / white-shoes de la URL en un NID. Pero no funciona. Probé el código a través de drush ev a través del terminal y de hecho recibí un resultado devuelto, así que sé que funciona.
Hago lo mismo para el nombre del término de taxonomía y también agrego un filtro contextual para eso. Esta vez elijo PROPORCIONAR UN VALOR POR DEFECTO y selecciono VALOR SIN PROCESAR DE URL y selecciono el segundo argumento.
Como puede ver cuando ingreso un VALOR DE VISTA PREVIA para el filtro contextual: AAA / BBB / CCC. Mi valor predeterminado se ignora. Se supone que está tomando el segundo argumento, pero está obteniendo el primer solo. Mire la instrucción SQL DONDE y verá que está obteniendo AAA cuando debería ser BBB.
Entonces, la pregunta es ¿qué estoy haciendo mal o hay una mejor solución para lo que quiero lograr?