Получить список доступных обновлений


Мне нужно иметь возможность легко получить список доступных обновлений для сайта.

Я наткнулся на функцию update_get_update_list(), но она возвращает только массив "информации об обновлениях базы данных, которые необходимо запустить, и любых обновлениях, которые не будут выполняться из-за отсутствующих требований". Я хочу, чтобы список отображался на странице администратор/модули/обновление, но, похоже, не могу найти способа сделать это с помощью модуля обновления ядра и хочу избежать использование grep при вызове drush up-n (так как это кажется немного банальным.)

 6
Author: UnsettlingTrend, 2015-04-13

4 answers

Предполагая, что вам нужна эта информация программно, вы можете искать update_calculate_project_data():

Вычисляет текущий статус обновления всех проектов на сайте.

Результаты этой функции дорого вычислять, особенно на сайтах с большим количеством модулей или тем, поскольку она включает в себя множество сравнений и других операций. Поэтому мы кэшируем результаты в таблицу {cache_update}, используя идентификатор кэша 'update_project_data'. Однако, поскольку это не те данные что касается доступных обновлений, извлеченных из сети, то можно довольно быстро аннулировать их. Если мы будем хранить эти данные очень долго, администраторы сайта с большей вероятностью увидят неверные результаты, если они обновят модуль или тему до более новой версии, но не посетят определенные страницы, которые автоматически очищают этот кэш.

Возвращаемое значение:

Массив установленных проектов с текущей информацией о состоянии обновления.

Для функции Update_calculate_project_data() требуется аргумент всех доступных/включенных модулей.

Запуск этого...

module_load_include('inc', 'update', 'update.report');
$available = update_get_available(TRUE);
$data = update_calculate_project_data($available);

... оставит $data в виде массива всех доступных/включенных модулей с соответствующей информацией о существующей, рекомендуемой и последней версии. Если необходимы только модули с обновлениями, их можно отфильтровать, сравнив эти версии.

 5
Author: Clive, 2020-06-15 09:13:00

Насколько я понимаю, есть три способа добиться этого:

  1. Вы можете использовать пользовательский интерфейс Drupal /admin/reports/updates
  2. Вы можете использовать Drush drush ups
  3. Вы можете использовать стороннюю службу Статус Drupal .

Я написал статью , в которой объясняется, как интегрировать несколько веб-сайтов Drupal со статусом Drupal.

 5
Author: itsdarrylnorris, 2015-04-13 19:38:39

Вы смотрели здесь /admin/reports/updates?

 3
Author: Heather, 2015-04-13 18:51:08

В Drupal 8 правильным способом управления сайтами является использование composer.

Кроме того, в Drush версии 9 устарели все команды up pm-update, pm-updatecode и pm-updatestatus

Укажите оба пункта, если вам нужно программно получить список обновленных модулей, вы можете использовать composer:

composer outdated "drupal/*"

Drush по-прежнему используется для получения списка udp-адресов безопасности:

drush pm:security

Смотрите для получения дополнительной информации: https://www.drupal.org/docs/updating-drupal/updating-modules-and-themes-using-composer

 1
Author: Alejandro Moreno, 2020-08-17 14:40:59