Битрикс: вывод списка доступных обновлений

Данное решение актуально как для Битрикс Управление Сайтом, так и для коробочной версии Битрикс24. Суть задачи простая: вывести на странице список доступных обновлений. Для чего это может быть нужно? Все просто. Стандартно в продуктах от компании «1С-Битрикс» доступные обновления представлены в виде списка модулей, для которых они и вышли. Соответственно, для того чтобы составить общую картину — необходимо кликнуть на каждый из них и ознакомиться с описанием.

Это не удобно. И мы хотим собрать эти данные воедино и вывести в публичном разделе сайта.

В решении данной задачи нам поможет функция CUpdateClient::GetUpdatesList.

Готовое решение выглядит так:

<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/update_client.php");
$lang = 'ru';
$stableVersionsOnly = 'Y';
$errors = null;
if ($arUpdateList = CUpdateClient::GetUpdatesList($errors, $lang, $stableVersionsOnly))
{
if (isset($arUpdateList["MODULES"][0]["#"]["MODULE"]))
{
for ($i = 0, $cnt = count($arUpdateList["MODULES"][0]["#"]["MODULE"]); $i < $cnt; $i++)
{
$arModuleTmp = $arUpdateList["MODULES"][0]["#"]["MODULE"][$i];
$arModuleTmp["@"]["ID"] = preg_replace("#[^A-Za-z0-9._-]#", "", $arModuleTmp["@"]["ID"]);
$update_description = '';
if (isset($arModuleTmp["#"]["VERSION"]) && is_array($arModuleTmp["#"]["VERSION"]))
{
for ($j = 0, $cntj = count($arModuleTmp["#"]["VERSION"]); $j < $cntj; $j++)
$update_description .= 	"<p><u>Версия ".$arModuleTmp["#"]["VERSION"][$j]["@"]["ID"]."</u></p>".$arModuleTmp["#"]["VERSION"][$j]["#"]["DESCRIPTION"][0]["#"];
}
?>
<div class="card_custom">
<div class="card-header_custom"><b><?=$arModuleTmp["@"]["NAME"] . " (" . $arModuleTmp["@"]["ID"] . ")"; ?></b></div>
<div class="card-body_custom">
<p><?=$update_description ?></p>
</div>
</div>
<?
}
}
else
{
    echo 'Нет доступных обновлений';
}
?>

Результат будет выглядеть примерно следующим образом:

Также рекомендую ознакомиться с содержимым массива $arUpdateList.

Так, например, в ключе LANGS содержатся сведения о доступных обновлениях языковых пакетов, в MODULES — данные об обновлениях для модулей. А вот ключ CLIENT позволяет вывести информацию о действующей лицензии: редакция продукта, максимально допустимое количество пользователей, дата окончания лицензии.

Опубликовано: 30 января 2021 года, в рубрике «Битрикс».

Оставить комментарий

5000
  Подписаться  
Уведомление о
Поблагодарить автора статьи
Зачем это нужно