• Мы рекомендуем отключить отображение панели настроек для посетителей Вашего сайта, как это сделать описано в следующем пункте FAQ

    Если же Вам все таки необходима панель настроек для всех посетителей, то инструкция ниже. 

    Важно! Данные работы рекомендуется производить только имея компетенцию разработчика

    Необходимо в файл /bitrix/php_interface/SITE_ID/init.php (где SITE_ID - это идентификатор соответствующего сайта) добавить следующий код

    Содержимое файла
    <?
    use Bitrix\Main\Data\StaticCacheProvider;
    use Bitronic2\Catalog\CookiesUtils;
    use Bitronic2\Mobile;


    class CacheProvider extends StaticCacheProvider {
        public function getCachePrivateKey() {
            return self::getCachePrefix();
        }

        public function setUserPrivateKey() {
            \CHTMLPagesCache::setUserPrivateKey(self::getCachePrefix(), 0);
        }

        public function isCacheable() {
            return true;
        }

        public function onBeforeEndBufferContent() {

        }

        static $arSettings;
        static $isDefault = false;

        public static function getCachePrefix() {
            global $rz_b2_options;
            static $isMobile;
            $arSettings = self::getSettings();
            if (!isset($isMobile)) {
                Mobile::Init();
                $isMobile = Mobile::isMobile();
            }
            
            $key = (($isMobile) ? 'mobile' : 'desktop') . serialize($arSettings) . $demoId;

            if(is_array($rz_b2_options)
            && is_array($rz_b2_options['GEOIP'])
            && is_array($rz_b2_options['GEOIP']['ITEM'])) {
                $key .= $rz_b2_options['GEOIP']['ITEM']['ID'];
            }
            if (defined("IS_CATALOG_LIST") && IS_CATALOG_LIST) {
                $view = CookiesUtils::getView();
                $page_count = CookiesUtils::getPageCount();
                $sort = CookiesUtils::getSort();
                $sort = $sort['ACTIVE'];
                $by = CookiesUtils::getSortBy();
                $key .= "/view_{$view}_pagecount_{$page_count}_sort_{$sort}_by_{$by}/";
            }
            return md5($key);
        }

        public static function getSettings() {
            if (!empty(self::$arSettings)) {
                return self::$arSettings;
            } else {
                \Bitrix\Main\Loader::includeModule('yenisite.bitronic2');
                \CBitrixComponent::includeComponentClass("yenisite:settings.panel");
                $arSettingsDefault = \CRZBitronic2Settings::getSettingsArray();
                self::$arSettings = \CYSSettingsPanel::getSettings($arSettingsDefault);
                $isDefault = true;
                foreach (self::$arSettings as $key => $value) {
                    if ($arSettingsDefault[$key]['default'] != $value) {
                        $isDefault = false;
                        break;
                    }
                }
                self::$isDefault = $isDefault;
                return self::$arSettings;
            }
        }

        public static function getObject() {
            \CHTMLPagesCache::setUserPrivateKey(self::getCachePrefix(), 0);
            return new self();
        }

    }

    где необходимо "yenisite.bitronic2" при необходимости заменить на код решения, который Вы используете.

    Включение данной возможности приводит к значительному увеличению объема композитного кеша (на каждый набор параметров в панели настроек будет создаваться отдельный кеш композита)