Сookie-файл — текстовый файл, сохраненный в браузере компьютера (мобильного устройства) пользователя интернет-сайта при его посещении пользователем для отражения совершенных им действий, используемые для обеспечения или повышения работоспособности сайтов, а также для получения аналитической информации.
Технические (обязательные) cookie-файлы
Файлы, осуществляющие хранение информации для обеспечения функционирования веб-ресурсов, информацию о выборе пользователя относительно принятия/отклонения cookie-файлов и не использующие какую-либо информацию о пользователе, которая может быть использована в маркетинговых целях или для учета посещаемых сайтов в сети Интернет. Отключение данного типа cookie-файлов может привести к ограничению доступа пользователя к функциональным возможностям веб-ресурса
Функциональные cookie-файлы
Файлы, осуществляющие хранение информации о выборе пользователя (имя пользователя, язык, регион и т.д.). Отключение функциональных cookie-файлов не оказывает влияния на работу веб-ресурса.
Аналитические cookie-файлы
Файлы, предназначенные для оценки работы веб-ресурсов и осуществляющие хранение информации о пользовательских предпочтениях и наиболее просматриваемых страницах веб-ресурса. Отключение аналитических cookie-файлов не оказывает влияние на работу веб-ресурса.
this.technicalVal = $('#checkbox1').attr("checked", false);
this.functionalVal = $('#functionalCookies').attr("checked", false);
this.analiticVal = $('#analyticalCookies').attr("checked", false);
},
checkboxClic (checkbox) {
var nodecheck = $(checkbox);
if(nodecheck.attr('checked')){
nodecheck.removeAttr('checked');
}else {
nodecheck.attr('checked', true);
}
this.actualizeValues();
},
setInitialConditionCheckbox( functionalCookies = false, analyticalCookies = true){
if(functionalCookies){
$('#functionalCookies').attr('checked', true);
}
if(analyticalCookies){
$('#analyticalCookies').attr('checked', true);
}
},
setInitialConditionCheckboxUnchecked(){
$('#functionalCookies').attr('checked', false);
$('#analyticalCookies').attr('checked', true);
}
})
}
};
class CookiesPageController {
// тут по сути будет логика управления куками на всех страницах
constructor (cookieFormoObj){
this.cookieFormControl = cookieFormoObj;
this.functionCookieList = ["_gcl_au", '_ym_uid'];
this.technicalCookieList = ['1sjjegm', 'PHPSESSID', 'BITRIX_USER_ID', 'BITRIX_SM_PK'];
this.analiticCookieList = ['_ga', '_fbp', '_gid', 'tmr_lvid', 'tmr_lvidTS', 'tmr_detect', '_ym_visorc', '_ym_isad', '_ym_d', 'bh', 'ymex', 'i', 'test_cookie', 'yuidss', 'yuidss', 'yabs-sid', 'yandexuid', '_dc_gtm_UA-231712873-1', "_gcl_au", '_ym_uid'];
this.analicticalRegulars = ["_ga_", "_ym_", "_gta", ]
this.cookiesObj = $.cookie();
// console.log($.cookie())
Object.assign(CookiesPageController.prototype, {
init() {
if($.cookie('agreeCookies') == 'disable') {
this.cookieFormControl.setInitialConditionCheckboxUnchecked();
} else if(!$.cookie('agreeCookies')) {
this.cookieFormControl.setInitialConditionCheckboxUnchecked();
} else {
let options = $.cookie('agreeCookies');
let optionsObj = options.split('|');
let check2 = optionsObj[1].replace(/2-/gi, '');
check2 = check2.replace(/undefined/gi, '');
let check3 = optionsObj[2].replace(/3-/gi, '');
check3 = check3.replace(/undefined/gi, '');
this.cookieFormControl.setInitialConditionCheckbox(check2, check3);
}
this.cookieFormControl.actualizeValues();
},
disableCookies () {
$.cookie('agreeCookies', 'disable', { expires: 30, path: '/' });
},
saveOptions() {
this.cookieFormControl.actualizeValues();
console.log(this.cookieFormControl.functionalVal);
console.log(this.cookieFormControl.analiticVal);
$.cookie('agreeCookies','1-checked|2-'+this.cookieFormControl.functionalVal+'|3-'+this.cookieFormControl.analiticVal, { expires: 30, path: '/' })
},
acceptCookies() {
console.log('accept');
$.cookie('agreeCookies','1-checked|2-checked|3-checked', { expires: 30, path: '/' });
this.cookieFormControl.acceptValues();
},
declineCookies() {
console.log('declineCookies');
$.cookie('agreeCookies','1-checked|2-undefined|3-undefined', { expires: 30, path: '/' });
this.cookieFormControl.declineValues();
},
actualizeCoockies () {
this.cookieFormControl.actualizeValues();
this.unsetCoociesAfterActualize();
},
unsetCoociesAfterActualize() {
this.cookiesObj = $.cookie();
console.log(this.cookieFormControl);
console.log(this.cookiesObj);
for(name in this.cookiesObj){
if(!this.cookieFormControl.functionalVal){
if(this.functionCookieList.includes(name)){
console.log(name);
let cRes1 = $.removeCookie(name, { path: '/' , domain : '.autolight.by'});
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
console.log(cRes1);
}
}
if(!this.cookieFormControl.analiticVal){
if(this.analiticCookieList.includes(name)){
console.log(name);
let cRes2 = $.removeCookie(name, { path: '/' , domain : '.autolight.by'});
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
console.log(cRes2);
} else {
let isSubStr = false;
for(let i = 0; i < this.analicticalRegulars.length; i++){
if(name.includes(this.analicticalRegulars[i])){
isSubStr = true;
break;
}
}
if(isSubStr){
console.log(name);
let cRes3 = $.removeCookie(name, { path: '/' , domain : '.autolight.by'});
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
console.log(cRes3);
}
}
}
}
}
})
}
}
$(document).ready(function (){
var formObj = new CookiesForm();
var cookiePC = new CookiesPageController(formObj);
//$.removeCookie('agreeCookies');
setTimeout(function(){
cookiePC.init();
cookiePC.actualizeCoockies()
}, 5000);
console.log('settingsModal');
$("body").on("click", ".js-coockie-cancel", function (e) {
e.preventDefault();
cookiePC.declineCookies();
location.reload();
});
$("body").on("click", ".js-coockie-agree", function (e) {
e.preventDefault();
cookiePC.acceptCookies();
location.reload();
});
$("body").on("click", ".buttonOpenSettingsCookie", function (e) {
e.preventDefault();
$('.cookies-setting').show();
});
$("body").on("click", ".js-cookies-modal__close", function (e) {
e.preventDefault();
$('.cookies-setting').hide();
});
$('#cookies-save-btn').click(function () {
cookiePC.saveOptions();
location.reload();
});
$('.cookies-setting input').click(function(node){
formObj.checkboxClic(node.currentTarget);
});
$('.cookies-setting__close').click(() => {
$('.cookies-setting').hide();
})
if(!$.cookie('agreeCookies') || $.cookie('agreeCookies') == "disable"){
$('#cookie-modal').show();
}
else{
$('#cookie-modal').hide();
}
});
});