Данное решение актуально как для Битрикс Управление Сайтом, так и для коробочной версии Битрикс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
позволяет вывести информацию о действующей лицензии: редакция продукта, максимально допустимое количество пользователей, дата окончания лицензии.
Оставить комментарий