1<#-- 1. Get the relative path from the currentURL --> 
				2<#if currentURL?contains("://")> 
				3    <#-- Locate the slash after the domain --> 
				4    <#assign pos = currentURL?index_of("/", currentURL?index_of("://") + 3)> 
				5    <#assign relativePath = currentURL?substring(pos)> 
				6<#else> 
				7    <#assign relativePath = currentURL> 
				8</#if> 
				9 
				10<#-- 2. Remove any trailing slash (if not the root) --> 
				11<#if relativePath?ends_with("/") && relativePath?length gt 1> 
				12    <#assign relativePath = relativePath?substring(0, relativePath?length - 1)> 
				13</#if> 
				14 
				15<#-- 3. Split the relative path into segments --> 
				16<#assign segments = relativePath?split("/")> 
				17<#-- For example, for: 
				18     /fr/w/tout-sur-ooredoo/presse/awards/yooz-your-talent-duplicate-2-11 
				19     we have: 
				20       segments[0] = ""             (because of leading slash) 
				21       segments[1] = "fr" 
				22       segments[2] = "w" 
				23       segments[3] = "tout-sur-ooredoo" 
				24       segments[4] = "presse" 
				25       segments[5] = "awards" 
				26       segments[6] = "yooz-your-talent-duplicate-2-11" 
				27--> 
				28 
				29<#-- 4. Build the target URL by removing first and second segments (after the leading empty element) 
				30     and also dropping the last segment. In other words, join segments from index 3 to (size - 2). --> 
				31<#if segments?size gt 3> 
				32    <#assign targetSegments = []> 
				33    <#-- Iterate from index 3 up to segments?size - 2 (for our sample, from 3 to 5) --> 
				34    <#list 3..(segments?size - 2) as i> 
				35         <#assign targetSegments = targetSegments + [segments[i]]> 
				36    </#list> 
				37    <#assign targetURL = "/" + targetSegments?join("/")> 
				38<#else> 
				39    <#assign targetURL = relativePath> 
				40</#if> 
				41	<#-- 5. Remove "/presse" from the targetURL --> 
				42<#assign targetURL = targetURL?replace("/presse", "")> 
				43 
				44 
				45<!-- Debug output (remove or comment out for production) --> 
				46<#-- Retrieve the target Layout using the LayoutLocalService. 
				47Adjust the second parameter to true if the page is in a private layout. --> 
				48   <#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
				49<#assign targetLayout = LayoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, targetURL)> 
				50 
				51<#-- Get breadcrumb trail (ancestors) from the target layout --> 
				52<#assign breadcrumbLayouts = targetLayout.getAncestors()> 
				53<#-- Reverse the breadcrumbLayouts sequence --> 
				54<#assign reversedBreadcrumbLayouts = breadcrumbLayouts?reverse> 
				55 
				56<#if reversedBreadcrumbLayouts?has_content> 
				57<ol class="breadcrumb breadcrumb_standard"> 
				58   <#list reversedBreadcrumbLayouts as layout> 
				59       <li class="breadcrumb-item"> 
				60               <a 
				61                   class="breadcrumb-link" 
				62                    href="${layout.getFriendlyURL(locale)}" 
				63               > 
				64                   <span class="breadcrumb-text-truncate">${htmlUtil.escape(layout.getName(locale))}</span> 
				65               </a> 
				66       </li> 
				67            
				68   </#list> 
				69   <li class="breadcrumb-item breadcrumb-li-active"> 
				70               <a 
				71                   class="breadcrumb-link text-decoration-line: none breadcrumb-text-truncate-active " 
				72 
				73                   href="${targetLayout.getFriendlyURL(locale)}" 
				74               > 
				75                   <span class="active breadcrumb-text-truncate">${htmlUtil.escape(targetLayout.getName(locale))}</span> 
				76               </a> 
				77</ol> 
				78</#if> 
				79 
				80 
				81<style> 
				82  .portlet-boundary_com_liferay_site_navigation_breadcrumb_web_portlet_SiteNavigationBreadcrumbPortlet_ .portlet-content { 
				83    padding: 0px !important; 
				84    background: transparent !important; 
				85  } 
				86 
				87  .lfr-layout-structure-item-com-liferay-site-navigation-breadcrumb-web-portlet-sitenavigationbreadcrumbportlet .portlet-content { 
				88    background: rgb(244 246 248 / var(--tw-bg-opacity)); 
				89  } 
				90 
				91  .breadcrumb_standard { 
				92    background: transparent; 
				93    max-width: 80rem; 
				94    margin-left: auto; 
				95    margin-right: auto; 
				96    padding-left: 0; 
				97  } 
				98 
				99  .breadcrumb-text-truncate { 
				100    color: #000000 !important; 
				101  } 
				102 
				103  .breadcrumb-text-truncate.active { 
				104    color: #d6001c !important; 
				105  } 
				106		.rtl .breadcrumb-item + .breadcrumb-item::before { 
				107    transform: scaleX(-1); 
				108} 
				109</style> 
				110 
				111<script> 
				112  function updateBreadcrumb() { 
				113    var ignoredSegments = ['fr', 'en', 'web', 'guest', 'about-us', 'tout-sur-ooredoo', 'w']; 
				114    var urlSegments = window.location.pathname.split('/').filter(function(segment) { 
				115      return !ignoredSegments.includes(segment); 
				116    }); 
				117 
				118    var htmlBlock = document.getElementById('htmlblockli'); 
				119		console.log('urlSegments.length', urlSegments.length); 
				120    if (htmlBlock && urlSegments.length >= 3) { 
				121      var last2Segments = urlSegments.slice(-3); 
				122      if (last2Segments[0] && !ignoredSegments.includes(last2Segments[0])) { 
				123        var newSegment = document.getElementById('newSegment'); 
				124        if (newSegment) { 
				125          newSegment.textContent = formatString(last2Segments[0]); 
				126        } 
				127      } else { 
				128				console.log('sssssssssssss'); 
				129				var newSegment = document.getElementById('newSegmentli1'); 
				130				newSegment.parentNode.removeChild(newSegment); 
				131			} 
				132			if (last2Segments[1] && !ignoredSegments.includes(last2Segments[1])) { 
				133				console.log('vvvvvvvvv', last2Segments[1]); 
				134        var newSegment = document.getElementById('newSegment2'); 
				135        if (newSegment) { 
				136          newSegment.textContent = formatString(last2Segments[1]); 
				137					newSegment.classList.add("active"); 
				138        } 
				139      } else { 
				140				console.log('sssssssssssss'); 
				141				var newSegment = document.getElementById('newSegmentli2'); 
				142				newSegment.parentNode.removeChild(newSegment); 
				143				 
				144			} 
				145    } 
				146  } 
				147	function formatString(inputString) { 
				148		// Split the input string by '-' 
				149		console.log('formattedString start ', inputString); 
				150		const words = inputString.split('-'); 
				151 
				152		// Process each word 
				153		const formattedWords = words.map((word) => { 
				154			// Check if the word is all uppercase 
				155			if (word === word.toUpperCase()) { 
				156				return word.toLowerCase(); // Convert to lowercase if all uppercase 
				157			} 
				158 
				159			// Check if the word has only 2 letters 
				160			if (word.length === 2) { 
				161				return word.toLowerCase(); // If 2 letters, keep it in simple case 
				162			} 
				163 
				164			// Capitalize the first letter and keep the rest lowercase 
				165			return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase(); 
				166			//return word; 
				167		}); 
				168 
				169		// Join the formatted words back together with space 
				170		let formattedString = formattedWords.join(' '); 
				171		if(formattedString == 'Evenements et Activites Mediatiques' ){ 
				172		formattedString= '${languageUtil.get(locale, "media-activities")}'; 
				173			console.log('formattedString 1 ', formattedString); 
				174		} 
				175		if(formattedString == 'Csr et Mecenat' ){ 
				176		formattedString= '${languageUtil.get(locale, "csr-merchant")}'; 
				177			console.log('formattedString 2 ', formattedString); 
				178		} 
				179		if(formattedString == 'Communiques de Presse' ){ 
				180		formattedString= '${languageUtil.get(locale, "de-presse")}'; 
				181			console.log('formattedString 3 ', formattedString); 
				182		} 
				183		 
				184		if(formattedString == 'A la Une' ){ 
				185		formattedString= '${languageUtil.get(locale, "A La Une")}'; 
				186			console.log('formattedString 4 ', formattedString); 
				187		} 
				188		 
				189		console.log('formattedString end ', formattedString); 
				190		return formattedString; 
				191	} 
				192 
				193  updateBreadcrumb(); 
				194</script>