Entrez dans l’univers des AOP laitières au travers de divers mini-vidéos, découvrez ce signe officiel de qualité.
Une AOP
C’est quoi déjà ?
AOP laitière, Appellation d’Origine Protégée
Des hommes et des femmes engagés
53000
Emplois
Une qualité certifiée
6000
Contrôles par an
Voyagez au cœur des terroirs AOP :
Sélectionnez une région et découvrez chacun des 51 fromages, beurres et crèmes
';
html += '
' +aopProduct.productTitle+ '
';
html += '';
html += '
';
}
});
// On injécte la template créer dans un div spécifique
jQuery('#contentHover > .row').append(html);
// On affiche le div on hover sur une région
jQuery('#contentHover > .row').show();
// On n'affiche pas le div contentFixed si on et on hover sur une région
jQuery('#contentFixed').hide();
} );
// On mouseout sur une région
pathMap.addEventListener('mouseout', function (e) {
// On vide la contenue du div
jQuery('#contentHover > .row').empty();
// On affiche la contenue du div contentFixed si il y à des élements
jQuery('#contentFixed').show();
} );
/**
*click sur une région
*/
pathMap.addEventListener('click', function (e) {
//@changelog 2021-08-23 [FIX] (Adrien) on marque le path SVG comme active
removeClassSvgPath($("#regions > g"), "active");
addClassSvgPath($(this), "active");
// On vide la contenue du div contentFixed
jQuery('#contentFixed > .row').empty();
// On n'affiche plus le div contentHover car on et dans un click
jQuery('#contentHover > .row').hide();
// Récupération de l'id
var id = this.id;
// En remplace les '_' dans l'id récupérer par '-'
var replace = id.replace(/_/g, "-");
var html = '';
// On fait un boucle de aopProducts qui est une array objet
aopProducts.forEach(function (aopProduct) {
/*
* élement catégory dans aopProduct
* return string
*/
var category = aopProduct.category;
// on modifie la valuer string de category to array
var array = category.split(',');
/*
* on test si id et includes dans la tableau array
* si true alors on créer la template
*/
if (array.includes(replace) == true) {
html += '
';
html += '
';
html += '

';
html += '
';
html += '
' +aopProduct.productTitle+ '
';
html += '
';;
}
});
// On injécte la template créer dans un div spécifique
jQuery('#contentFixed > .row').append(html);
jQuery('#contentFixed').addClass('fixedRow');
// On affiche le div on click sur une région
jQuery('#contentFixed').show();
//@changelog 2021-10-12 [EVOL] (Adrien) au click sur mobile on redirige vers les région
var regionUrl = regionBaseUrl+"?_sft_region="+replace+"#product_result";
if(spe.BREAK_WIDTH_MOBILE > $(window).width())
{
window.location = regionUrl;
}
});
//@changelog 2021-09-23 [FIX] (Adrien) désactivation du hover sur les régions sans produit
var zoneHasProduct = false;
$.each(aopProducts, function(i, data)
{
if(data.category == pathMap.id)
{
zoneHasProduct = true;
return false;
}
});
if(zoneHasProduct == false)
{
addClassSvgPath($("#"+pathMap.id), "disable-hover");
}
});
// On test si il y à un click sur une région
jQuery('#regions > g').click(function(){
// contentFixed = Récupération de tout les élement dans le div '.fixedRow'
// contentRowFixeds = Récupération de tout les élement dans le div '.content_hover_click'
var contentFixed = document.querySelectorAll('.fixedRow');
var contentRowFixeds = contentFixed[0].querySelectorAll('.content_hover_click');
// On fait un boucle de contentRowFixeds qui est une array objet
contentRowFixeds.forEach(function (contentRowFixed) {
// Si la sourie passe une fromage
contentRowFixed.addEventListener('mouseover', function (e)
{
creatActiveProductview(jQuery(this), false);
});
// @changelog 2021-08-23 [EVOL] (Adrien) clique sur résumé de produit
contentRowFixed.addEventListener('click', function(e)
{
//
var productData = getProductDataById(jQuery(this).attr('data-id'));
//
creatActiveProductview(jQuery(this), true);
//@changelog 2021-10-04 [EVOL] (Adrien) gestion de l'état actif
$(".content_hover_click").removeClass("active");
$(contentRowFixed).addClass("active");
//@changelog 2021-10-18 [FIX] (Adrien) redirection vers single
window.location = productData.linkProduct;
});
})
});
$("#regions > g").on("mouseover", "text", function(e)
{
removeClassSvgPath($("#regions > g"), "sfhover");
addClassSvgPath($(e.delegateTarget), "sfhover");
});
$("#regions > g").on("mouseout", "text", function(e)
{
removeClassSvgPath($("#regions > g"), "sfhover");
});
function creatActiveProductview($resum, viewPersistante)
{
//
var idProduct = $resum.attr('data-id');
var productData = getProductDataById(idProduct);
//
var classActive = "";
if(viewPersistante)
{
classActive = "persistante";
}
//@changelog 2021-08-23 [EVOL] (Adrien) au hover sur un resumé de produit on affiche la zone
var idZoneSvg = productData["idZoneSvg"];
if(idZoneSvg)
{
removeClassSvgPath($("#AOP > g"), "sfhover");
addClassSvgPath($("#AOP #"+idZoneSvg), "sfhover");
}
}
function addClassSvgPath($element, classCss)
{
$element.each(function()
{
var elemClassCss = $(this).attr("class") ? $(this).attr("class") : "";
//si l'element n'a pas déjà la classe
if( elemClassCss.indexOf(classCss) == -1 )
{
var newClass = elemClassCss+" "+classCss;
$(this).attr("class", newClass);
}
});
}
function removeClassSvgPath($element, classCss)
{
$element.each(function()
{
var elemClassCss = $(this).attr("class") ? $(this).attr("class") : "";
//a t'il déjà la classe
if( elemClassCss.indexOf(classCss) != -1 )
{
var newClass = elemClassCss.replace(" "+classCss, "");
newClass = elemClassCss.replace(classCss, "");
$(this).attr("class", newClass);
}
});
}
/**
* getProductDataById
*/
function getProductDataById(id)
{
var result = false;
$.each(aopProducts, function(i, productData)
{
if(productData.productId == id)
{
result = productData;
return false;
}
});
return result;
}