Résultat Toulouse – La Rochelle
Au Matmut Atlantique Bordeaux, Toulouse bat La Rochelle 39 à 23 (mi-temps: 15-20) pour le compte de la compétition top14 – demi-finales.
Le Stade toulousain, leader du classement à l’issue de la saison régulière, s’est qualifié pour la finale du Top 14 en dominant La Rochelle (39-23), réduit à treize en seconde période, vendredi à Bordeaux.
Les coéquipiers d’Antoine Dupont, tenants du titre, affronteront le vainqueur de l’autre demi-finale, qui opposera samedi Bordeaux-Bègles au Stade français (21h05). La finale aura lieu le 28 juin à Marseille.
Statistiques du match:
Toulouse:
- Essais: 5
- Pénalités: 2
- Transformations: 4
- Cartons jaunes: 2
- Cartons rouges: 0
La Rochelle:
- Essais: 2
- Pénalités: 3
- Transformations: 2
- Cartons jaunes: 1
- Cartons rouges: 2
Les points:
Toulouse: 5 essais Kinghorn (22), Mallia (31, 48), Chocobares (52), Lebel (80), 4 transformations Ramos (22, 48, 52, 80), 2 pénalités Ramos (2, 72),
La Rochelle: 2 essais Latu (11), Alldritt (38), 2 transformations Hastoy (11, 38), 3 pénalités Hastoy (19, 35, 63)
Exclusions temporaires:
Toulouse: J. Willis (38, antijeu), J. Marchand (61, antijeu)
La Rochelle: Nowell (22, antijeu)
Exclusions définitives:
La Rochelle: Atonio (43, plaquage dangereux), Wardi (61, brutalité)
Remplacements temporaires:
Toulouse: Aldegheri par Ainu’u (10 à 17), Roumat par Mauvaka (65 à 72)
Les équipes:
Composition Toulouse:
(1) Cyril Baille, (2) Peato Mauvaka, (3) Dorian Aldegheri, (4) Richie Arnold, (5) Thibaud Flament, (6) François Cros, (7) Jack Willis, (8) Alexandre Roumat, (9) Antoine Dupont, (10) Romain Ntamack, (11) Blair Kinghorn, (12) Pita Ahki, (13) Santiago Chocobares, (14) Juan Cruz Mallia, (15) Thomas Ramos, (16) Julien Marchand, (17) Rodrigue Neti, (18) Joshua Brennan, (19) Piula Faasalele, (20) Paul Graou, (21) Matthis Lebel, (22) Paul Costes, (23) David Ainu’u
Composition La Rochelle:
(1) Réda Wardi, (2) Silatolu Latu, (3) Uini Atonio, (4) Rémi Picquette, (5) Will Skelton, (6) Judicaël Cancoriet, (7) Oscar Jégou, (8) Grégory Alldritt, (9) Tawera Kerr-Barlow, (10) Antoine Hastoy, (11) Dillyn Leyds, (12) Jules Favre, (13) Ulupano Seuteni, (14) Jack Nowell, (15) Brice Dulin, (16) Quentin Lespiaucq, (17) Joel Sclavi, (18) Matthias Haddad, (19) Yoan Tanga, (20) Thomas Berjon, (21) Ihaia West, (22) Jonathan Danty, (23) Georges Henri Colombe
Stade Toulousain en direct
Stade Toulousain 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' : '';
h1Container.textContent = `Résultat ${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 && etatClean === "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(); };
Stade Toulousain en direct
Chaque jour de match, nous offrons une couverture en direct des matchs du Stade Toulousain – Toulouse. Suivez les résultats en écoutant des commentaires détaillés ou en consultant les scores en temps réel. Nous avons tout ce qu’il vous faut pour ne rien manquer de l’action sur le terrain.
Compétitions couvertes
Notre service de direct couvre des compétitions majeures : Tournoi des Six Nations, Coupe du Monde de Rugby, Top 14, Pro D2, Coupe d’Europe et ligues de Nationale et Fédérale. Que ce soit le Top 14 ou un autre championnat, plongez dans le rugby en direct avec nos analyses et résultats.
Comment suivre le Stade Toulousain en direct
Pour accéder à la diffusion en direct, dirigez-vous vers le menu principal. Dans cet espace, l’onglet « 🔴EN DIRECT » est entièrement consacré aux matchs en cours. Un clic vous transporte virtuellement dans le stade, où vous pouvez suivre le match du Stade Toulousain en temps réel.
Analyse et commentaires
Grâce à une équipe de commentateurs passionnés, nous garantissons une immersion totale dans l’action. Des essais spectaculaires aux pénalités décisives, vous serez informé de chaque moment clé. Nous fournissons également des statistiques, des anecdotes et des analyses qui enrichissent votre expérience.
Résultats en temps réel
Notre service de score en temps réel offre une alternative pour ceux qui préfèrent uniquement les résultats. Suivez chaque développement et obtenez un aperçu rapide de l’évolution des scores.
Écouter le Stade Toulousain en direct à la radio
Pour les amateurs de radio, profitez des commentaires en direct avec notre équipe passionnée. Où que vous soyez, restez connecté aux matchs du Stade Toulousain grâce à cette option.
Suivi sur tous les appareils
Disponible sur ordinateur, tablette ou téléphone, notre plateforme de direct vous suit partout. Pour encore plus de praticité, utilisez notre application rugby dédiée, qui vous permet de ne rien rater.
Conclusion
Rejoignez-nous pour vivre chaque match du Stade Toulousain – Toulouse en direct, que ce soit par radio ou en suivant les scores. Plongez au cœur de l’action et vivez votre passion du rugby sans interruption.
${action.text}