Saturday 24/January/2026 – 12:35 AM
Confirm Ismail Sibariplayer of the Moroccan national team and the Dutch club PSV Eindhoven, said that he took the initiative to apologize to Edouard Mendy, the Senegal national team goalkeeper, against the backdrop of the towel incident that took place in the final of the 2025 African Cup of Nations.
Saibari had tried to prevent Mendy from reaching his towel, which was in the possession of Yahvan Diove, the third goalkeeper of the Teranga Lions team, an act that sparked widespread controversy after the match.
Saibari clarifies his position on the towel incident
In statements he made to ESPN, Saibari explained that what happened during the final match was wrong on his part, stressing that he bears full responsibility, noting that he quickly apologized as soon as he realized the extent of the mistake.
The Moroccan player added that after returning to his home, he saw the reactions and it became clear to him how bad the situation was, which prompted him to send a letter of apology to one of the people from the Senegalese side, in addition to his direct apology to Edouard Mendy while they were at the airport.
Saibari pointed out that the incident had become a thing of the past, stressing the need to overcome it, explaining that during that period he was more preoccupied with the bitterness of losing the final, and did not pay attention at the time to the repercussions of the behavior he had taken.
He concluded his speech by saying that the feelings he experienced after the match were very harsh, stressing that he had never experienced such a feeling before, whether inside or outside football, in light of the state of shock and sadness that dominated the national team’s dressing room.
Saibari apologizes to Mendy after the towel incident in the African Nations final
It is noteworthy that Ismail Saibari went to the residence of the Senegal national team delegation in the hotel, before leaving Moroccan territory, in order to offer a direct apology to Edouard Mendy, which was clearly shown in the video clip that was circulated on social media platforms.
replaceOembeds();
function replaceOembeds() {
var allEmbeds = document.getElementsByTagName("OEMBED");
while (allEmbeds.length != 0) {
replaceOembedWithHtml(allEmbeds[0], extractLinkFromOembed(allEmbeds[0]));
allEmbeds = document.getElementsByTagName("OEMBED");
}
runYoutubeLazyLoad();
window.onscroll = function () {
loadAPI();
window.onscroll = null;
}
// loadfbApi();
}
function replaceOembedWithHtml(element, sourceData) {
if (sourceData.source.toLowerCase() === "youtube") {
var html="
';
replaceElementWithHtml(element, html);
} else if (sourceData.source.toLowerCase() === "instagram") {
var html="
';
replaceElementWithHtml(element, html);
} else if (sourceData.source.toLowerCase() === "twitter") {
var html="
';
replaceElementWithHtml(element, html);
} else if (sourceData.source.toLowerCase() === "facebook") {
var html="
'
replaceElementWithHtml(element, html);
} else {
replaceElementWithHtml(element, "");
}
}
function extractLinkFromOembed(element) {
return getUrlSource(element.getAttribute("url"));
}
function getUrlSource(url) {
var ytRegex = /http(?:s?):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-\_]*)(&(amp;)?[\w\?=]*)?/;
var instaRegex = /(https?:\/\/www\.)?instagram\.com(\/p\/(\w+)\/?)/;
var twitterRegex = /twitter\.com\/.*\/status(?:es)?\/([^\/\?]+)/;
var fbRegex = /^https?:\/\/www\.facebook\.com.*\/(video(s)?|watch|story|posts)(\.php?|\/).+$/;
if (ytRegex.test(url)) {
return {
source: "Youtube",
url: url,
id: ytRegex.exec(url)[1]
};
}
if (instaRegex.test(url)) {
return {
source: "Instagram",
url: url,
id: instaRegex.exec(url)[3]
};
}
if (twitterRegex.test(url)) {
return {
source: "Twitter",
url: url,
id: twitterRegex.exec(url)[1]
};
}
if (fbRegex.test(url)) {
return {
source: "Facebook",
url: url,
id: fbRegex.exec(url)[1]
};
}
return {
source: "Unknown",
url: url,
id: ""
};
}
function replaceElementWithHtml(element, html) {
var str = html;
var Obj = element; //any element to be fully replaced
if (Obj.outerHTML) { //if outerHTML is supported
Obj.outerHTML = str; ///it's simple replacement of whole element with contents of str var
} else { //if outerHTML is not supported, there is a weird but crossbrowsered trick
var tmpObj = document.createElement("div");
tmpObj.innerHTML = '';
ObjParent = Obj.parentNode; //Okey, element should be parented
ObjParent.replaceChild(tmpObj, Obj); //here we placing our temporary data instead of our target, so we can find it then and replace it into whatever we want to replace to
ObjParent.innerHTML = ObjParent.innerHTML.replace('
', str);
}
}
function loadfbApi() {
var js = document.createElement('script');
js.src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.2";
document.body.appendChild(js);
}
function runYoutubeLazyLoad() {
/// youtube lazyload
var youtube = document.querySelectorAll(".youtube");
for (var i = 0; i < youtube.length; i++) {
var source = "https://img.youtube.com/vi/" + youtube[i].dataset.embed +
"/0.jpg";
var image = new Image();
image.src = "/themes/cairo2/assets/images/no.jpg";
image.classList.add('lazyload');
image.setAttribute("data-src", source);
image.setAttribute("alt", "youtube");
image.addEventListener("load", function () {
youtube[i].appendChild(image);
}(i));
youtube[i].addEventListener("click", function () {
var iframe = document.createElement("iframe");
iframe.setAttribute("frameborder", "0");
iframe.setAttribute("allowfullscreen", "");
iframe.setAttribute("src", "https://www.youtube.com/embed/" + this.dataset
.embed + "?rel=0&showinfo=0&autoplay=1");
this.innerHTML = "";
this.appendChild(iframe);
});
};
}








