10 private static $items=
array();
46 self::$alertCounter++;
51 self::$items[] = $item;
53 return count(self::$items)-1;
56 private static function PrintItemHtml($itemIdx, $bVisible)
59 <div class="adm-informer-item'.(self::$items[$itemIdx][
"COLOR"] ?
" adm-informer-item-".self::$items[$itemIdx][
"COLOR"] :
'').
'" style="display:'.($bVisible ?
'block' :
'none').
'"'.(self::$items[$itemIdx][
"LINK"] ?
' onclick="location.href=\''.self::$items[$itemIdx][
"LINK"].
'\';
"' : '' ).'>
60 <div class="adm-informer-item-
title">
61 '.self::$items[$itemIdx]["TITLE
"].'
63 <div class="adm-informer-item-body
">
64 <div class="adm-informer-item-html
" id="adm-informer-item-html-
'.$itemIdx.'">
65 '.self::$items[$itemIdx]["HTML
"].'
66 <span class="adm-informer-icon
"></span>
69 if(self::$items[$itemIdx]["FOOTER
"]!=false && !empty(self::$items[$itemIdx]["FOOTER
"]))
72 <div class="adm-informer-item-footer
" id="adm-informer-item-footer-
'.$itemIdx.'">
73 '.self::$items[$itemIdx]["FOOTER
"].'
84 public static function PrintHtmlPublic($visCountParam = 3)
86 if(!$GLOBALS["APPLICATION
"]->PanelShowed)
89 return self::PrintHtml($visCountParam);
92 public static function PrintHtml($visCountParam = 3)
94 sortByColumn(self::$items, "SORT
");
100<div class="adm-informer
" id="admin-informer
" style="display: none;
top:48px;
left:316px;
" onclick="return BX.adminInformer.OnInnerClick(event);
">
101 <div class="adm-informer-header
">'.GetMessage("MAIN_AI_NEW_NOTIF
").'</div>';
103 foreach (self::$items as $key => $item)
105 if( $itemsCount < $visCountParam || $item["ALERT
"])
113 $div .= self::PrintItemHtml($key, $bVisible);
119 <a href="javascript:void(0);
" class="adm-informer-footer adm-informer-footer-collapsed
" hidefocus="true" id="adm-informer-footer
" onclick="return BX.adminInformer.ToggleExtra();
" '.( $itemsCount <= $visibleCount ? ' style="display:none;
"' : '' ).'>'.GetMessage('MAIN_AI_ALL_NOTIF').' ('.$itemsCount.') </a>
120 <span class="adm-informer-arrow
"></span>
124 BX.ready( function(){BX.adminInformer.Init('.$visibleCount.'); } );
130 private static function CutErrorId($sError)
132 return preg_replace('/\[.*\]/', '', $sError);
135 private static function IsUpdateSystemNeedUpdate($sError)
137 return mb_strpos($sError, 'NEW_UPDATE_SYSTEM');
140 public static function InsertMainItems()
142 if(defined('BX_PUBLIC_MODE') && BX_PUBLIC_MODE == 1)
147 if(!$USER->IsAuthorized())
150 if ($USER->CanDoOperation("cache_control
") && !Helper::isOn() && !Engine::isSelfHostedPortal())
153 "TITLE
" => GetMessage("top_panel_ai_composite_title
"),
154 "HTML
" => GetMessage("top_panel_ai_composite_desc
"),
156 "FOOTER
" => '<a href="/bitrix/admin/composite.php?
lang=
'.LANGUAGE_ID.'">'.GetMessage("top_panel_ai_composite_switch_on
").'</a>',
163 if($USER->IsAdmin() || $USER->CanDoOperation('install_updates'))
165 $update_res = UpdateTools::GetUpdateResult();
167 $updAIParams = array(
168 "TITLE
" => GetMessage("top_panel_ai_updates
"),
173 //update_autocheck == true and we have something to show
174 if ($update_res['result'] === true && $update_res['tooltip'])
176 $updAIParams["HTML
"] = $update_res['tooltip'];
177 $updAIParams["FOOTER
"] = '<a href="/bitrix/admin/update_system.php?
lang=
'.LANGUAGE_ID.'">'.GetMessage("top_panel_ai_upd_instl
").'</a>';
178 $updAIParams["ALERT
"] = true;
180 else if ($update_res['error'] <> '') // update error
182 $updAIParams["TITLE
"] .= " -
".GetMessage("top_panel_ai_title_err
");
183 $updAIParams["HTML
"] = trim(self::CutErrorId($update_res['error']));
184 $updAIParams["FOOTER
"] = '<a href="/bitrix/admin/update_system.php?refresh=Y&
lang=
'.LANGUAGE_ID.'">'.GetMessage("top_panel_ai_upd_chk
").'</a>';
185 $updAIParams["ALERT
"] = true;
187 else // update_autocheck == false
189 //last update date time
190 $updateDate = COption::GetOptionInt("main
", "update_system_update_time
");
192 $updAIParams["HTML
"] = '<span class="adm-informer-strong-text
">'.GetMessage("top_panel_ai_sys_ver
").' '.SM_VERSION."</span><br>
";
193 $updAIParams["HTML
"] .= $updateDate ? GetMessage("top_panel_ai_upd_last
") . '<br>' . \Bitrix\Main\Type\DateTime::createFromTimestamp($updateDate) : GetMessage("top_panel_ai_upd_never
");
194 $updAIParams["FOOTER
"] = '<a href="/bitrix/admin/update_system.php?refresh=Y&
lang=
'.LANGUAGE_ID.'">'.GetMessage("top_panel_ai_upd_chk
").'</a>';
195 $updAIParams["ALERT
"] = false;
198 self::AddItem($updAIParams);
202 $maxQuota = (int)COption::GetOptionInt("main
", "disk_space
", 0)*1048576;
205 $quota = new CDiskQuota();
206 $free = $quota->GetDiskQuota();
207 $freeMB = CFile::FormatSize($free,1);
208 $free = round($free/($maxQuota)*100);
211 "TITLE
" => GetMessage("top_panel_ai_used_space
"),
213 "ALERT
" => ($free < 10 ? true : false)
216 $qAIParams["HTML
"] = '
217 <div class="adm-informer-item-section
">
218 <span class="adm-informer-item-l
"><span class="adm-informer-strong-text
">'.GetMessage("top_panel_ai_in_all
").'</span> '.CFile::FormatSize($maxQuota,1).'</span>
219 <span class="adm-informer-item-r
"><span class="adm-informer-strong-text
">'.GetMessage("top_panel_ai_in_aviable
").'</span> '.$freeMB.'</span>
221 <div class="adm-informer-status-bar-block
" >
222 <div class="adm-informer-status-bar-indicator
" style="width:
'.(100-$free).'%;
"></div>
223 <div class="adm-informer-status-bar-text
">'.(100-$free).'%</div>
225 <div class="adm-informer-item-section
"><span class="adm-informer-strong-text
">'.GetMessage("top_panel_ai_in_recomend
").'</span> '.GetMessage("top_panel_ai_in_no
").'</div>';
227 self::AddItem($qAIParams);
230 if($USER->IsAdmin() && in_array(LANGUAGE_ID, array("ru
", "ua
")))
232 $cModules = COption::GetOptionString("main
", "mp_modules_date
", "");
233 $arModules = array();
236 $arModules = unserialize($cModules, ['allowed_classes' => false]) ?: [];
239 $mCnt = count($arModules);
242 foreach($arModules as $id => $module)
244 if(isModuleInstalled($module["ID
"]))
246 if($module["TMS
"]+3600*24*14 < time())
250 function hideMpAnswer(el, module)
252 if(el.parentNode.parentNode.parentNode)
253 BX.hide(el.parentNode.parentNode.parentNode);
257 'url':
'/bitrix/admin/partner_modules.php',
258 'data':
'module='+module+
'&".bitrix_sessid_get()."&act=unnotify',
267 'TITLE' => GetMessage("top_panel_ai_marketplace
"),
269 'FOOTER' => "<a href=\
"javascript:void(0)\" onclick=\"hideMpAnswer(this, '".CUtil::JSEscape($module[
"ID"]).
"')\" ".
270 "style=\"float: right !important; font-size: 0.8em !important;\">".
GetMessage(
"top_panel_ai_marketplace_hide").
"</a>".
271 "<a href=\"https://marketplace.1c-bitrix.".LANGUAGE_ID.
"/solutions/".$module[
"ID"].
"/#tab-rating-link\" target=\"_blank\" ".
272 "onclick=\"hideMpAnswer(this, '".CUtil::JSEscape($module[
"ID"]).
"')\">".
GetMessage(
"top_panel_ai_marketplace_add").
"</a>",
274 'HTML' =>
GetMessage(
"top_panel_ai_marketplace_descr",
array(
"#NAME#" => $module[
"NAME"],
"#ID#" => $module[
"ID"])).$script,
281 unset($arModules[$id]);
284 if($mCnt !=
count($arModules))
292 foreach(
GetModuleEvents(
"main",
"OnAdminInformerInsertItems",
true) as $arHandler)
295 return count(self::$items);
change_password_forgot_link login popup forget pas AUTH_GOTO_FORGOT_FORM login btn wrap change_password_button login popup link login popup return auth javascript
static SetOptionString($module_id, $name, $value="", $desc=false, $site="")
bx popup label bx width30 PAGE_NEW_MENU_NAME text width
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
bx_acc_lim_group_list limitGroupList[] multiple<?=$group[ 'ID']?> ID selected margin top
hidden mSiteList<?=htmlspecialcharsbx(serialize( $siteList))?><?=htmlspecialcharsbx( $siteList[ $j]["ID"])?> _Propery<? if(((COption::GetOptionString( $module_id, "different_set", "N")=="Y") &&( $j !=0))||(COption::GetOptionString( $module_id, "different_set", "N")=="N")) echo "display: none;"?> top adm detail content cell l top adm detail content cell r heading center center ID left
ExecuteModuleEventEx($arEvent, $arParams=[])
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
<? endif;?> window document title
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
adm detail iblock types adm detail iblock list tr_SITE_ID display