Résultat Toulouse – Oyonnax
Au Stade Ernest-Wallon Toulouse, Toulouse bat Oyonnax 61 à 34 (mi-temps: 33-22) pour le compte de la compétition top14 – 15e-journée – Poule 1
Statistiques du match:
Toulouse:
- Essais: 9
- Pénalités: 0
- Transformations: 7
- Cartons jaunes: 0
- Cartons rouges: 0
Oyonnax:
- Essais: 5
- Pénalités: 1
- Transformations: 3
- Cartons jaunes: 1
- Cartons rouges: 0
Les équipes:
Composition Toulouse:
(1) Rodrigue Neti, (2) Guillaume Cramont, (3) Nepo Laulala, (4) Joshua Brennan, (5) Richie Arnold, (6) Léo Banos, (7) Alban Placines, (8) Théo Ntamack, (9) Paul Graou, (10) Juan Cruz Mallia, (11) Matthis Lebel, (12) Pita Ahki, (13) Pierre-Louis Barassi, (14) Setareki Bituniyata, (15) Ange Capuozzo, (16) Paul Mallez, (17) David Ainu’u, (18) Clément Vergé, (19) Alexandre Roumat, (20) Mathis Castro-Ferreira, (21) Baptiste Germain, (22) Sofiane Guitoune, (23) Joel Merkler
Composition Oyonnax:
(1) Antoine Abraham, (2) Teddy Durand, (3) Thibault Berthaud, (4) Phoenix Battye, (5) Ewan Johnson, (6) Wandrille Picault, (7) Hugo Hermet, (8) Loïc Godener, (9) Charlie Cassang, (10) Jules Soulan, (11) Enzo Reybier, (12) Lucas Mensa, (13) Pedro Bettencourt, (14) Souleymane Coulibaly, (15) Maxime Salles, (16) Manu Leiataua, (17) Adrien Bordenave, (18) Irakli Mirtskhulava, (19) Victor Lebas, (20) Filimo Taofifenua, (21) Ilan El Khattabi, (22) Justin Bouraux, (23) Théo Millet
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 |
---|
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'); if (matchContainer) { rId = matchContainer.getAttribute('team-match-id'); teamRequest = true; return rId;} } if (!rId) { const parentElement = document.querySelector('#tribe-events-content'); const commentNode = Array.from(parentElement.childNodes).find(node => node.nodeType === 8); if (commentNode) { const match = commentNode.nodeValue.match(/Rencontre ID: (\d+)/); if (match) { rId = match[1]; console.log('Rencontre ID:', rId); return rId; } else { console.log('ID non trouvé dans le commentaire.'); } } else { console.log('Aucun commentaire trouvé.'); }} }
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; } const radioContainer = document.querySelector('.refresh-button-container'); radioContainer.innerHTML = ''; 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 = ''; 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'); if (action.type === 'comment') {
li.className = 'timeline-item timeline-comment'; li.style = "width: 100%;" li.innerHTML = `
`; return li; }
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");
const existingDiv = summary.querySelector('.date');
if (existingDiv) {
summary.removeChild(existingDiv);
}
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; 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}