15 while ($arLang = $rsLangs->Fetch())
17 $CACHE_MANAGER->Clean(
"admin_notify_list_" . $arLang[
'LANGUAGE_ID']);
47 if (!isset(
$arFields[
'NOTIFY_TYPE']) || !in_array(
$arFields[
'NOTIFY_TYPE'], [self::TYPE_NORMAL, self::TYPE_ERROR]))
49 $arFields[
'NOTIFY_TYPE'] = self::TYPE_NORMAL;
56 'ENABLE_CLOSE' =>
$arFields[
'ENABLE_CLOSE'],
57 'PUBLIC_SECTION' =>
$arFields[
'PUBLIC_SECTION'],
58 'NOTIFY_TYPE' =>
$arFields[
'NOTIFY_TYPE'],
60 $ID =
$DB->Add(
'b_admin_notify', $arFields_i, [
'MESSAGE']);
66 foreach (
$arFields[
'LANG'] as $strLang => $strMess)
71 'MESSAGE' => trim($strMess),
73 $DB->Add(
'b_admin_notify_lang', $arFields_l, [
'MESSAGE']);
82 private static function CheckFields(
$arFields)
88 $aMsg[] = [
'id' =>
'MODULE_ID',
'text' =>
GetMessage(
'MAIN_AN_ERROR_MODULE_ID')];
92 $aMsg[] = [
'id' =>
'TAG',
'text' =>
GetMessage(
'MAIN_AN_ERROR_TAG')];
96 $aMsg[] = [
'id' =>
'MESSAGE',
'text' =>
GetMessage(
'MAIN_AN_ERROR_MESSAGE')];
100 $aMsg[] = [
'id' =>
'ENABLE_CLOSE',
'text' =>
GetMessage(
'MAIN_AN_ERROR_ENABLE_CLOSE')];
105 $e =
new CAdminException($aMsg);
106 $GLOBALS[
'APPLICATION']->ThrowException($e);
122 $strSql =
"DELETE FROM b_admin_notify_lang WHERE NOTIFY_ID = " .
$ID;
125 $strSql =
"DELETE FROM b_admin_notify WHERE ID = " .
$ID;
136 $strSql =
"DELETE FROM b_admin_notify_lang WHERE NOTIFY_ID IN (SELECT ID FROM b_admin_notify WHERE MODULE_ID = '" .
$DB->ForSQL(
$moduleId) .
"')";
139 $strSql =
"DELETE FROM b_admin_notify WHERE MODULE_ID = '" .
$DB->ForSQL(
$moduleId) .
"'";
150 $tagId = (string)$tagId;
156 $strSql =
"DELETE FROM b_admin_notify_lang WHERE NOTIFY_ID IN (SELECT ID FROM b_admin_notify WHERE TAG like '%" .
$DB->ForSQL($tagId) .
"%')";
159 $strSql =
"DELETE FROM b_admin_notify WHERE TAG like '%" .
$DB->ForSQL($tagId) .
"%'";
171 if (
$CACHE_MANAGER->Read(86400,
"admin_notify_list_" . LANGUAGE_ID))
173 $arNotify =
$CACHE_MANAGER->Get(
"admin_notify_list_" . LANGUAGE_ID);
176 if ($arNotify ===
false)
181 'a' => [
'href',
'style'],
191 $ar[
"MESSAGE"] = $CBXSanitizer->SanitizeHtml((
'' !=
$ar[
'MESSAGE_LANG'] ?
$ar[
'MESSAGE_LANG'] :
$ar[
'MESSAGE']));
194 $CACHE_MANAGER->Set(
"admin_notify_list_" . LANGUAGE_ID, $arNotify);
198 foreach ($arNotify as $value)
200 $className = ($value[
'NOTIFY_TYPE'] == self::TYPE_ERROR ?
'adm-warning-block adm-warning-block-red' :
'adm-warning-block');
201 $html .=
'<div class="' . $className .
'" data-id="' . (int)$value[
'ID'] .
'" data-ajax="Y"><span class="adm-warning-text">' . $value[
'MESSAGE'] .
'</span><span class="adm-warning-icon"></span>' . ($value[
'ENABLE_CLOSE'] ==
'Y' ?
'<span onclick="BX.adminPanel ? BX.adminPanel.hideNotify(this.parentNode) : BX.admin.panel.hideNotify(this.parentNode);" class="adm-warning-close"></span>' :
'') .
'</div>';
233 if ((
string)
$val ==
'' ||
$val ==
'NOT_REF')
237 switch (strtoupper(
$key))
252 $arSqlSearch[] = (
$val ==
'Y') ?
"AN.ENABLE_CLOSE='Y'" :
"AN.ENABLE_CLOSE='N'";
255 $strSelect .=
", ANL.MESSAGE as MESSAGE_LANG";
256 $strFrom =
'LEFT JOIN b_admin_notify_lang ANL ON (AN.ID = ANL.NOTIFY_ID AND ANL.LID = \'' .
$DB->ForSQL(
$val) .
'\')
';
258 case 'PUBLIC_SECTION
':
259 $arSqlSearch[] = ($val == 'Y
') ? "AN.PUBLIC_SECTION='Y
'" : "AN.PUBLIC_SECTION='N
'";
265 foreach ($arSort as $key => $val)
267 $ord = (strtoupper($val) <> 'ASC
' ? 'DESC
' : 'ASC
');
268 switch (strtoupper($key))
271 $sOrder .= ', AN.ID
' . $ord;
274 $sOrder .= ', AN.MODULE_ID
' . $ord;
277 $sOrder .= ', AN.ENABLE_CLOSE
' . $ord;
284 $sOrder = 'AN.ID DESC
';
287 $strSqlOrder = ' ORDER BY
' . trim($sOrder, ',
');
288 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
290 $strSql = "SELECT " . $strSelect . " FROM b_admin_notify AN " . $strFrom . " WHERE " . $strSqlSearch . " " . $strSqlOrder;
291 $res = $DB->Query($strSql);
static GetList($arSort=[], $arFilter=[])
static DeleteByModule($moduleId)
static DeleteByTag($tagId)
static GetList($by="sort", $order="asc", $arFilter=[])
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
if(empty($signedUserToken)) $key
$GLOBALS['_____370096793']