Pregunta:
Necesito poder obtener fácilmente una lista de actualizaciones disponibles para un sitio.
Me encontré con la función update_get_update_list (), pero eso solo devuelve una matriz de "información sobre las actualizaciones de la base de datos que deben ejecutarse y las actualizaciones que no se realizarán debido a la falta de requisitos". Quiero que la lista se muestre en la página de administración / módulos / actualización, pero parece que no puedo encontrar ninguna manera de hacerlo a través del módulo de actualización del núcleo, y quiero evitar usar grep en una llamada drush up -n (ya que se siente un poco hacky.)
Respuesta:
Suponiendo que necesita esta información mediante programación, es posible que esté buscando update_calculate_project_data()
:
Calcula el estado de actualización actual de todos los proyectos en el sitio.
Los resultados de esta función son costosos de calcular, especialmente en sitios con muchos módulos o temas, ya que implica muchas comparaciones y otras operaciones. Por lo tanto, almacenamos en caché los resultados en la tabla {cache_update} usando el ID de caché 'update_project_data'. Sin embargo, dado que estos no son los datos sobre las actualizaciones disponibles que se obtienen de la red, está bien invalidarlos con cierta rapidez. Si guardamos estos datos durante mucho tiempo, es más probable que los administradores del sitio vean resultados incorrectos si actualizan a una versión más reciente de un módulo o tema, pero no visitan ciertas páginas que borran automáticamente esta caché.
El valor de retorno es:
Una serie de proyectos instalados con información de estado de actualización actual.
update_calculate_project_data () requiere un argumento de todos los módulos disponibles / habilitados.
Ejecutando esto …
module_load_include('inc', 'update', 'update.report');
$available = update_get_available(TRUE);
$data = update_calculate_project_data($available);
… dejará $ data como una matriz de todos los módulos disponibles / habilitados, con su correspondiente versión existente, recomendada y la información de la última versión. Si solo son necesarios los módulos con actualizaciones, se pueden filtrar comparando esas versiones.