1jQuery(document).ready(function($) { 2 // Obtenir la valeur de l'attribut lang de la balise html 3 var htmlLang = $('html').attr('lang'); 4 5 // Définir la locale de moment.js en fonction de la langue 6 switch (htmlLang) { 7 case 'fr-FR': 8 moment.locale('fr'); 9 break; 10 case 'en-US': 11 moment.locale('en'); 12 break; 13 case 'es-ES': 14 moment.locale('es'); 15 break; 16 default: 17 moment.locale('en'); // Langue par défaut si non spécifiée ou non reconnue 18 } 19 $('.mec-calendar-table').on('click', '.mec-calendar-day', function() { 20 var selectedDate = $(this).attr('data-mec-cell'); 21 console.log('Selected Date:', selectedDate); 22 23 $('.mec-event-article').hide(); 24 25 $('.mec-event-article').each(function() { 26 var eventDateText = $(this).find('.mec-event-time').text(); 27 console.log('Event Date Text:', eventDateText); 28 29 if(eventDateText.includes('-')) { 30 var parts = eventDateText.split('-'); 31 var monthYear = parts[1].substring(parts[1].indexOf(',') + 1).trim(); // Extrait "2024" de "23, 2024" 32 var startDate, endDate; 33 34 if (parts[1].trim().match(/^\d{2},/)) { 35 // C'est une période dans le même mois (exemple: "March 20 - 23, 2024") 36 var month = parts[0].trim().split(' ')[0]; // Extrait "March" 37 startDate = moment(parts[0].trim() + ", " + monthYear, "MMMM DD, YYYY"); 38 endDate = moment(month + " " + parts[1].trim(), "MMMM DD, YYYY"); 39 } else { 40 // Période sur plusieurs mois (exemple: "February 05 - March 30, 2024") 41 startDate = moment(parts[0].trim(), "MMMM DD, YYYY"); 42 endDate = moment(parts[1].trim(), "MMMM DD, YYYY"); 43 } 44 45 console.log('Start Date:', startDate.format('YYYYMMDD')); 46 console.log('End Date:', endDate.format('YYYYMMDD')); 47 48 var currentDate = startDate; 49 while (currentDate <= endDate) { 50 var formattedCurrentDate = currentDate.format('YYYYMMDD'); 51 console.log('Checking Date:', formattedCurrentDate); 52 if (formattedCurrentDate === selectedDate) { 53 $(this).show(); 54 break; 55 } 56 currentDate.add(1, 'days'); 57 } 58 } else { 59 var formattedEventDate = moment(eventDateText, "MMMM DD, YYYY").format('YYYYMMDD'); 60 console.log('Formatted Single Event Date:', formattedEventDate); 61 62 if (formattedEventDate === selectedDate) { 63 $(this).show(); 64 } 65 } 66 }); 67 }); 68}); 69jQuery(document).ready(function($) { 70 $('.mec-calendar-table').on('click', '.mec-calendar-day', function() { 71 // Votre logique existante ici... 72 73 // Vérifier si l'utilisateur est sur un appareil mobile 74 if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 75 // Calculer la position de la section cible et soustraire 50px pour ajuster le défilement 76 var scrollToPosition = $('.mec-calendar-events-side').offset().top - 50; 77 78 // Animer le défilement vers la position ajustée 79 $('html, body').animate({ 80 scrollTop: scrollToPosition 81 }, 800); // 800 ms pour l'animation du défilement 82 } 83 }); 84}); 85jQuery(document).ready(function($) { 86 // Fonction pour ajouter les boutons 87 function addCalendarButtons() { 88 $('.mec-event-article').each(function() { 89 // Assurez-vous de ne pas ajouter de boutons en double 90 if ($(this).find('add-to-calendar-button').length === 0) { 91 var eventTimeText = $(this).find('.mec-event-time').text(); 92 var startDate, endDate; 93 var titre = $(this).find('.mec-event-title').text(); 94 95 if (!eventTimeText.includes('-')) { 96 startDate = moment(eventTimeText, "MMMM D, YYYY").format('YYYY-MM-DD'); 97 endDate = startDate; 98 } else { 99 var parts = eventTimeText.split('-'); 100 var startText = parts[0].trim(); 101 var endText = parts[1].trim(); 102 var year = endText.substring(endText.lastIndexOf(',') + 1).trim(); 103 104 if (parts[1].trim().match(/^\d{2},/)) {
105 var month = startText.split(' ')[0]; 106 startDate = moment(startText + ", " + year, "MMMM DD, YYYY").format('YYYY-MM-DD'); 107 endDate = moment(month + " " + endText, "MMMM DD, YYYY").format('YYYY-MM-DD'); 108 } else { 109 startDate = moment(startText + ", " + year, "MMMM DD, YYYY").format('YYYY-MM-DD'); 110 endDate = moment(endText, "MMMM DD, YYYY").format('YYYY-MM-DD'); 111 } 112 } 113 114 var addToCalendarButton = `<add-to-calendar-button 115 name="${titre}" 116 options="'Apple','Google','iCal','Outlook.com','Yahoo','MicrosoftTeams','Microsoft365'" 117 location="World Wide Web" 118 startDate="${startDate}" 119 endDate="${endDate}" 120 timeZone="America/Los_Angeles"> 121 </add-to-calendar-button>`; 122 123 $(this).append(addToCalendarButton); 124 } 125 }); 126 } 127 128 // Initial exécution pour capturer les éléments déjà présents 129 addCalendarButtons(); 130 131 // Observer les mutations dans le conteneur de l'agenda 132 var observer = new MutationObserver(function(mutations) { 133 mutations.forEach(function(mutation) { 134 if (mutation.type === "childList") { 135 addCalendarButtons(); 136 } 137 }); 138 }); 139 140 // Configuration de l'observateur : observer l'ajout de nouveaux enfants et les changements dans les sous-arbres 141 var config = { childList: true, subtree: true }; 142 143 // Cible à observer : remplacer '#id_de_votre_container_agenda' par l'ID réel du conteneur de votre agenda 144 var target = document.querySelector('#mec_skin_5415'); 145 146 // Démarrer l'observation 147 if (target) { 148 observer.observe(target, config); 149 } 150});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.