1558 lines
49 KiB
PHP
Executable File
1558 lines
49 KiB
PHP
Executable File
<?php
|
|
header("Content-Type: application/javascript");
|
|
?>
|
|
|
|
// ---------------------------------------------------
|
|
// Si un élément est stocké, le surligner apres chargement new page
|
|
// ---------------------------------------------------
|
|
window.addEventListener('load', function () {
|
|
debugLocal=0;
|
|
const id=localStorage.getItem('selectedElementId');
|
|
if (!id) return;
|
|
|
|
const el=document.getElementById(id);
|
|
if (el) {
|
|
el.classList.add('element-selected');
|
|
if (debugLocal==1) alert('classe element-selected ajoutée');
|
|
}
|
|
});
|
|
|
|
// ---------------------------------------------------
|
|
// Si un élément est stocké, le retirer et enlever sa classe
|
|
// ---------------------------------------------------
|
|
function deselectElementAll () {
|
|
document.querySelectorAll('.element-selected')
|
|
.forEach(el => el.classList.remove('element-selected'));
|
|
alert('fin deselect');
|
|
}
|
|
|
|
// ---------------------------------------------------
|
|
// Si un élément est stocké, le retirer et enlever sa classe
|
|
// ---------------------------------------------------
|
|
function deselectElement (element) {
|
|
const storedId=localStorage.getItem('selectedElementId');
|
|
if (storedId) {
|
|
const prevEl=document.getElementById(storedId);
|
|
if (prevEl) {
|
|
prevEl.classList.remove('element-selected');
|
|
}
|
|
localStorage.removeItem('selectedElementId');
|
|
}
|
|
}
|
|
|
|
// ---------------------------------------------------
|
|
// Si clic sur menu contextuel, ajouter la class selected
|
|
// ---------------------------------------------------
|
|
function selectElement (element) {
|
|
if(element) {
|
|
element.classList.add('element-selected');
|
|
// Sauvegarde l'élément sélectionné
|
|
localStorage.setItem('selectedElementId', element.id);
|
|
}
|
|
}
|
|
|
|
// ---------------------------------------------------
|
|
// Gérer la position
|
|
// ---------------------------------------------------
|
|
function gererPos (d,e) {
|
|
var debugLocal=0;
|
|
var leftPosition=0;
|
|
var topPosition=0;
|
|
|
|
// const menuWidth=d.offsetWidth;
|
|
// const menuHeight=d.offsetHeight;
|
|
|
|
const windowWidth=window.innerWidth;
|
|
const windowHeight=window.innerHeight;
|
|
|
|
menuWidth=290;
|
|
menuHeight=60;
|
|
// leftPosition=event.clientX;
|
|
// topPosition=event.clientY;
|
|
if (e && e.clientX) { leftPosition=e.clientX; } else if (e && e.pageX) { leftPosition=e.pageX; }
|
|
|
|
// prise en compte scroll
|
|
// leftPosition=e.pageX;
|
|
// topPosition =e.pageY;
|
|
if (e && e.pageY) { topPosition=e.pageY; } else if (e && e.clientY) { topPosition=e.clientY; }
|
|
|
|
if (debugLocal == 1 ) alert ("X : " +leftPosition+ " Y : " +topPosition+ " menuWidth : " +menuWidth+ " windowWidth : " +windowWidth+ " menuHeight : " +menuHeight+ " windowHeight : " +windowHeight);
|
|
|
|
// --------------------------------------
|
|
// left position
|
|
// --------------------------------------
|
|
if (leftPosition !== null && leftPosition !== undefined) {
|
|
if (leftPosition + menuWidth > windowWidth) {
|
|
leftPosition=windowWidth - menuWidth ;
|
|
}
|
|
if (leftPosition < 10) leftPosition=menuWidth;
|
|
d.style.left= leftPosition+ "px";
|
|
}
|
|
|
|
// --------------------------------------
|
|
// top position
|
|
// --------------------------------------
|
|
if (topPosition !== null && topPosition !== undefined) {
|
|
// const left=e.pageX; // clientX + scrollX
|
|
// topPosition =e.pageY; // clientY + scrollY
|
|
// if (topPosition + menuHeight > windowHeight) {
|
|
// topPosition=windowHeight - 30;
|
|
// }
|
|
if (topPosition < 10) {topPosition=menuHeight };
|
|
d.style.top=(topPosition+20)+"px";
|
|
}
|
|
|
|
if (debugLocal == 1 ) alert ("X2 : " +leftPosition+ " Y2 : " +topPosition+ " menuWidth : " +menuWidth+ " windowWidth : " +windowWidth+ " menuHeight : " +menuHeight+ " windowHeight : " +windowHeight);
|
|
}
|
|
|
|
// ---------------------------------------------------
|
|
// Menus contextuels
|
|
// ---------------------------------------------------
|
|
document.addEventListener("contextmenu", function (event) {
|
|
event.preventDefault(); // empêche le menu contextuel du navigateur
|
|
});
|
|
|
|
function resetMenuContextuel() {
|
|
if (element.parentNode) {
|
|
d.onclick = function(e) {
|
|
element.parentNode.removeChild(d);
|
|
};
|
|
}
|
|
|
|
document.body.onclick = function(e) {
|
|
try {
|
|
document.body.removeChild(d);
|
|
} catch (err) {}
|
|
};
|
|
}
|
|
|
|
// ---------------------------------------------------
|
|
// Styles + contenu
|
|
// ---------------------------------------------------
|
|
function mContextuel ( element, nomCss, sectionTxtNom, numTxt, event ) {
|
|
|
|
// ---------------------------------------------------
|
|
// element : l'item ou le menu apparait
|
|
// nomCss : nom du style final
|
|
// sectionTxtNom : tableau de langueNav ou famille de style -> pour contenu
|
|
// numTxt : numero dans le tableau sectionTxtNom / N° de produit / categorie ou s.categorie.
|
|
|
|
// On déduit :
|
|
// ==> textesAffSection (integer) sera determiné aussi par sous_menu_mapping dans agencement en fonction du N° de sous-menu
|
|
// ==> voletCss sera determiné aussi par agencement en fonction du nom du style
|
|
// ==> les N° menus, previewObject, agencementOnglet...
|
|
// car on ne les a pas dans les fonctionsGene, et ici on veut une fonction le plus générique possible, donc on peut pas d'appels en dur spécifique
|
|
// ---------------------------------------------------
|
|
|
|
debugLocal=0;
|
|
if (debugLocal==1) alert('mContextuel : param reçus => element=' +element.id+ ' | nomCss=' +nomCss+ ' | sectionTxtNom=' +sectionTxtNom+ ' | numTxt=' +numTxt);
|
|
|
|
// ---------------------------------------------------
|
|
// Ne pas ouvrir plusieurs à la fois si parents
|
|
// ---------------------------------------------------
|
|
if (event) {
|
|
event.stopPropagation(); // ← Arrête la propagation vers les parents
|
|
event.preventDefault(); // ← Optionnel : bloque le menu natif
|
|
}
|
|
|
|
// ---------------------------------------------------
|
|
// Ne supporte pas les #
|
|
// ---------------------------------------------------
|
|
if (nomCss.substr(0,1 )=="#") {nomCss=nomCss.substr(1, nomCss.length); }
|
|
if (debugLocal==2) alert("nomCss sans #=" + nomCss);
|
|
|
|
// ---------------------------------------------------
|
|
// Créer le menu
|
|
// ---------------------------------------------------
|
|
var d=document.createElement('div');
|
|
d.setAttribute('class', 'mContextMenu');
|
|
d.setAttribute('id', 'menuContextuel');
|
|
element.style.border="2px dashed purple";
|
|
element.style.zIndex=102;
|
|
if(element.parentNode) element.parentNode.style.zIndex=101;
|
|
|
|
// ---------------------------------------------------
|
|
// Supprimer le menu contextuel on click body ou lui même
|
|
// ---------------------------------------------------
|
|
if(element.parentNode) d.onclick=function(e) { element.parentNode.removeChild(d); }
|
|
document.body.onclick=function(e) { try{ element.parentNode.removeChild(d); } finally{} }
|
|
|
|
// ---------------------------------------------------
|
|
// Gérer la position
|
|
// ---------------------------------------------------
|
|
gererPos(d, event);
|
|
|
|
// ---------------------------------------------------
|
|
// Gérer les parametres d'appel complémentaires par defaut
|
|
// ---------------------------------------------------
|
|
numeroMenuPrpal=0;
|
|
numeroSousMenu=1;
|
|
previewObject=0;
|
|
isEspace=0;
|
|
agencementOnglet=2;
|
|
action='';
|
|
textesAffSection=1;
|
|
theNumCss=0;
|
|
theVoletCss='';
|
|
idLanguenav='';
|
|
|
|
// ---------------------------------------------------
|
|
// Créer le sous menu contenu
|
|
// ---------------------------------------------------
|
|
var p10=document.createElement('p');
|
|
d.appendChild(p10);
|
|
p10.setAttribute('class', 'mContextItem');
|
|
|
|
//libellé par defaut
|
|
p10.innerHTML="Modifier le texte";
|
|
|
|
// ---------------------------------------------------
|
|
// Déduire les param manquants
|
|
// ---------------------------------------------------
|
|
|
|
// On utilise sectionTxtNom pour definir les parametres d'appels, puis on utilisera le nom de style après si besoin de sous styles
|
|
switch (sectionTxtNom) {
|
|
|
|
//titre en img, titre en txt, logo
|
|
case 'Eléments entête':
|
|
case 'titre':
|
|
theVoletCss="Eléments d'entête";
|
|
textesAffSection=6;
|
|
numeroMenuPrpal=0;
|
|
break;
|
|
|
|
case 'menu':
|
|
//accueil
|
|
if(numTxt==0 ) {
|
|
numeroSousMenu=1;
|
|
numeroMenuPrpal=0;
|
|
// idLanguenav=79;
|
|
}
|
|
//catalogue
|
|
else if(numTxt==1 || numTxt==2 || numTxt==3 || numTxt==4 || numTxt==5 || numTxt==28 || numTxt==30 || numTxt==35 ) {
|
|
// if(numTxt==2) numeroSousMenu=10;
|
|
// else if(numTxt==3) numeroSousMenu=11;
|
|
// else
|
|
if(numTxt!=1) numeroSousMenu=numTxt;
|
|
else { numeroSousMenu=0;}
|
|
numeroMenuPrpal=1;
|
|
idLanguenav=1;
|
|
}
|
|
//client
|
|
else if(numTxt==6 || numTxt==7 || numTxt==8 || numTxt==9 || numTxt==10 || numTxt==11 ) {
|
|
if(numTxt!=6) numeroSousMenu=numTxt;
|
|
else { numeroSousMenu=0;}
|
|
numeroMenuPrpal=6;
|
|
idLanguenav=298;
|
|
}
|
|
//panier
|
|
else if(numTxt==12 || numTxt==13 || numTxt==14 || numTxt==15 ) {
|
|
if(numTxt!=12) numeroSousMenu=numTxt; //mdepaie
|
|
else numeroSousMenu=0; //panier
|
|
numeroMenuPrpal=12; //espace panier
|
|
idLanguenav=79;
|
|
}
|
|
//infos
|
|
else if(numTxt==16 || numTxt==17 || numTxt==18 || numTxt==19 ) {
|
|
numeroSousMenu=numTxt;//ksm
|
|
numeroMenuPrpal=16;
|
|
idLanguenav=85;
|
|
}
|
|
else {
|
|
numeroMenuPrpal=0;
|
|
numeroSousMenu=101;
|
|
}
|
|
|
|
if(numTxt==0 || numTxt==1 || numTxt==6 || numTxt==12 || numTxt==16) { isEspace =1; agencementOnglet=1; }
|
|
else { isEspace =0; agencementOnglet=2 }
|
|
|
|
//il faut mettre le volet que si menu deroulant pas dans les pages
|
|
if(nomCss!='titresInfos' && nomCss!='panierTitre' && nomCss !='titresCli' && nomCss !='titresCat' && nomCss !='connTitre' ) theVoletCss="Menu déroulant";
|
|
textesAffSection=5; //menu
|
|
break;
|
|
|
|
case 'Catalogue':
|
|
case 'catalogue':
|
|
case 'catalog':
|
|
theVoletCss="Catalogue"; // pour produits / gondoles, sinon sera chargé en menu familles
|
|
textesAffSection=1;
|
|
numeroMenuPrpal=1;
|
|
numeroSousMenu=1;
|
|
break;
|
|
|
|
case 'client':
|
|
theVoletCss="Clients";
|
|
textesAffSection=3;
|
|
numeroMenuPrpal=6;
|
|
numeroSousMenu=7;//par defaut connection
|
|
break;
|
|
|
|
case 'nav':
|
|
theVoletCss="Connexion";
|
|
textesAffSection=2;
|
|
numeroMenuPrpal=6;
|
|
numeroSousMenu=7;
|
|
break;
|
|
|
|
case 'panier':
|
|
theVoletCss="Panier";
|
|
textesAffSection=4;
|
|
numeroSousMenu=13;
|
|
numeroMenuPrpal=12;
|
|
|
|
case 'cde':
|
|
theVoletCss="Commandes";
|
|
textesAffSection=4;
|
|
numeroSousMenu=13;
|
|
numeroMenuPrpal=12;
|
|
break;
|
|
|
|
case 'contact':
|
|
theVoletCss="Informations";
|
|
if(numTxt > 0 && numTxt < 17) { numeroSousMenu=17; }//ksn en dessous de 61 ( au dessus = infos de banque)
|
|
if(numTxt==61) { numeroSousMenu=18; }//contact-->utilise des chams client (mauvaise pratique...), titre=celui de menu. 61 seul champ de contact utilisé
|
|
if(numTxt==0) { numeroSousMenu=19; }//cdv-->sont dans pages pas dans languenav, titre=celui de menu. 0 ne cooresponds pas c'est un flag pour aller sur pages
|
|
numeroMenuPrpal=16;
|
|
p10.innerHTML="Modifier le texte";
|
|
break;
|
|
|
|
case 'bouton':
|
|
textesAffSection=10;
|
|
break;
|
|
|
|
// case 'transverse':
|
|
// numeroMenuPrpal=40;
|
|
// break;
|
|
}
|
|
|
|
// debugLocal=0;
|
|
if (debugLocal==2) alert('Fin switch sectionTxtNom');
|
|
|
|
|
|
|
|
// ici on utilise nomCss pour les param qui sont unitaires
|
|
switch (nomCss) {
|
|
|
|
case 'body':
|
|
case 'bodyImg':
|
|
theNumCss=0;
|
|
p10.innerHTML="Modifier le corps de page";
|
|
break;
|
|
|
|
// Entête - logo -> modale
|
|
case 'logo':
|
|
theVoletCss="Eléments d'entête";
|
|
theNumCss=0;
|
|
numeroSousMenu=102;
|
|
p10.innerHTML="Modifier le logo";
|
|
// d.style.left='60px';
|
|
// d.style.top='34px';
|
|
break;
|
|
|
|
// Entête titre Img -> en modale
|
|
case 'eCol2':
|
|
theVoletCss="Structure d'entête";
|
|
nomCss='eCol2';
|
|
theNumCss=1;
|
|
textesAffSection=6;
|
|
numeroSousMenu=103;
|
|
p10.innerHTML="Modifier le titre";
|
|
break;
|
|
|
|
// Entête titre en Txt
|
|
case 'imgTitre':
|
|
theVoletCss="Eléments d'entête";
|
|
theNumCss=10;
|
|
textesAffSection=6;
|
|
numeroSousMenu=103;
|
|
p10.innerHTML="Modifier le titre";
|
|
break;
|
|
|
|
// Entête conteneur musique -< modale
|
|
case 'player':
|
|
theVoletCss="Eléments d'entête";
|
|
theNumCss=4;
|
|
numeroMenuPrpal=0; //site
|
|
numeroSousMenu=106; // musique
|
|
p10.innerHTML="Modifier la musique";
|
|
break;
|
|
|
|
// Entête - langue -> modale / le txt est menu
|
|
case 'drapeaux':
|
|
theVoletCss="Eléments d'entête";
|
|
numeroSousMenu=107;
|
|
p10.innerHTML="Modifier les langues";
|
|
d.style.width= '250px';
|
|
break;
|
|
|
|
// Entête - bannière -> modale
|
|
case 'bandeauImg':
|
|
theVoletCss="Eléments d'entête";
|
|
theNumCss=9;
|
|
numeroSousMenu=104;
|
|
p10.innerHTML="Modifier l'image bannière";
|
|
break;
|
|
|
|
// --------------------------------------------------
|
|
// Menu déroulant
|
|
// --------------------------------------------------
|
|
case 'menuDeroulantItem':
|
|
theNumCss=1;
|
|
p10.innerHTML="Modifier le menu";
|
|
break;
|
|
|
|
case 'textePpauxMenuDeroulant':
|
|
theNumCss=2;
|
|
agencementOnglet=1;
|
|
if(numTxt==0 || numTxt==1 || numTxt==6 || numTxt==12 || numTxt==16) { p10.innerHTML="Modifier l'espace"; }
|
|
else p10.innerHTML="Modifier le menu";
|
|
break;
|
|
|
|
case 'iconesPpauxMenuDeroulant':
|
|
theNumCss=3;
|
|
p10.innerHTML="Modifier l'icône";
|
|
break;
|
|
|
|
case 'sousMenuTexte':
|
|
theNumCss=10;
|
|
p10.innerHTML="Modifier le sous menu";
|
|
break;
|
|
|
|
// --------------------------------------------------
|
|
// Catalogue
|
|
// --------------------------------------------------
|
|
case 'rechBarre-container':
|
|
theVoletCss="Barre rechercher";
|
|
theNumCss=0;
|
|
numeroSousMenu=5;
|
|
// p10.innerHTML="Modifier la barre de recherche";
|
|
break;
|
|
|
|
case 'rechItem':
|
|
case 'rechInput':
|
|
case 'rechBtn':
|
|
theVoletCss="Barre rechercher";
|
|
theNumCss=2;
|
|
numeroSousMenu=5;
|
|
// p10.innerHTML="Modifier la zone de recherche";
|
|
break;
|
|
|
|
case 'affRes':
|
|
theNumCss=19;
|
|
break;
|
|
|
|
// Barre des promos : txt:menus, style:boutons
|
|
// itemBarrePromo n'est jamais appelé car il est conteneur dans fonction gene : voir after pour ajoputer MC dans ce cas mais risque usne agaz
|
|
case 'itemBarrePromo':
|
|
theVoletCss="Barre des promos";
|
|
theNumCss=1;
|
|
numeroMenuPrpal=1;
|
|
numeroSousMenu=2;
|
|
break;
|
|
|
|
case 'iconeBarrePromo':
|
|
theVoletCss="Barre des promos";
|
|
theNumCss=3;
|
|
textesAffSection=5;
|
|
numeroMenuPrpal=1;
|
|
numeroSousMenu=2;
|
|
p10.innerHTML="Modifier l'icône";
|
|
break;
|
|
|
|
case 'txtBarrePromo':
|
|
theVoletCss="Barre des promos";
|
|
theNumCss=2;
|
|
textesAffSection=5;
|
|
numeroMenuPrpal=1;
|
|
numeroSousMenu=2;
|
|
p10.innerHTML="Modifier le bouton";
|
|
break;
|
|
|
|
// Catégories
|
|
case 'familles-libelle':
|
|
theVoletCss="Menu familles";
|
|
theNumCss=3;
|
|
p10.innerHTML="Modifier la catégorie";
|
|
break;
|
|
|
|
case 'familles-img':
|
|
theVoletCss="Menu familles";
|
|
theNumCss=4;
|
|
p10.innerHTML="Modifier la catégorie";
|
|
break;
|
|
|
|
case 'categoriesItems':
|
|
theVoletCss="Menu catégories";
|
|
theNumCss=3;
|
|
p10.innerHTML="Modifier la sous-catégorie";
|
|
break;
|
|
|
|
case 'categoriesImages':
|
|
theVoletCss="Menu catégories";
|
|
theNumCss=4;
|
|
p10.innerHTML="Modifier la sous-catégorie";
|
|
break;
|
|
|
|
// Produits
|
|
case 'titresPrd':
|
|
theNumCss=4;
|
|
p10.innerHTML="Modifier le produit";
|
|
break;
|
|
|
|
case 'catalogueImgPrd':
|
|
theNumCss=5;
|
|
p10.innerHTML="Modifier le produit";
|
|
break;
|
|
|
|
case 'descProduits':
|
|
theNumCss=6;
|
|
p10.innerHTML="Modifier le produit";
|
|
break;
|
|
|
|
case 'prix':
|
|
theNumCss=12;
|
|
break;
|
|
|
|
case 'libCatalogueCell':
|
|
theNumCss=8;
|
|
p10.innerHTML="Modifier le produit";
|
|
break;
|
|
case 'libCatalogueCell':
|
|
theNumCss=9;
|
|
p10.innerHTML="Modifier le produit";
|
|
break;
|
|
|
|
case 'champsCatalogueCell':
|
|
theNumCss=10;
|
|
p10.innerHTML="Modifier le produit";
|
|
break;
|
|
|
|
case 'champsCatalogue':
|
|
theNumCss=11;
|
|
p10.innerHTML="Modifier le produit";
|
|
break;
|
|
|
|
|
|
// --------------------------------------------------
|
|
// Nav
|
|
// --------------------------------------------------
|
|
// les champs clients mails et pwd sont issus de client, et le css de connexion ( une mauvaise économie de l'époque...)
|
|
|
|
case 'connTitre':
|
|
theVoletCss="Connexion";
|
|
theNumCss=1;
|
|
break;
|
|
|
|
case 'messageConnect':
|
|
theNumCss=2;
|
|
break;
|
|
|
|
case 'libConnCell':
|
|
theNumCss=5;
|
|
break;
|
|
|
|
case 'libConn':
|
|
theNumCss=6; //email
|
|
break;
|
|
|
|
case 'champsConnCell':
|
|
theNumCss=7; //pwd
|
|
break;
|
|
|
|
case 'champsConn': theNumCss=8; //pwd
|
|
break;
|
|
|
|
// --------------------------------------------------
|
|
// Clients
|
|
// --------------------------------------------------
|
|
case 'titresCli':
|
|
theVoletCss="Clients";
|
|
theNumCss=1;
|
|
break;
|
|
case 'libClientsCell':
|
|
theNumCss=2;
|
|
numeroSousMenu=11;//inscription
|
|
break;
|
|
case 'libClients':
|
|
theNumCss=3;
|
|
numeroSousMenu=11;//inscription
|
|
break;
|
|
case 'champsCliCell':
|
|
theNumCss=4;
|
|
numeroSousMenu=11;//inscription
|
|
break;
|
|
case 'champsCli':
|
|
theNumCss=5;
|
|
numeroSousMenu=11;//inscription
|
|
break;
|
|
case 'msgCli':
|
|
theNumCss=6;
|
|
numeroSousMenu=11;//inscription
|
|
break;
|
|
case 'listeDeroulanteCli':
|
|
theNumCss=7;
|
|
if(numTxt==89 || numTxt==90) numeroSousMenu=9;//modifier mon compte
|
|
else { numeroSousMenu=11; }//inscription
|
|
if(numTxt==89) p10.innerHTML="Modifier les modes de livraison";
|
|
if(numTxt==90) p10.innerHTML="Modifier les moyens de paiement";
|
|
numeroMenuPrpal=6; //client
|
|
break;
|
|
case 'cliLignes':
|
|
theNumCss=8;
|
|
numeroSousMenu=11;//inscription
|
|
break;
|
|
case 'detailsOnglets':
|
|
theNumCss=9;
|
|
numeroSousMenu=11;//inscription
|
|
break;
|
|
case 'detailsOnglets li':
|
|
theNumCss=10;
|
|
numeroSousMenu=11;//inscription
|
|
break;
|
|
case 'detailsOnglets li':
|
|
theNumCss=10;
|
|
numeroSousMenu=11;//inscription
|
|
break;
|
|
// --------------------------------------------------
|
|
// Panier
|
|
// --------------------------------------------------
|
|
case 'panierTitre':
|
|
theVoletCss='Panier';
|
|
theNumCss=0;
|
|
numeroMenuPrpal=12;
|
|
if(numTxt==1) {numeroSousMenu=131;} //modif adresse fact le txt est sur client
|
|
if(numTxt==2) {numeroSousMenu=132;} //modif adresse LIV le txt est sur client
|
|
if(numTxt==13) {numeroSousMenu=13;} //panier
|
|
if(numTxt==14) {numeroSousMenu=134; } //modePaie panier
|
|
if(numTxt==15) {numeroSousMenu=133; } //modeLiv panier
|
|
if(numTxt==30) {numeroSousMenu=135; } //recap
|
|
// if(numTxt==82) {numeroSousMenu=13; } //panier affcde a tester...affcde est dans chaque etape
|
|
break;
|
|
|
|
case 'tablePanier':
|
|
theVoletCss='Panier';
|
|
theNumCss=1;
|
|
if(numTxt==0) {numeroSousMenu=13;}
|
|
break;
|
|
|
|
case 'libPanier':
|
|
theVoletCss='Panier';
|
|
theNumCss=5;
|
|
break;
|
|
|
|
case 'champsPanierCell':
|
|
theVoletCss='Panier';
|
|
theNumCss=6;
|
|
p10.innerHTML="Modifier le produit";
|
|
break;
|
|
|
|
case 'champsPanier':
|
|
theVoletCss='Panier';
|
|
theNumCss=7;
|
|
if(sectionTxtNom=='cde' && numTxt==4) { //mode paie- cheq- infos
|
|
numeroSousMenu=13;
|
|
p10.innerHTML="Modifier les options du produit";
|
|
}
|
|
else if(sectionTxtNom=='contact') { //mode paie- cheq- infos
|
|
numeroSousMenu=134;
|
|
p10.innerHTML="Modifier les informations commerçant";
|
|
}
|
|
else p10.innerHTML="Modifier le produit";
|
|
break;
|
|
|
|
case 'itemPanier': //utilisé dans commandes donc forcer le volet ici
|
|
if(numTxt==38 || numTxt==19) numeroSousMenu=133;//mode liv
|
|
else if(numTxt==68) numeroSousMenu=134;//mode paie
|
|
else if(numTxt==21 || numTxt==23 || numTxt==32 || numTxt==33 || numTxt==31 ) numeroSousMenu=135;//recap
|
|
else numeroSousMenu=13;
|
|
theVoletCss='Panier';
|
|
theNumCss=9;
|
|
p10.innerHTML="Modifier le produit";
|
|
break;
|
|
|
|
case 'msgPanier': //utilisé dans commandes donc forcer le volet ici
|
|
if(numTxt==38 || numTxt==19) numeroSousMenu=133;//mode liv
|
|
else if(numTxt==68) numeroSousMenu=134;//mode paie
|
|
else if(numTxt==7 || numTxt==13 || numTxt==30 ) numeroSousMenu=135; // recap si pas connecté : boutons connexion et ouvrir compte
|
|
else numeroSousMenu=13;
|
|
theVoletCss='Panier';
|
|
theNumCss=12;
|
|
break;
|
|
|
|
case 'panierConteneurItem':
|
|
theVoletCss='Panier';
|
|
theNumCss=14;
|
|
textesAffSection=4;
|
|
numeroMenuPrpal=12; //Panier espace
|
|
if(sectionTxtNom=='liv') {
|
|
numeroSousMenu=133;
|
|
p10.innerHTML="Modifier les modes de livraison";
|
|
}
|
|
else {
|
|
numeroSousMenu=134;
|
|
p10.innerHTML="Modifier les moyens de paiement";
|
|
}
|
|
break;
|
|
|
|
case 'blocItemPanier':
|
|
theVoletCss='Panier';
|
|
theNumCss=15;
|
|
break;
|
|
|
|
// --------------------------------------------------
|
|
// Etapes
|
|
// --------------------------------------------------
|
|
case 'champEtapesTodo':
|
|
theVoletCss="Étapes";
|
|
theNumCss=3;
|
|
textesAffSection=4;
|
|
numeroSousMenu=13;//panier
|
|
numeroMenuPrpal=12;//espace commandes
|
|
break;
|
|
|
|
case 'champEtapesDone':
|
|
theVoletCss="Étapes";
|
|
theNumCss=3;
|
|
textesAffSection=4;
|
|
numeroSousMenu=13;//panier
|
|
numeroMenuPrpal=12;//espace commandes
|
|
break;
|
|
|
|
// --------------------------------------------------
|
|
// Informations : on a des styles et des champs transverses...c'est un peu le bazar ici...
|
|
// --------------------------------------------------
|
|
case 'titresInfos': // la section est menu et pas contact
|
|
theVoletCss="Informations"
|
|
theNumCss=0;
|
|
numeroSousMenu=numTxt;//ksm
|
|
numeroMenuPrpal=16;
|
|
break;
|
|
case 'tableInfos':
|
|
theNumCss=1;
|
|
break;
|
|
case 'msgInfos'://ira dans le contenu
|
|
theNumCss=2;
|
|
agencementOnglet=4;
|
|
previewObject=1;
|
|
if (numTxt ==75) {p10.innerHTML="Modifier le contenu"; numeroMenuPrpal=12; numeroSousMenu=14; agencementOnglet=4; previewObject=1; }
|
|
if (numTxt ==77) {p10.innerHTML="Modifier le contenu"; numeroMenuPrpal=12; numeroSousMenu=15; agencementOnglet=4; previewObject=1; }
|
|
p10.innerHTML="Modifier la page information";
|
|
break;
|
|
case 'libInfosCell':
|
|
theNumCss=3;
|
|
if (numTxt > 0 && numTxt < 17) p10.innerHTML="Modifier les informations commerçant";
|
|
break;
|
|
case 'libInfos':
|
|
theNumCss=4;
|
|
if (numTxt > 0 && numTxt < 17) p10.innerHTML="Modifier les informations commerçant";
|
|
break;
|
|
case 'champsInfosCell':
|
|
if (numTxt > 0 && numTxt < 17) p10.innerHTML="Modifier les informations commerçant";
|
|
if (numTxt ==75) {p10.innerHTML="Modifier le contenu"; numeroMenuPrpal=12; numeroSousMenu=14; agencementOnglet=4; previewObject=1; }
|
|
if (numTxt ==77) {p10.innerHTML="Modifier le contenu"; numeroMenuPrpal=12; numeroSousMenu=15; agencementOnglet=4; previewObject=1; }
|
|
theNumCss=5;
|
|
break;
|
|
case 'champsInfos':
|
|
theNumCss=6;
|
|
if (numTxt > 0 && numTxt < 17) p10.innerHTML="Modifier les informations commerçant";
|
|
break;
|
|
case 'lignesInfos':
|
|
theNumCss=7;
|
|
if (numTxt > 0 && numTxt < 17) p10.innerHTML="Modifier les informations commerçant";
|
|
break;
|
|
|
|
// --------------------------------------------------
|
|
// transverse
|
|
// --------------------------------------------------
|
|
case 'tablePages': // normalement devrait que sur mConStyle, mais pour les pages infos, ce sont des contenus dynamiques, donc on n'aura pas la fonction géné pour mContetxtuel, donc on le mets ici pour pourvoir aller sut contenu/txt
|
|
theVoletCss="Transverses site";
|
|
theNumCss=1;
|
|
if (sectionTxtNom == 'contact') {
|
|
if (numTxt > 0 && numTxt < 17) { numeroSousMenu=17; }//ksn en dessous de 61 ( au dessus = infos de banque)
|
|
if(numTxt==61) { numeroSousMenu=18; }//contact-->utilise des chams client (mauvaise pratique...), titre=celui de menu. 61 seul champ de contact utilisé
|
|
if(numTxt==0) { numeroSousMenu=19; }//cdv-->sont dans pages pas dans languenav, titre=celui de menu. 0 ne cooresponds pas c'est un flag pour aller sur pages
|
|
numeroMenuPrpal=16;
|
|
p10.innerHTML="Modifier la page information";
|
|
}
|
|
|
|
else {
|
|
numeroSousMenu=1; numeroMenuPrpal=1;
|
|
}
|
|
break;
|
|
|
|
case 'pageNavigation':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=3;
|
|
break;
|
|
|
|
case 'a':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=4;
|
|
break;
|
|
|
|
case 'a':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=4;
|
|
break;
|
|
|
|
|
|
// icones
|
|
case 'icones':
|
|
if (sectionTxtNom == 'contact') {
|
|
if (numTxt > 0 && numTxt < 17) { numeroSousMenu=17; }//ksn en dessous de 61 ( au dessus = infos de banque)
|
|
if (numTxt==61) { numeroSousMenu=18; }//contact-->utilise des chams client (mauvaise pratique...), titre=celui de menu. 61 seul champ de contact utilisé
|
|
if (numTxt==0) { numeroSousMenu=19; }//cdv-->sont dans pages pas dans languenav, titre=celui de menu. 0 ne cooresponds pas c'est un flag pour aller sur pages
|
|
numeroMenuPrpal=16;
|
|
}
|
|
else if (sectionTxtNom == 'cde') {
|
|
numeroSousMenu=13;
|
|
numeroMenuPrpal=12;
|
|
|
|
}
|
|
else if (sectionTxtNom == 'menu') {
|
|
if (numTxt==13) { numeroSousMenu=13; } //Panier//titre//icone
|
|
numeroMenuPrpal=12; agencementOnglet=1; previewObject=0;
|
|
}
|
|
else {
|
|
numeroMenuPrpal=0;
|
|
numeroSousMenu=1;
|
|
}
|
|
theVoletCss="Transverses site";
|
|
theNumCss=8;
|
|
break;
|
|
|
|
|
|
// boutons
|
|
case 'boutons:hover':
|
|
case 'boutons':
|
|
case 'bouton':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=9;
|
|
textesAffSection=10;
|
|
if(numTxt==17) { // bouton autres achats ?
|
|
numeroSousMenu=13;
|
|
numeroMenuPrpal=12;
|
|
}
|
|
else {
|
|
numeroSousMenu=108;
|
|
numeroMenuPrpal=0;
|
|
}
|
|
p10.innerHTML="Modifier le bouton";
|
|
break;
|
|
|
|
case 'message':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=11;
|
|
break;
|
|
|
|
case 'msgOk':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=12;
|
|
break;
|
|
|
|
case 'msgKo':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=13;
|
|
break;
|
|
|
|
case 'input:focus':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=14;
|
|
break;
|
|
|
|
// Mesage commercial
|
|
case 'messCom':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=16;
|
|
if (sectionTxtNom == 'contact') {
|
|
if (numTxt > 0 && numTxt < 17) { numeroSousMenu=17; }//ksn en dessous de 61 ( au dessus = infos de banque)
|
|
if (numTxt==61) { numeroSousMenu=18; }//contact-->utilise des chams client (mauvaise pratique...), titre=celui de menu. 61 seul champ de contact utilisé
|
|
if (numTxt==0) { numeroSousMenu=19; }//cdv-->sont dans pages pas dans languenav, titre=celui de menu. 0 ne cooresponds pas c'est un flag pour aller sur pages
|
|
numeroMenuPrpal=16;
|
|
}
|
|
else {
|
|
numeroSousMenu=0;
|
|
numeroMenuPrpal=0;
|
|
}
|
|
p10.innerHTML="Modifier l'annonce";
|
|
break;
|
|
|
|
case 'onlyInResponsive':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=17;
|
|
numeroMenuPrpal=40;
|
|
break;
|
|
|
|
case 'mdpIco':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=18;
|
|
break;
|
|
|
|
case 'propuls':
|
|
theNumCss=19;
|
|
numeroMenuPrpal=40;
|
|
break;
|
|
|
|
// --------------------------------------------------
|
|
// Publicité pas de contenu on definit txt sur accueil par defaut
|
|
// --------------------------------------------------
|
|
case 'pub-table':
|
|
theVoletCss="Publicité";
|
|
theNumCss=1;
|
|
textesAffSection=7;
|
|
numeroMenuPrpal=20; // pub espace
|
|
numeroSousMenu='2' + String(numTxt) ; // pub 1 - 2 - 3
|
|
isEspace=0;
|
|
previewObject=1;
|
|
agencementOnglet=4;
|
|
p10.innerHTML="Modifier la publicité";
|
|
numTxt=0;
|
|
break;
|
|
|
|
// PDP-> transverse
|
|
case 'pdpBarre':
|
|
case 'pdpItem':
|
|
case 'pdpIcone':
|
|
case 'pdpTxt':
|
|
case 'whatsapp-barre':
|
|
numeroMenuPrpal=0;
|
|
numeroSousMenu=109;
|
|
break;
|
|
}
|
|
|
|
if (debugLocal==2) alert('Fin switch styles - numeroSousMenu=' + numeroSousMenu);
|
|
|
|
// dans certains cas on a des styles partagés ce qui fausse la navigation, avec affPAgeSite on peut savoir
|
|
let affPageSite='';
|
|
if(document.getElementById('affPageSite')) {
|
|
// alert('affPageSite mContextuel= '+document.getElementById('affPageSite').value);
|
|
affPageSite=document.getElementById('affPageSite').value;
|
|
switch (affPageSite) {
|
|
case '11': numeroSousMenu=131; numeroMenuPrpal=12; break;//saisie adresse fact panier
|
|
case '12': numeroSousMenu=132; numeroMenuPrpal=12; break;//saisie adresse liv panier
|
|
case '13': numeroSousMenu=133; numeroMenuPrpal=12; break;//saisie mode liv panier
|
|
case '14': numeroSousMenu=134; numeroMenuPrpal=12; break;//saisie mode paie panier
|
|
case '17': numeroSousMenu=134; numeroMenuPrpal=12; break;//saisie mode paie panier - rib
|
|
case '18': numeroSousMenu=134; numeroMenuPrpal=12; break;//saisie mode paie panier - cheque
|
|
}
|
|
// if (document.getElementById('affPageSite2')) document.getElementById('affPageSite2').value=affPageSite;
|
|
}
|
|
|
|
// ---------------------------------------------------
|
|
// Déduire le lien final
|
|
// ---------------------------------------------------
|
|
trouve=false;
|
|
switch (p10.innerHTML) {
|
|
case "Modifier le titre":
|
|
action="./admin/frmModale.php?affAdmin=2&affModale=2-6";
|
|
trouve=true;
|
|
break;
|
|
|
|
case "Modifier le logo":
|
|
action="./admin/frmModale.php?affAdmin=2&affModale=2-5";
|
|
trouve=true;
|
|
break;
|
|
|
|
case "Modifier la musique":
|
|
action="./admin/frmModale.php?affAdmin=2&affModale=2-9";
|
|
trouve=true;
|
|
break;
|
|
|
|
case "Modifier les langues":
|
|
action="./admin/frmAdmin.php?affAdmin=6&optAff=6";
|
|
trouve=true;
|
|
break;
|
|
|
|
case "Modifier l'image bannière":
|
|
action="./admin/frmModale.php?affAdmin=2&affModale=2-7";
|
|
trouve=true;
|
|
break;
|
|
|
|
case "Modifier l'annonce":
|
|
action="./admin/frmModale.php?affAdmin=2&affModale=2-10";
|
|
trouve=true;
|
|
break;
|
|
|
|
case "Modifier la catégorie":
|
|
case "Modifier la sous-catégorie":
|
|
action="./admin/frmAdmin.php?affAdmin=8&ongletCatalog=2&idFam="+numTxt;
|
|
trouve=true;
|
|
break;
|
|
|
|
case "Modifier le produit":
|
|
action="./admin/frmAdmin.php?affAdmin=8&affOngArt=4&ongletCatalog=4&idPrdRech="+numTxt+"&codeOpe=idPrd";
|
|
trouve=true;
|
|
break;
|
|
|
|
case "Modifier les options du produit":
|
|
action="./admin/frmAdmin.php?affAdmin=8&ongletCatalog=5&affLV=8";
|
|
trouve=true;
|
|
break;
|
|
|
|
case "Modifier les informations commerçant":
|
|
action="./admin/frmAdmin.php?affAdmin=6&optAff=5&typeOfCommercant=1";
|
|
trouve=true;
|
|
break;
|
|
|
|
case "Modifier les modes de livraison":
|
|
action="./admin/frmAdmin.php?affAdmin=6&optAff=2";
|
|
trouve=true;
|
|
break;
|
|
|
|
case "Modifier les moyens de paiement":
|
|
action="./admin/frmAdmin.php?affAdmin=6&optAff=1";
|
|
trouve=true;
|
|
break;
|
|
|
|
}
|
|
|
|
// cas ou on redirige vers les pages modales ou liens spécifiques
|
|
if(trouve==true) {
|
|
p10.onclick=function (e) {
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
top.location.href=action;
|
|
deselectElement(element);
|
|
selectElement(element);
|
|
}
|
|
}
|
|
// par defaut appeler editContenu
|
|
else {
|
|
p10.onclick=function (e) {
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
editContenu ( theVoletCss, nomCss, theNumCss, sectionTxtNom, textesAffSection, numTxt, numeroMenuPrpal, numeroSousMenu, agencementOnglet, previewObject, isEspace, affPageSite )
|
|
deselectElement(element);
|
|
selectElement(element);
|
|
} ;
|
|
}
|
|
|
|
debugLocal=0;
|
|
if (debugLocal==3) alert('mContextuel param fin => theVoletCss= ' +theVoletCss+ ' | nomCss=' +nomCss+ ' | theNumCss= ' +theNumCss+ ' | sectionTxtNom=' +sectionTxtNom+ ' | textesAffSection=' +textesAffSection+ ' | numTxt= ' +numTxt+ ' | numeroMenuPrpal= ' +numeroMenuPrpal+ ' | numeroSousMenu= ' +numeroSousMenu+ ' | agencementOnglet= ' +agencementOnglet+ ' | previewObject= ' +previewObject+ ' | isEspace= ' +isEspace+ ' | affPageSite= ' +affPageSite);
|
|
|
|
// debugLocal=0;
|
|
if (debugLocal==1) alert('contenu action => action= ' +action);
|
|
|
|
// ---------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
// Créer le sous menu Style (element, style, numeroMenuPrpal, sectionTxtNom)
|
|
// ---------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
var p11=document.createElement('p');
|
|
d.appendChild(p11);
|
|
p11.setAttribute('class', 'mContextItem');
|
|
p11.innerHTML="Modifier le style";
|
|
|
|
// ---------------------------------------------------
|
|
// Déduire le libellé du sous menu style selon nomCss
|
|
// ---------------------------------------------------
|
|
switch (nomCss) {
|
|
// Menus famille
|
|
case 'menuIndep-container':
|
|
p11.innerHTML="Modifier le style du menu indépendant";
|
|
break;
|
|
|
|
case 'rechBarre-container':
|
|
p11.innerHTML="Modifier la barre de recherche";
|
|
break;
|
|
|
|
case 'rechItem':
|
|
case 'rechInput':
|
|
case 'rechBtn':
|
|
p11.innerHTML="Modifier la zone de recherche";
|
|
break;
|
|
|
|
case 'txtBarrePromo':
|
|
p11.innerHTML="Modifier la barre des promos";
|
|
break;
|
|
|
|
case 'champsInfosCell':
|
|
//annuler le preview du menu precedent le cas echeant
|
|
previewObject=0;
|
|
break;
|
|
}
|
|
|
|
// ---------------------------------------------------
|
|
// Appeler la fonction
|
|
// ---------------------------------------------------
|
|
p11.onclick=function(e) {
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
editStyle ( theVoletCss, nomCss, theNumCss, sectionTxtNom, textesAffSection, numTxt, numeroMenuPrpal, numeroSousMenu, agencementOnglet, previewObject, isEspace, affPageSite )
|
|
deselectElement(element);
|
|
selectElement(element);
|
|
};
|
|
|
|
debugLocal=0;
|
|
if (debugLocal==1) alert('contenu action => action= ' +action);
|
|
|
|
// ---------------------------------------------------
|
|
// Fin function
|
|
// ---------------------------------------------------
|
|
element.parentNode.appendChild(d);
|
|
return false;
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
// Fonction editContenu
|
|
// ---------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
function editContenu ( theVoletCss, nomCss, theNumCss, sectionTxtNom, textesAffSection, numTxt, numeroMenuPrpal, numeroSousMenu, agencementOnglet, previewObject, isEspace , affPageSite ) {
|
|
debugLocal=0;
|
|
|
|
// gerer le chemin selon qu'on est dans le backoffice, ou une page objet
|
|
if (location.pathname.indexOf('/admin/') !== -1) {
|
|
actionPrefixe='frmAdmin.php?';
|
|
if(debugLocal==1) alert('actionPrefixe=' + actionPrefixe);
|
|
} else {
|
|
actionPrefixe='./admin/frmAdmin.php?';
|
|
if(debugLocal==1) alert('actionPrefixe=' + actionPrefixe);
|
|
}
|
|
|
|
action=actionPrefixe +'affAdmin=2&theVoletCss=' +theVoletCss+ '&nomCss=' +nomCss+ '&theNumCss=' +theNumCss+ '§ionTxtNom=' +sectionTxtNom+ '&textesAffSection=' +textesAffSection+ '&numTxt=' +numTxt+ '&numeroMenuPrpal=' +numeroMenuPrpal+ '&numeroSousMenu=' +numeroSousMenu+ '&agencementOnglet=' +agencementOnglet+ '&previewObject=' +previewObject+ '&isEspace=' +isEspace+ '&affPageSite=' +affPageSite;
|
|
if(debugLocal==1) alert('fonction editContenu => action=' +action );
|
|
top.location.href=action;
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
// Fonction editStyle
|
|
// ---------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
function editStyle ( theVoletCss, nomCss, theNumCss, sectionTxtNom, textesAffSection, numTxt, numeroMenuPrpal, numeroSousMenu, agencementOnglet, previewObject, isEspace, affPageSite ) {
|
|
// on envoi aussi les param de txt au cas ou apres on clic sur l'onglet txt
|
|
debugLocal=0;
|
|
|
|
// gerer le chemin selon qu'on est dans le backoffice, ou une page objet
|
|
if (location.pathname.indexOf('/admin/') !== -1) {
|
|
actionPrefixe='frmAdmin.php?';
|
|
if(debugLocal==1)alert('actionPrefixe=' + actionPrefixe);
|
|
} else {
|
|
actionPrefixe='./admin/frmAdmin.php?';
|
|
if(debugLocal==1) alert('actionPrefixe=' + actionPrefixe);
|
|
}
|
|
|
|
action=actionPrefixe +'affAdmin=2&theVoletCss=' +theVoletCss+ '&nomCss=' +nomCss+ '&theNumCss=' +theNumCss+ '§ionTxtNom=' +sectionTxtNom+ '&textesAffSection=' +textesAffSection+ '&numTxt=' +numTxt+ '&numeroMenuPrpal=' +numeroMenuPrpal+ '&numeroSousMenu=' +numeroSousMenu+ '&agencementOnglet=3'+ '&previewObject=' +previewObject+ '&isEspace=' +isEspace+ '&affPageSite=' +affPageSite;
|
|
if (debugLocal==1) alert('fonction editStyle => action=' +action);
|
|
|
|
top.location.href=action;
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
// Styles seul : mais on envoi les param txt pour être sûr compatibilité du clic apres sur onglet txt
|
|
// ---------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
function mConStyle ( element, theVoletCss, nomCss, theNumCss, sectionTxtNom, textesAffSection, numTxt, event ) {
|
|
numeroMenuPrpal='';
|
|
numeroSousMenu='';
|
|
previewObject=0;
|
|
isEspace=0;
|
|
debugLocal=0;
|
|
if (debugLocal==1) alert('mConStyle param entree => element=' + element.id + ' | theVoletCss=' + theVoletCss + ' | nomCss=' + nomCss + ' | theNumCss=' + theNumCss + ' | sectionTxtNom=' + sectionTxtNom + ' | textesAffSection=' + textesAffSection + ' | numTxt=' + numTxt );
|
|
|
|
// ---------------------------------------------------
|
|
// Ne supporte pas les #
|
|
// ---------------------------------------------------
|
|
if (nomCss.substr(0,1 )=="#") {nomCss=nomCss.substr(1, nomCss.length); }
|
|
if (debugLocal==1) alert("nomCss=" + nomCss);
|
|
|
|
if (event) {
|
|
event.stopPropagation(); // ← Arrête la propagation vers les parents
|
|
event.preventDefault(); // ← Optionnel : bloque le menu natif
|
|
}
|
|
|
|
// ---------------------------------------------------
|
|
// Créer le menu
|
|
// ---------------------------------------------------
|
|
var d=document.createElement('div');
|
|
d.setAttribute('class', 'mContextMenu');
|
|
d.setAttribute('id', 'menuContextuel');
|
|
element.style.border="2px dashed purple";
|
|
element.style.zIndex=101;
|
|
if(element.parentNode) element.parentNode.style.zIndex=101;
|
|
|
|
// ---------------------------------------------------
|
|
// Supprimer le menu contextuel on click body ou lui même
|
|
// ---------------------------------------------------
|
|
if(element.parentNode) d.onclick=function(e) { element.parentNode.removeChild(d); }
|
|
document.body.onclick=function(e) { try{ element.parentNode.removeChild(d); } finally{} }
|
|
|
|
// ---------------------------------------------------
|
|
// Créer le sous menu style
|
|
// ---------------------------------------------------
|
|
var p11=document.createElement('p');
|
|
d.appendChild(p11);
|
|
p11.setAttribute('class', 'mContextItem');
|
|
p11.innerHTML="Modifier le style";
|
|
|
|
// ---------------------------------------------------
|
|
// Gérer la position
|
|
// ---------------------------------------------------
|
|
gererPos(d,event);
|
|
|
|
|
|
// ---------------------------------------------------
|
|
// Corriger theVoletCss pour les cas d'apostrophe
|
|
// ---------------------------------------------------
|
|
switch (theVoletCss) {
|
|
|
|
case 'Structure entête':
|
|
theVoletCss="Structure d'entête";
|
|
break;
|
|
|
|
case 'Eléments entête':
|
|
theVoletCss="Eléments d'entête";
|
|
break;
|
|
}
|
|
|
|
if (debugLocal==1) alert('fin 1');
|
|
|
|
// ---------------------------------------------------
|
|
// Compléter les params selon les cas : numeroMenuPrpal, numeroSousMenu
|
|
// ---------------------------------------------------
|
|
switch (nomCss) {
|
|
|
|
case 'body':
|
|
case 'bodyImg':
|
|
numeroMenuPrpal=0;
|
|
numeroSousMenu=100;//Accueil
|
|
p11.innerHTML="Modifier le style du corps de page";
|
|
break;
|
|
|
|
case 'site-container':
|
|
numeroMenuPrpal=0; //site
|
|
numeroSousMenu=100; //Accueil
|
|
p11.innerHTML="Modifier le style du conteneur global";
|
|
d.style.left='0px';
|
|
d.style.top='5px';
|
|
d.style.position='absolute';
|
|
break;
|
|
|
|
// j'ai un doute car il est unique donc sera toujours sur accueil// voir si possible affPageSite dans preview ?
|
|
case 'page-container':
|
|
// if(sectionTxtNom == 'contact') {
|
|
// numeroSousMenu=numTxt;//ksm-contact-cdv
|
|
// numeroMenuPrpal=16;//infos
|
|
// }
|
|
// if(sectionTxtNom == 'cde') {
|
|
// numeroSousMenu=135;//
|
|
// numeroMenuPrpal=12;//panier
|
|
// }
|
|
// else {
|
|
numeroMenuPrpal=0; //site
|
|
numeroSousMenu=100; //Accueil
|
|
// }
|
|
|
|
p11.innerHTML="Modifier le conteneur page";
|
|
break;
|
|
|
|
// Entête titre Img -
|
|
case 'header-containerImg':
|
|
numeroMenuPrpal=0; //site
|
|
numeroSousMenu=103; //titre
|
|
p11.innerHTML="Modifier le conteneur du titre";
|
|
break;
|
|
|
|
// Entête logo - Ici il faut aller sur accueil car sinon la page logo prends le dessus sur le voletCss ( c'est cohérent car ici c'est conteneur, pas logo)
|
|
case 'eCol1':
|
|
numeroMenuPrpal=0; //site
|
|
numeroSousMenu=100; //accueil
|
|
p11.innerHTML="Modifier le conteneur logo";
|
|
break;
|
|
|
|
// Entête titre
|
|
case 'eCol2':
|
|
numeroMenuPrpal=0; //site
|
|
numeroSousMenu=103; //titre
|
|
p11.innerHTML="Modifier la cellule";
|
|
theNumCss=1;
|
|
break;
|
|
|
|
// Entête conteneur musique
|
|
case 'eCol4':
|
|
numeroMenuPrpal=0; //site
|
|
numeroSousMenu=106; // musique
|
|
p11.innerHTML="Modifier le conteneur player";
|
|
break;
|
|
|
|
// Entête - conteneur langue
|
|
case 'eCol5':
|
|
numeroMenuPrpal=0; //site
|
|
numeroSousMenu=100; // accueil
|
|
p11.innerHTML="Modifier le conteneur langue";
|
|
break;
|
|
|
|
case 'bandeau-container':
|
|
numeroMenuPrpal=0; //site
|
|
numeroSousMenu=104;
|
|
p11.innerHTML="Modifier le conteneur bannière";
|
|
break;
|
|
|
|
|
|
// Menus deroulant
|
|
case 'menuD-container':
|
|
numeroMenuPrpal=0;
|
|
numeroSousMenu=1;
|
|
p11.innerHTML="Modifier le conteneur menu déroulant";
|
|
d.style.width='400px';
|
|
break;
|
|
|
|
// Menus deroulant
|
|
case 'menuDeroulantBarre':
|
|
numeroMenuPrpal=0;
|
|
numeroSousMenu=1;
|
|
p11.innerHTML="Modifier la barre du menu déroulant";
|
|
d.style.width='400px';
|
|
break;
|
|
|
|
//--------------------------------------------
|
|
// Catalogue
|
|
//--------------------------------------------
|
|
// Menu independant
|
|
case 'menuIndep-container':
|
|
numeroMenuPrpal=1;
|
|
numeroSousMenu=1;
|
|
p11.innerHTML="Modifier le conteneur menu indépendant";
|
|
d.style.width='400px';
|
|
break;
|
|
|
|
// Famille conteneur
|
|
case 'familles-container':
|
|
numeroMenuPrpal=1;
|
|
numeroSousMenu=1;
|
|
p11.innerHTML="Modifier le conteneur global des catégories";
|
|
d.style.width='400px';
|
|
break;
|
|
|
|
// Famille boite
|
|
case 'familles-boite':
|
|
numeroMenuPrpal=1;
|
|
numeroSousMenu=1;
|
|
p11.innerHTML="Modifier la barre de chaque catégorie";
|
|
d.style.width='400px';
|
|
break;
|
|
|
|
// Sous cat boite
|
|
case 'categories-boite':
|
|
numeroMenuPrpal=1;
|
|
numeroSousMenu=1;
|
|
p11.innerHTML="Modifier la barre de chaque sous-catégorie";
|
|
d.style.width='400px';
|
|
break;
|
|
|
|
case 'promos-container':
|
|
// va dans menus pour txt
|
|
numeroMenuPrpal=1;
|
|
numeroSousMenu=1;
|
|
p11.innerHTML="Modifier le conteneur barre des promos";
|
|
d.style.width='400px';
|
|
break;
|
|
|
|
case 'zoneAcheter':
|
|
// va dans menus pour txt
|
|
numeroMenuPrpal=1;
|
|
numeroSousMenu=1;
|
|
p11.innerHTML="Modifier la zone acheter";
|
|
break;
|
|
|
|
//--------------------------------------------
|
|
// transverse
|
|
//--------------------------------------------
|
|
case 'tablePages':
|
|
theVoletCss="Transverses site";
|
|
theNumCss=1;
|
|
if (sectionTxtNom == 'contact') {
|
|
if (numTxt > 0 && numTxt < 17) { numeroSousMenu=17; }//ksn en dessous de 61 ( au dessus = infos de banque)
|
|
if(numTxt==61) { numeroSousMenu=18; }//contact-->utilise des chams client (mauvaise pratique...), titre=celui de menu. 61 seul champ de contact utilisé
|
|
if(numTxt==0) { numeroSousMenu=19; }//cdv-->sont dans pages pas dans languenav, titre=celui de menu. 0 ne cooresponds pas c'est un flag pour aller sur pages
|
|
numeroMenuPrpal=16;
|
|
}
|
|
else if (sectionTxtNom == 'menus') { // ici menus est un mot clé, car ce sont des pages avec contenus et pas txt
|
|
numeroSousMenu=numTxt; //14 et 15 menu liv et paie
|
|
}
|
|
else if (sectionTxtNom == 'client') {
|
|
numeroSousMenu=9;
|
|
numeroMenuPrpal=6;
|
|
}
|
|
else if (sectionTxtNom == 'cde') {
|
|
numeroMenuPrpal=12;
|
|
if (numTxt==46) { numeroSousMenu=134; }//rib
|
|
else if (numTxt==47) { numeroSousMenu=18; }//cheque
|
|
else if (numTxt==0) { numeroSousMenu=135; }//recap
|
|
else { numeroSousMenu=13; }
|
|
}
|
|
else {
|
|
numeroSousMenu=1;
|
|
numeroMenuPrpal=1;
|
|
}
|
|
p11.innerHTML="Modifier le conteneur tableau";
|
|
break;
|
|
|
|
case 'ongletBarre li':
|
|
theVoletCss='Onglets';
|
|
numeroSousMenu=9;
|
|
numeroMenuPrpal=6;
|
|
numcss=1;
|
|
break;
|
|
|
|
case 'ongActv':
|
|
theVoletCss='Onglets';
|
|
numeroSousMenu=9;
|
|
numeroMenuPrpal=6;
|
|
numcss=5;
|
|
break;
|
|
|
|
//--------------------------------------------
|
|
// informations
|
|
//--------------------------------------------
|
|
case 'tableInfos':
|
|
case 'msgInfos':
|
|
case 'libInfosCell':
|
|
case 'champsInfosCell':
|
|
case 'champsInfos':
|
|
theVoletCss="Informations";
|
|
if (numTxt > 0 && numTxt < 17) { numeroMenuPrpal=16;numeroSousMenu=17; }//ksn en dessous de 61 ( au dessus = infos de banque)
|
|
if (numTxt==61) { numeroMenuPrpal=16; numeroSousMenu=18; }//contact-->utilise des champs client (mauvaise pratique...), titre=celui de menu. 61 seul champ de contact utilisé
|
|
if (numTxt==0) { numeroMenuPrpal=16; numeroSousMenu=19; }//cdv-->sont dans pages pas dans languenav, titre=celui de menu. 0 ne cooresponds pas c'est un flag pour aller sur pages
|
|
if (numTxt==68|| numTxt==75) { numeroMenuPrpal=6; numeroSousMenu=14; }//menu mode paie
|
|
if (numTxt==73 || numTxt==77) { numeroMenuPrpal=6; numeroSousMenu=15; }//menu mode liv
|
|
|
|
break;
|
|
|
|
//--------------------------------------------
|
|
// Panier
|
|
//--------------------------------------------
|
|
case 'syntheseLignes':
|
|
numeroMenuPrpal=12; //Panier espace
|
|
numeroSousMenu=13;
|
|
break;
|
|
// Panier
|
|
case 'recapContainer':
|
|
if(numTxt==78 ) {numeroSousMenu=135;} //recap
|
|
else {numeroSousMenu=13;}
|
|
numeroMenuPrpal=12; //Panier espace
|
|
break;
|
|
case 'etapesContainer':
|
|
numeroMenuPrpal=12; //Panier espace
|
|
numeroSousMenu=13;
|
|
break;
|
|
// Panier
|
|
case 'tablePanier':
|
|
numeroMenuPrpal=12; //Panier espace
|
|
if(numTxt==0) {numeroSousMenu=13;}
|
|
if(numTxt==15) {numeroSousMenu=131;} //adr fact
|
|
if(numTxt==3) {numeroSousMenu=132;} //adr liv
|
|
if(numTxt==38) {numeroSousMenu=133;} //mode liv
|
|
if(numTxt==46 || numTxt==47 || numTxt==68) {numeroSousMenu=134} //rib- cheq - mode paie -
|
|
if(numTxt==30) {numeroSousMenu=135} //recap
|
|
numeroSousMenu=13;
|
|
break;
|
|
// Panier
|
|
case 'blocItemPanier':
|
|
numeroMenuPrpal=12; //Panier espace
|
|
if(numTxt==106 ) numeroSousMenu=133;//mode liv
|
|
else if(numTxt==68) numeroSousMenu=134;//mode paie
|
|
else if(numTxt==1 || numTxt==90 || numTxt==89) numeroSousMenu=135;//recap
|
|
else numeroSousMenu=13;
|
|
break;
|
|
// Panier
|
|
case 'panierConteneurItem':
|
|
numeroMenuPrpal=12; //Panier espace
|
|
numeroSousMenu=13;
|
|
break;
|
|
// Panier
|
|
case 'listeDeroulantePanier':
|
|
numeroMenuPrpal=12; //Panier espace
|
|
numeroSousMenu=13;
|
|
break;
|
|
case 'champsPanierCell':
|
|
numeroMenuPrpal=12; //Panier espace
|
|
numeroSousMenu=13;
|
|
break;
|
|
case 'champsPanier':
|
|
numeroMenuPrpal=12; //Panier espace
|
|
if(sectionTxtNom=='contact' ) numeroSousMenu=134;//mode paie- cheq- infos
|
|
else numeroSousMenu=13;
|
|
break;
|
|
|
|
//--------------------------------------------
|
|
// client :
|
|
// on peut etre dans panier pour le adresses
|
|
// on peut venir ici par le champs, ils ont pas le voletCSS
|
|
//--------------------------------------------
|
|
case 'syntheseLignes':
|
|
theVoletCss="Clients";
|
|
numeroSousMenu=13;
|
|
numeroMenuPrpal=6; //client espace
|
|
break;
|
|
// Dans les champs on ne connait pas le numCSS
|
|
case 'champsCliCell':
|
|
theVoletCss="Clients";
|
|
theNumCss = 4;
|
|
if(textesAffSection==0){
|
|
numeroSousMenu=9;
|
|
numeroMenuPrpal=6; //client espace
|
|
}
|
|
else {
|
|
numeroSousMenu=13;
|
|
numeroMenuPrpal=12; //panier espace
|
|
}
|
|
break;
|
|
|
|
//--------------------------------------------
|
|
// nav
|
|
//--------------------------------------------
|
|
case 'champsConnCell':
|
|
case 'champsConn':
|
|
case 'connLignes':
|
|
numeroSousMenu=7; // connexion
|
|
numeroMenuPrpal=6; //client espace
|
|
break;
|
|
|
|
//--------------------------------------------
|
|
// Pub
|
|
//--------------------------------------------
|
|
case 'pub-container':
|
|
numeroMenuPrpal=20; //pub espace
|
|
numeroSousMenu=21; //pub1
|
|
theNumCss=8;
|
|
isEspace=1;
|
|
p11.innerHTML="Modifier le conteneur publicité";
|
|
break;
|
|
|
|
//--------------------------------------------
|
|
// Pied de page
|
|
//--------------------------------------------
|
|
case 'pdp-container':
|
|
p11.innerHTML="Modifier le conteneur pied de page";
|
|
numeroSousMenu=109;
|
|
break;
|
|
}
|
|
// dans certains cas on a des styles partagés ce qui fausse la navigation, avec affPAgeSite on peut savoir
|
|
let affPageSite='';
|
|
if(document.getElementById('affPageSite')) {
|
|
// alert('affPageSite mConStyle = '+document.getElementById('affPageSite').value);
|
|
affPageSite=document.getElementById('affPageSite').value;
|
|
switch (affPageSite) {
|
|
case '11': numeroSousMenu=131; numeroMenuPrpal=12; break;//saisie adresse fact panier
|
|
case '12': numeroSousMenu=132; numeroMenuPrpal=12; break;//saisie adresse liv panier
|
|
case '13': numeroSousMenu=133; numeroMenuPrpal=12; break;//saisie mode liv panier
|
|
case '14': numeroSousMenu=134; numeroMenuPrpal=12; break;//saisie mode paie panier
|
|
case '17': numeroSousMenu=134; numeroMenuPrpal=12; break;//saisie mode paie panier - rib
|
|
case '18': numeroSousMenu=134; numeroMenuPrpal=12; break;//saisie mode paie panier - cheque
|
|
}
|
|
// if (document.getElementById('affPageSite2')) document.getElementById('affPageSite2').value=affPageSite;
|
|
}
|
|
|
|
debugLocal=0;
|
|
if (debugLocal==1) alert('mConStyle param fin => theVoletCss= ' +theVoletCss+ ' | nomCss= ' +nomCss+ ' | theNumCss= ' +theNumCss+ ' | sectionTxtNom= ' +sectionTxtNom+ ' | textesAffSection= ' +textesAffSection+ ' | numTxt= ' +numTxt+ ' | numeroMenuPrpal= ' +numeroMenuPrpal+ ' | numeroSousMenu= ' +numeroSousMenu+ ' | previewObject= ' +previewObject+ ' | isEspace= ' +isEspace+ ' | affPageSite= ' +affPageSite);
|
|
|
|
p11.onclick=function(e) {
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
editStyle( theVoletCss, nomCss, theNumCss, sectionTxtNom, textesAffSection, numTxt, numeroMenuPrpal, numeroSousMenu, previewObject, isEspace, affPageSite ) ;
|
|
deselectElement(element);
|
|
selectElement(element);
|
|
};
|
|
|
|
// ---------------------------------------------------
|
|
// Créer le menu
|
|
// ---------------------------------------------------
|
|
element.parentNode.appendChild(d);
|
|
|
|
return false;
|
|
}
|