Menu Autopilot
Menu Autopilot está dirigido a editores y constructores de sitios Drupal que quieren una navegación curada por personas en el nivel superior y una navegación impulsada por el contenido debajo. Wilkes & Liberty mantiene el módulo Drupal con licencia GPL para Drupal 10.6+ y 11. Crea hijos menu_link_content ordinarios a partir de nodos publicados, de modo que los temas Twig, JSON:API, GraphQL Compose y los frontends desacoplados consumen todos el mismo árbol de menú.
Por qué existe
Los menús de Drupal son intencionalmente editoriales. Eso es útil para un conjunto pequeño de destinos principales, pero costoso cuando una sección contiene docenas de productos, recursos, oficinas o temas que ya existen como contenido estructurado. Los editores terminan publicando un nodo y luego recreándolo como enlace de menú, manteniendo títulos en dos lugares, corrigiendo alias y eliminando enlaces obsoletos después de despublicar.
Los módulos que generan menús a partir de términos de taxonomía resuelven un problema distinto. Menu Autopilot conserva un padre curado y deriva sus hijos de nodos de contenido. Es para la navegación lo que Pathauto es para los alias: la política determina la forma, y el ciclo de vida del contenido mantiene el resultado actualizado.
Quién debería usarlo y cuándo
- Equipos editoriales cuya navegación de sección debe seguir al contenido publicado sin un segundo paso manual.
- Constructores de sitios que diseñan menús híbridos donde solo algunas ramas seleccionadas son automáticas.
- Equipos de frontend desacoplado que necesitan enlaces de menú canónicos y conscientes del idioma a través de la misma API que los enlaces curados a mano.
- Mantenedores de multisitios y distribuciones que quieren que el comportamiento de navegación viaje como configuración y no como práctica editorial indocumentada.
Úselo cuando la pertenencia a una rama de menú pueda expresarse como una referencia de taxonomía, un bundle de contenido o una lista ordenada de nodos. Mantenga una rama manual cuando cada ubicación sea un juicio editorial independiente o cuando el orden no tenga una regla estable.
Dónde se ejecuta en Drupal
Menu Autopilot extiende el formulario de edición de enlaces de menú con una configuración de “Hijos automáticos”. El padre seleccionado sigue siendo un enlace de menú ordinario. El módulo solo es dueño de los hijos generados debajo de ese padre y los almacena como entidades menu_link_content normales usando URI canónicas entity:node/<id>. Drupal resuelve esas referencias al alias actual en el momento del renderizado.
Como el resultado es un árbol de menú real y no una API virtual, todos los consumidores ven los mismos enlaces. Las etiquetas de caché invalidan la navegación afectada cuando cambia el contenido de origen; el almacenamiento consciente del idioma admite menús y alias traducidos.
Tres estrategias de origen
- Término de taxonomía: incluye los nodos publicados cuyo campo de referencia configurado apunta al término seleccionado.
- Bundle de contenido: incluye los nodos publicados de un tipo de contenido seleccionado.
- Lista manual de nodos: seleccione y ordene un conjunto controlado de nodos mientras deja que Autopilot mantenga los títulos y los enlaces canónicos.
Un patrón de token opcional puede proporcionar una etiqueta específica para la navegación, como [node:field_nav_title], sin cambiar el título del nodo.
Qué ocurre durante el ciclo de vida del contenido
- Un editor configura un padre de menú y elige un origen.
- El reconciliador calcula los nodos publicados que pertenecen bajo ese padre.
- Crea los enlaces gestionados que faltan, actualiza títulos y pesos, y elimina los enlaces gestionados que ya no califican.
- Deja intactos los hijos colocados a mano.
- La publicación, la despublicación, la reclasificación, los cambios de título y los cambios de alias pasan por la misma reconciliación idempotente.
La idempotencia es importante: ejecutar la reconstrucción repetidamente converge en el mismo árbol en lugar de eliminar y recrear enlaces, lo que preserva una identidad de entidad estable y evita una rotación de caché innecesaria.
Responsabilidad sobre accesibilidad y multilingüismo
El módulo gobierna los datos del menú, no el patrón de interacción del frontend. Su documentación recomienda el patrón de navegación por divulgación de la WAI para la navegación del sitio en lugar de presentar enlaces ordinarios como un menubar de aplicación. El tema o la aplicación consumidora siguen siendo responsables del comportamiento del teclado, el foco, el estado expandido, la indicación de página actual y las pruebas WCAG.
Las traducciones se almacenan por traducción de enlace de menú y se seleccionan según el idioma de la solicitud. Las cachés del frontend deben variar o etiquetar las respuestas por idioma; la guía de internacionalización documenta el comportamiento esperado y el alcance actual.
Instalar y operar
composer require drupal/menu_autopilot
drush en menu_autopilot
# Reconcile all configured automatic branches.
drush menu-autopilot:rebuild
# Convert legacy editorial-route links to canonical entity URIs.
drush menu-autopilot:normalize-uris
Se requieren Node y Menu Link Content del núcleo. Taxonomy solo es necesario para la estrategia de origen por taxonomía. Token es opcional y añade el navegador de tokens y patrones de etiqueta ampliados.
Límites honestos
Menu Autopilot no diseña una jerarquía de navegación, no elige qué páginas merecen promoción ni renderiza un componente de menú accesible. No gestiona enlaces fuera de las ramas automáticas configuradas y deja intencionalmente en paz a los hijos colocados manualmente. Los conjuntos de origen muy grandes siguen requiriendo un diseño sensato de consultas, caché y navegación en el frontend; agregar cientos de hijos automáticamente no hace que esa experiencia sea usable.
El módulo sigue la publicación y la pertenencia configurada al origen. Si la regla de inclusión de un sitio depende de una decisión de negocio personalizada que no puede expresarse con las estrategias incluidas, implemente una extensión deliberada en lugar de codificar la regla en títulos o pesos.
Proyecto, código fuente, incidencias y guía de diseño
- Página del proyecto Menu Autopilot y versiones en Drupal.org
- Código fuente y documentación en GitHub
- Cola de incidencias en GitHub
- Guía de accesibilidad y modelo de interacción de referencia
- Guía de internacionalización y caché
- Documento técnico: Componer la navegación en un CMS desacoplado
Mantenido por Jeremy Michael Cerda y Wilkes & Liberty bajo GPL-2.0-or-later. La versión de código fuente verificada para esta página es la 1.0.2.