- Модуль: security
- Путь к файлу: ~/bitrix/modules/security/classes/general/filter_mask.php
- Класс: CSecurityFilterMask
- Вызов: CSecurityFilterMask::Update
static function Update($arMasks)
{
global $DB, $CACHE_MANAGER;
if(is_array($arMasks))
{
$res = $DB->Query("DELETE FROM b_sec_filter_mask", false, "File: ".__FILE__."
Line: ".__LINE__);
if($res)
{
$arLikeSearch = array("?", "*", ".");
$arLikeReplace = array("_", "%", "\.");
$arPregSearch = array("\", ".", "?", "*", "'");
$arPregReplace = array("/", ".", ".", ".*?", "'");
$added = array();
$i = 10;
foreach($arMasks as $arMask)
{
$site_id = trim($arMask["SITE_ID"]);
if($site_id == "NOT_REF")
$site_id = "";
$mask = trim($arMask["MASK"]);
if($mask && !array_key_exists($mask, $added))
{
$arMask = array(
"SORT" => $i,
"FILTER_MASK" => $mask,
"LIKE_MASK" => str_replace($arLikeSearch, $arLikeReplace, $mask),
"PREG_MASK" => str_replace($arPregSearch, $arPregReplace, $mask),
);
if($site_id)
$arMask["SITE_ID"] = $site_id;
$DB->Add("b_sec_filter_mask", $arMask);
$i += 10;
$added[$mask] = true;
}
}
if(CACHED_b_sec_filter_mask !== false)
$CACHE_MANAGER->CleanDir("b_sec_filter_mask");
}
}
return true;
}