drupal 8 – Filtrar usando dos vocabulario de taxonomía

Pregunta:

Estoy ejecutando Drupal 8 con dos vocabularios de taxonomía, que son los siguientes:

  • Color

    • rojo
    • Azul
    • Verde
  • Contenedores

    • A
    • B
    • C
    • D
    • mi
    • F

Mi contenido tiene 2 campos de referencia de términos

  • Color
  • Contenedores

La referencia del primer término puede tener varias etiquetas. Lo que estoy tratando de hacer es usar el primer vocabulario (Color) como filtro / menú expuesto y el segundo (Contenedores) como lista de referencia de términos en mis vistas. Quiero poder mostrar la segunda lista de referencia de vocabulario (Contenedores) basada en las primeras etiquetas de vocabulario (Color). Entonces, si alguien hace clic en Rojo, solo aparecerá el segundo vocabulario (Contenedores) que tiene el término etiquetado como rojo.

¿Cómo puedo conseguir esto?

Respuesta:

Si tiene que utilizar dos vocabulario de taxonomía en lugar de uno, puede hacer lo siguiente.

  1. En el vocabulario de "color", agregue una referencia de entidad al vocabulario de "contenedores" y para cada término de color, establezca los contenedores disponibles.
  2. Al usar Drupal.settings , proporciona información sobre las relaciones entre los términos (como una matriz asociada, por ejemplo) al navegador para que use información en JavaScript.
  3. Agregue el script JQuery, que intercepta una selección de un término de color y elimina los términos redundantes en el cuadro de selección para contenedores. Es decir, por ejemplo, ha seleccionado un color Verde y el script JQuery ha eliminado inmediatamente todos los elementos del cuadro de selección para los contenedores, excepto "B" y "C".

Puede agregar el script JQuery y enviar datos a Drupal.setting usando hook_form_alter para el formulario de inserción / edición de nodo.

Por supuesto, no puedo garantizar que esta sea la forma más correcta, pero si yo fuera tú, lo intentaría al principio.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım