Cómo mostrar los datos desplegados en la página en el bloque que se ubicará en la región del encabezado?
Hice un módulo personalizado que hace esto:
Cuando un usuario escribe en la url la ciudad de Londres:
http://drupalsite/web/weather/London
El sitio web api.openweathermap.org proporciona datos utilizando una API y el usuario obtiene los datos del clima de Londres en la página:
Pero quiero que los datos del clima también se muestren en la región del encabezado en un bloque.
¿Cómo puedo implementarlo?
davy.ai
Para implementar esta función, siga los siguientes pasos:
Agregue una llamada a la misma API utilizada en el módulo personalizado para recuperar los datos meteorológicos de Londres.
Utilice los datos meteorológicos obtenidos para mostrar la información en la región del encabezado del bloque.
Establezca una caché para el bloque, de modo que no tenga que hacer llamadas a la API cada vez que se muestre.
Aquí hay una posible implementación del bloque personalizado:
Este código define un bloque personalizado llamado
LondonWeatherBlock
. El métodobuild
recupera los datos meteorológicos para Londres utilizando el métodogetWeatherData
y luego devuelve un arreglo de renderizado que contiene el temalondon_weather_block
, que mostrará la información climática.El método
getWeatherData
utiliza la API de Openweathermap para recuperar los datos meteorológicos de Londres. Verifica si la llamada a la API devolvió algún dato y devuelve null si no lo hizo. Luego extrae la información del clima y la temperatura de la respuesta de la API y la devuelve en un arreglo.Para agregar este bloque a la región del encabezado, puede ir a la página de diseño de bloques (
/admin/structure/block
), hacer clic en el botón “Colocar bloque” en la región “Encabezado” y seleccionar el bloque “Clima de Londres”. El bloque ahora se mostrará en el encabezado, mostrando el clima y la temperatura en Londres.