Поддержка серверов

CSecurityIPRule::UpdateRuleMasks: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=177119

//    CSecurityIPRule::UpdateRuleMasks()
//    /bitrix/modules/security/classes/general/iprule.php:159

    public static function UpdateRuleMasks($IPRULE_ID, $arInclMasks = false, $arExclMasks = false)
    {
        global $DB, $CACHE_MANAGER;
        $IPRULE_ID = intval($IPRULE_ID);
        if(!$IPRULE_ID)
            return false;

        $arLikeSearch = array("?", "*", ".");
        $arLikeReplace = array("_", "%", "\\.");
        $arPregSearch = array("\\", ".", "?", "*", "'");
        $arPregReplace = array("/", "\\.", ".", ".*?", "\\'");

        if(is_array($arInclMasks))
        {
            $res = $DB->Query("DELETE FROM b_sec_iprule_incl_mask WHERE IPRULE_ID = ".$IPRULE_ID, false, "File: ".__FILE__."<br>Line: ".__LINE__);
            if($res)
            {

                $added = array();
                $i = 10;
                foreach($arInclMasks as $mask)
                {
                    $mask = trim($mask);
                    if($mask && !array_key_exists($mask, $added))
                    {
                        $arMask = array(
                            "ID" => 1,
                            "IPRULE_ID" => $IPRULE_ID,
                            "RULE_MASK" => $mask,
                            "SORT" => $i,
                            "LIKE_MASK" => str_replace($arLikeSearch, $arLikeReplace, $mask),
                            "PREG_MASK" => str_replace($arPregSearch, $arPregReplace, $mask),
                        );
                        $DB->Add("b_sec_iprule_incl_mask", $arMask);
                        $i += 10;
                        $added[$mask] = true;
                    }
                }

                if(CACHED_b_sec_iprule !== false)
                    $CACHE_MANAGER->CleanDir("b_sec_iprule");
            }
        }

        if(is_array($arExclMasks))
        {
            $res = $DB->Query("DELETE FROM b_sec_iprule_excl_mask WHERE IPRULE_ID = ".$IPRULE_ID, false, "File: ".__FILE__."<br>Line: ".__LINE__);
            if($res)
            {

                $added = array();
                $i = 10;
                foreach($arExclMasks as $mask)
                {
                    $mask = trim($mask);
                    if($mask && !array_key_exists($mask, $added))
                    {
                        $arMask = array(
                            "ID" => 1,
                            "IPRULE_ID" => $IPRULE_ID,
                            "RULE_MASK" => $mask,
                            "SORT" => $i,
                            "LIKE_MASK" => str_replace($arLikeSearch, $arLikeReplace, $mask),
                            "PREG_MASK" => str_replace($arPregSearch, $arPregReplace, $mask),
                        );
                        $DB->Add("b_sec_iprule_excl_mask", $arMask);
                        $i += 10;
                        $added[$mask] = true;
                    }
                }

                if(CACHED_b_sec_iprule !== false)
                    $CACHE_MANAGER->CleanDir("b_sec_iprule");
            }
        }

        return true;
    }
';

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение