Résultat Montpellier – Perpignan
Au GGL Stadium Montpellier, Perpignan bat Montpellier 25 à 20 (mi-temps: 10-5) pour le compte de la compétition top14 – 22e-journée – Poule 1
Statistiques du match:
Montpellier:
- Essais: 2
- Pénalités: 2
- Transformations: 2
- Cartons jaunes: 2
- Cartons rouges: 0
Perpignan:
- Essais: 3
- Pénalités: 2
- Transformations: 2
- Cartons jaunes: 2
- Cartons rouges: 0
Les équipes:
Composition Montpellier:
(1) Baptiste Erdocio, (2) Christopher Tolofua, (3) Luka Japaridze, (4) Florian Verhaeghe, (5) Bastien Chalureau, (6) Nicolaas Janse Van Rensburg, (7) Yacouba Camara, (8) Sam Simmonds, (9) Cobus Reinach, (10) Louis Carbonel, (11) George Bridge, (12) Jan Serfontein, (13) Arthur Vincent, (14) Gabriel Ngandebe, (15) Anthony Bouthier, (16) Vano Karkadze, (17) Luca Tabarot, (18) Tyler Duguid, (19) Clément Doumenc, (20) Léo Coly, (21) Thomas Darmon, (22) Ben Lam, (23) Lasha Macharashvili
Composition Perpignan:
(1) Xavier Chiocci, (2) Seilala Lam, (3) Pietro Ceccarelli, (4) Mathieu Tanguy, (5) Posolo Tuilagi, (6) Kelian Galletier, (7) Jacobus Van Tonder, (8) Joaquin Oviedo, (9) Sadek Deghmache, (10) Jake McIntyre, (11) Lucas Dubois, (12) Jeronimo De la Fuente, (13) Alivereti Duguivalu, (14) Tavite Veredamu, (15) Louis Dupichot, (16) Ignacio Ruiz, (17) Sacha Lotrian, (18) So’otala Fa’aso’o, (19) Marvin Orie, (20) Patrick Sobela, (21) Tom Ecochard, (22) Apisai Naqalevu, (23) Nemo Gunther Roelofse
Montpellier en direct – MHR en direct
Montpellier en direct – MHR en direct : Suivez tous vos matchs de rugby préférés à la radio ou en score live, en cliquant simplement sur le match de votre choix ci-dessous pour ouvrir le live et les radios. Vous pouvez également accéder à toutes les rencontres via les onglets “🔴 En Direct” et “Résultats”. Ne manquez rien des compétitions chaque week-end : XV de France (H/F/U20), Coupe d’Europe, Sevens, Top 14, Pro D2, Nationale, Fédérale, et bien plus encore. Plongez au cœur de l’action en un seul clic !
Chargement en cours …
Équipe Locale | Équipe Visiteuse |
---|
Sud Radio
var teamRequest = false; function getRencontreId() { let urlParams = new URLSearchParams(window.location.search); let rId = urlParams.get('id'); if (!rId) { const matchContainer = document.getElementById('match-container'); if (matchContainer) { rId = matchContainer.getAttribute('data-match-id'); } } if (!rId) { rId = findRencontreIdInComments(); } console.log(rId); return rId; } function findRencontreIdInComments() {
var urlElement = document.querySelector('dd.tribe-events-event-url a'); if (urlElement) { var href = urlElement.getAttribute('href'); var rId = new URL(href).searchParams.get('id'); return rId; } else { const matchContainer = document.getElementById('team-container'); document.getElementById('match-container'); rId = matchContainer.getAttribute('team-match-id'); teamRequest = true; return rId; } }
function fetchDataAndUpdate() { var apiUrl = '' const rencontreId = getRencontreId(); if (teamRequest) { apiUrl = `https://rugby-app-4ebacff10fda.herokuapp.com/rencontres/next_rencontre?id=${rencontreId}` } else { apiUrl = `https://rugby-app-4ebacff10fda.herokuapp.com/rencontres/${rencontreId}` } fetch(apiUrl) .then(response => response.json()) .then(allData => { const data = allData[0]; if (data.rencontre_resultat_locale && data.rencontre_resultat_visiteuse) { createChart(data); updateLists(data); } updateActions(data); updateScoreAndTeams(data); creerTableau(data); const contentDisplay = document.getElementById('content-display'); if (data.content) { contentDisplay.innerHTML = data.content; // Insérer le contenu dans l'élément } const radioContainer = document.querySelector('.refresh-button-container'); radioContainer.innerHTML = ''; // Clear previous buttons if any const radios = (data.local_team.radios || []).concat(data.visitor_team.radios || []); const uniqueRadios = Array.from(new Set(radios.map(radio => radio.id))) .map(id => radios.find(radio => radio.id === id)); if (radios && radios.length > 0) { uniqueRadios.forEach(radio => { const radioButton = document.createElement('button'); radioButton.textContent = `Ecouter sur ${radio.name}`; radioButton.classList.add('radio-button'); radioButton.onclick = function () { playRadio(radio.name, radio.link, radio.logo); }; radioContainer.appendChild(radioButton); }); } else { radioContainer.style.display = 'none'; } if (data.youtube_link) { const youtubeContainer = document.querySelector('.youtube-container'); const youtubeIframe = document.getElementById('youtube-video'); youtubeIframe.src = data.youtube_link; youtubeContainer.style.display = 'block'; } const liveFbLink = data.fb_live const container_fb = document.getElementById('fb-live-container'); if (liveFbLink && liveFbLink.includes('?v=')) { const videoId = liveFbLink.split('?v=')[1]; const videoUrlEncoded = encodeURIComponent(`https://www.facebook.com/facebook/videos/${videoId}/`); const iframeSrc = `https://www.facebook.com/plugins/video.php?href=${videoUrlEncoded}&width=560&height=314&show_text=false&appId&mute=0`; const iframe = document.createElement('iframe'); iframe.src = iframeSrc; iframe.width = '560'; // Définir la largeur iframe.height = '314'; // Définir la hauteur iframe.style.border = 'none'; iframe.style.overflow = 'hidden'; iframe.scrolling = 'no'; iframe.setAttribute('frameborder', '0'); iframe.setAttribute('allowfullscreen', 'true'); iframe.setAttribute('allow', 'autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share'); container_fb.style.display = 'block'; container_fb.appendChild(iframe); }
if (data.etat === 'termine' || radios.length === 0) { radioContainer.style.display = 'none'; } else { resetTimer(); } }); }
function creerTableau(statsData) { const table = document.getElementById('matchTable'); table.innerHTML = ''; // Nettoyer le tableau existant let headerRow = `
`; table.insertAdjacentHTML('beforeend', headerRow); const labels = { "classement_actuel": "Classement actuel", "victoires_domicile": "Victoires domicile", "victoires_exterieur": "Victoires extérieur", "points_domicile": "Points domicile", "points_exterieur": "Points extérieur", "essais_marques_domicile": "Essais marqués domicile", "essais_marques_exterieur": "Essais marqués extérieur", "essais_encaisses_domicile": "Essais encaissés domicile", "essais_encaisses_exterieur": "Essais encaissés extérieur", "tendance_globale": "Tendance globale", "penalites_encaissees_domicile": "Pénalités encaissées domicile", "penalites_encaissees_exterieur": "Pénalités encaissées extérieur" }; Object.keys(labels).forEach(key => { let row = `
`; table.insertAdjacentHTML('beforeend', row); }); }
function formatData(data) { if (typeof data === 'string' && data.match(/V|N|D/)) { let formattedData = data.split(' ').map(el => { switch (el) { case 'V': return '' + el + ''; case 'N': return '' + el + ''; case 'D': return '' + el + ''; default: return el; } }).join(' '); return formattedData; } else { return data; } }
function createTimelineItem(action, actionTeamName, isLocalTeam, actionTeam) { const li = document.createElement('li');
// Si le type est "comment", créer un style spécial pour une bulle au centre de la page if (action.type === 'comment') {
li.className = 'timeline-item timeline-comment'; li.style = "width: 100%;" li.innerHTML = `
`; return li; }
// Si ce n'est pas un commentaire, on procède normalement li.className = 'timeline-item ' + (isLocalTeam ? 'local' : 'visitor'); let sousTypeString = ''; let minute = action.minutes + ' minutes';
if (action.type === 'CARD') { sousTypeString = action.sousType || ''; }
const img = document.createElement('img'); img.src = `https://vibrez-rugby.com/wp-content/uploads/2024/08/${action.type_traduit ? action.type_traduit.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/g, '') : ''}${sousTypeString}.png`; img.className = 'action-icon';
let teamContent = ''; let actionsVar = '';
if (action.type !== 'Start' && action.type !== 'Stop' && action.type !== 'MT') { teamContent = `
`; actionsVar = action.type_traduit; } else { minute = ''; if (action.type == 'Start') { actionsVar = 'Début'; } else { actionsVar = 'Fin'; } }
li.innerHTML = `
${teamContent}
${actionsVar}
${action.Joueur1 ? `
${action.Joueur1.Personne.nom}
` : ''} ${action.Joueur2 ? `
${action.Joueur2.Personne.nom}
` : ''}
`;
li.querySelector('.timeline-marker').appendChild(img); return li; }
function updateActions(data) { const timeline = document.querySelector('.timeline'); timeline.innerHTML = ''; if (data.etat !== 'A venir' && data.etat !== 'avenir') { if (Array.isArray(data.actions)) { for (const action of data.actions) { const isLocalTeam = String(action.competitionEquipeId) === String(data.local_team.id); const actionTeam = isLocalTeam ? data.local_team : data.visitor_team; const actionTeamName = actionTeam.img_url; const item = createTimelineItem(action, actionTeamName, isLocalTeam, actionTeam); timeline.appendChild(item); } } } if (!data.compositon_equipe_local) return; const table = document.querySelector(".custom-composition-table"); while (table.rows.length > 1) table.deleteRow(1);
const sortedEquipeLocal = data.compositon_equipe_local.sort((a, b) => a.numero - b.numero); const sortedEquipeVisiteur = data.compositon_equipe_visiteur.sort((a, b) => a.numero - b.numero);
for (const [i, joueurLocal] of sortedEquipeLocal.entries()) { const joueurVisiteur = sortedEquipeVisiteur[i]; const row = table.insertRow(); row.insertCell(0).innerHTML = `${joueurLocal.numero}${joueurLocal.nom} ${joueurLocal.estCapitaine ? "C" : ""}`; row.insertCell(1).innerHTML = joueurVisiteur ? `${joueurVisiteur.numero}${joueurVisiteur.nom} ${joueurVisiteur.estCapitaine ? "C" : ""}` : ''; } } function getFormeHtml(equipe) { let formeArray = equipe.forme; return formeArray.map(val => { if (val === 'V') { return ''; } else if (val === 'N') { return ''; } else if (val === 'D') { return ''; } }).join(' '); }
function updateScoreAndTeams(data) { const scoreContainer = document.querySelector(".custom-score-container"); const emblemeLocal = document.querySelector(".custom-emblem-local"); const dateContainer = document.querySelector(".custom_date"); const nomLocal = document.querySelector(".custom-local-name"); const formeLocal = document.querySelector(".circle"); const emblemeVisiteur = document.querySelector(".custom-emblem-visitor"); const nomVisiteur = document.querySelector(".custom-visitor-name"); const summary = document.querySelector(".match-summary"); const h1Container = document.querySelector(".custom-h1");
emblemeLocal.src = data.local_team.img_url;
let formeEquipeLocale = getFormeHtml(data.local_team);
let formeEquipeVisiteuse = getFormeHtml(data.visitor_team);
nomLocal.innerHTML = data.local_team.name + '
' + formeEquipeLocale;
emblemeVisiteur.src = data.visitor_team.img_url;
nomVisiteur.innerHTML = data.visitor_team.name + '
' + formeEquipeVisiteuse;
const gameStatus = data.etat === 'endirect' || data.etat === 'avenir' ? 'en Direct' : '';
const gameFinish = data.etat === 'termine' ? 'Résultat' : '';
h1Container.textContent = `${gameFinish} ${data.local_team.name} - ${data.visitor_team.name} ${gameStatus}`;
const date = new Date(data.date);
const dateFormatted = `${date.toLocaleDateString('fr-FR', {
year: 'numeric',
month: 'long',
day: 'numeric',
})}`;
const heureFormatted = `${date.toLocaleTimeString('fr-FR', {
hour: '2-digit',
minute: '2-digit',
})}`;
let day = data.day.replace(/(\d+e)-journee/g, "$1 journée")
.replace(/(\b\d+\b)/g, "$1e journée");
// Supprimer l'ancien div avec la classe 'date' s'il existe const existingDiv = summary.querySelector('.date'); if (existingDiv) { summary.removeChild(existingDiv); }
// Créer un nouveau div pour la date let newDiv = document.createElement('div'); newDiv.classList.add('date'); newDiv.innerHTML = `
${data.competition} - ${day}
${dateFormatted}
`;
if (data.rencontre_resultat_locale && data.etat === "termine") { summary.insertBefore(newDiv, summary.firstChild); scoreContainer.innerHTML = `
`;
if (dateContainer) dateContainer.remove(); } else if (data.etat === 'endirect') { summary.insertBefore(newDiv, summary.firstChild); scoreContainer.innerHTML = `
`;
if (dateContainer) dateContainer.remove(); summary.classList.remove('hide'); } else { summary.classList.add('hide'); dateContainer.innerHTML = `
`; } }
function updateLists(data) { const summaryTable = document.querySelector('.summary-table'); summaryTable.innerHTML = ''; const orderedKeys = ['MI-TEMPS', 'ESSAI', 'TRANSFORMATION', 'PENALITE', 'DROP', 'CARTON_JAUNE', 'CARTON_ROUGE'];
const localeStats = data?.stats?.locale || {}; const extStats = data?.stats?.ext || {};
orderedKeys.forEach((key, index) => { const localKey = key.toLowerCase(); const visitorKey = key.toLowerCase();
let localValue = localeStats.hasOwnProperty(localKey) ? localeStats[localKey] : 0; let visitorValue = extStats.hasOwnProperty(visitorKey) ? extStats[visitorKey] : 0;
if (key === 'MI-TEMPS') { localValue = localeStats.hasOwnProperty(localKey) ? localeStats[localKey] : null; visitorValue = extStats.hasOwnProperty(visitorKey) ? extStats[visitorKey] : null; }
if (localValue !== null || visitorValue !== null) { const tr = document.createElement('tr'); const tdLocal = document.createElement('td'); tdLocal.textContent = localValue; const tdKey = document.createElement('td'); tdKey.textContent = key; const tdVisitor = document.createElement('td'); tdVisitor.textContent = visitorValue; tr.appendChild(tdLocal); tr.appendChild(tdKey); tr.appendChild(tdVisitor); // if (index >= 3) tr.classList.add('hide'); summaryTable.appendChild(tr); } }); } function showTab(id) { document.querySelectorAll('.tab-content').forEach(el => el.classList.remove('active')); document.querySelectorAll('.tab').forEach(el => el.classList.remove('active')); document.getElementById(id).classList.add('active'); document.querySelector(`.tab[onclick="showTab('${id}')"]`).classList.add('active'); }
let myChart; function createChart(data) { const chartData = data.chart; if (chartData) { const labels = Array.from({ length: 80 }, (_, i) => i); const teams = { [data.local_team.id]: { name: data.local_team.name, color: 'orange' }, [data.visitor_team.id]: { name: data.visitor_team.name, color: 'blue' } };
const datasets = Object.keys(teams).map(teamId => { const rawTeamData = chartData .filter(item => item.team === teamId) .map(item => ({ x: item.minutes, y: item.score })); return { label: teams[teamId].name, data: rawTeamData, borderColor: teams[teamId].color, borderWidth: 2, tension: 0.1, fill: false, pointRadius: 0, }; });
const localTeamDataset = datasets.find(dataset => dataset.label === teams[data.local_team.id].name); const sortedDatasets = [localTeamDataset].concat(datasets.filter(dataset => dataset !== localTeamDataset));
if (myChart) { myChart.destroy(); }
if (document.getElementById('myChart')) { const ctx = document.getElementById('myChart').getContext('2d'); myChart = new Chart(ctx, { type: 'line', data: { labels: labels, datasets: sortedDatasets }, options: { plugins: { legend: { display: true, position: 'top', labels: { usePointStyle: true } } }, scales: { x: { display: true, title: { display: true, text: 'Minutes' }, type: 'linear', position: 'bottom', min: 0, max: 80, // Assurez-vous de définir la valeur maximale en fonction de la durée du match }, y: { display: true } }, } }); } } }
let refreshTimeout = null;
function resetTimer() { if (refreshTimeout) { clearTimeout(refreshTimeout); } refreshTimeout = setTimeout(() => { fetchDataAndUpdate(); }, 60000); }
function playRadio(name, url, logo) { const playerContainer = document.querySelector('.spotify-style-player'); const audioTitle = playerContainer.querySelector('.audio-title'); const audioSource = playerContainer.querySelector('audio source'); const audioPlayer = playerContainer.querySelector('audio'); const logoImg = playerContainer.querySelector('.radio-logo'); const closeButton = playerContainer.querySelector('.close-button');
const adUrl = 'https://vibrez-rugby.com/wp-content/uploads/2024/10/pub-delpit-services.mp3';
closeButton.addEventListener('click', function () { playerContainer.style.display = 'none'; audioPlayer.pause(); });
function playAdAndThenRadio() { audioTitle.innerHTML = `Publicité...`; audioSource.src = adUrl; logoImg.src = logo; audioPlayer.load(); playerContainer.style.display = 'flex'; audioPlayer.play().then(() => { audioPlayer.onended = function () {
audioTitle.innerHTML = `Vous écoutez ${name}`; audioSource.src = url; // Lien de la radio logoImg.src = logo; audioPlayer.load(); audioPlayer.play().catch(error => { console.error("Autoplay blocked by the browser: ", error); }); }; }).catch(error => { console.error("Autoplay blocked by the browser: ", error); }); }
playAdAndThenRadio(); }
window.onload = function () { fetchDataAndUpdate(); };
Montpellier en Direct : Vivez l’Action du MHR
Montpellier, dynamique ville du sud de la France, est le berceau d’une passion dévorante pour le rugby. Au cœur de cette cité ensoleillée, Montpellier Rugby, souvent appelé MHR, brille sur la scène rugbystique nationale et internationale. Découvrons comment suivre l’action et les émotions du MHR, que ce soit depuis les gradins du stade ou devant votre écran.
Une Passion Dévorante pour le Rugby
Le rugby est profondément ancré dans l’âme de Montpellier. Les supporteurs du MHR expriment sans relâche leur passion et leur dévouement pour leur équipe favorite. À chaque match, le stade vibre au rythme des chants et des encouragements. Cette ambiance crée une atmosphère électrique où l’esprit sportif est à l’honneur.
Options pour Suivre le MHR en Direct
Pour les fans qui souhaitent suivre Montpellier, plusieurs options sont à leur disposition. Les matchs à domicile se déroulent au stade Yves-du-Manoir. Cet endroit offre une expérience immersive, permettant aux supporteurs de vivre l’action de près. Pour ceux qui préfèrent rester chez eux, de nombreuses chaînes de télévision diffusent les matchs. Cela permet aux fans de suivre l’évolution du jeu confortablement depuis leur salon.
L’Émotion des Matchs de Montpellier
Assister à un match de Montpellier en direct constitue une expérience incomparable. Dans les tribunes, l’excitation est palpable. Les supporteurs partagent leur passion, et chaque action sur le terrain est vécue avec intensité. En effet, rien ne vaut le frisson de voir le MHR marquer un essai ou réaliser une action décisive devant vous.
Les Avantages de Suivre le MHR en Direct
Suivre Montpellier en direct offre de nombreux avantages. D’abord, cela permet de vivre l’action en temps réel. Les fans ressentent l’émotion du jeu et suivent l’évolution de leur équipe favorite. De plus, ils partagent leur passion avec d’autres supporteurs. Assister à un match permet également de profiter de l’atmosphère unique des stades et de créer des souvenirs inoubliables.
Conclusion
En conclusion, suivre Montpellier en direct est une expérience incontournable pour tous les fans de rugby. Que ce soit depuis les gradins du stade ou devant votre écran, vivre l’action et les émotions en temps réel renforce le lien entre les supporteurs et leur équipe favorite. Préparez-vous donc à vibrer au rythme du rugby et à partager des moments de passion avec la communauté des fans du MHR !
${action.text}