Wystąpił błąd podczas przetwarzania szablonu.
The following has evaluated to null or missing:
==> player.photoMediaWebDTO  [in template "20100#20127#3086118" at line 16, column 133]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${player.photoMediaWebDTO.url}  [in template "20100#20127#3086118" at line 16, column 131]
----
1<#setting locale = locale> 
2 
3<div> 
4	<div class="image-article-container image-article-container-single-player"> 
5		<a href="/i-zespol" class="btn-go-back"><span class="icon icon-slg-chevron-left"></span> 
6			${TranslationUtil.get("back-to-the-list-of-players", locale, "com.stellis.liga360.clubs.singleplayer.web")?lower_case} 
7		</a> 
8		<div class="img-wrapper"> 
9			<#if player.photoMediaWebDTO??> 
10					<img data-imgsize="650" loading="lazy" class="player-photo" src="${player.photoMediaWebDTO.url}" 
11						 alt="${player.firstName} ${player.lastName}"> 
12			<#else> 
13				<img class="player-photo" src="/o/single-player/images/photo-placeholder.png" alt="photo placeholder"> 
14			</#if> 
15			<#if player.backgroundMediaWebDTO??> 
16					<img data-imgsize="650" loading="lazy" class="player-photo player-photo-transparent" src="${player.photoMediaWebDTO.url}" 
17						 alt="${player.firstName} ${player.lastName}"> 
18			<#else> 
19				<img class="player-photo player-photo-transparent" 
20					 src="/o/single-player/images/background-placeholder.png" alt="background placeholder"> 
21			</#if> 
22		</div> 
23		<div class="player-info"> 
24			<div class="player-info-content"> 
25				<div class="number-and-flag"> 
26					<#if player.number != 0> 
27						<span class="number">#${player.number}</span> 
28					</#if> 
29					<img class="flag" 
30						 src="${themeDisplay.getPathThemeRoot()}/assets/img/flags/${player.shortNationality}.png"> 
31				</div> 
32 
33				<h2 class="name"><span>${player.firstName}</span> ${player.lastName}</h2> 
34				<span class="position">${player.position}</span> 
35				<div class="btn-wrapper btn-edit-placeholders"> 
36					<!-- Here will be edit button rendered by javascript --> 
37				</div> 
38			</div> 
39 
40			<div class="share-widget"> 
41				<#if player.instagram?has_content> 
42					<a href="${player.instagram}" target="_blank"><span class="icon icon-slg-instagram"></span></a> 
43				</#if> 
44 
45				<#if player.facebook?has_content> 
46					<a href="${player.facebook}" target="_blank"><span class="icon icon-slg-facebook"></span></a> 
47				</#if> 
48 
49				<#if player.twitter?has_content> 
50					<a href="${player.twitter}" target="_blank"><span class="icon icon-slg-twitter"></span></a> 
51				</#if> 
52			</div> 
53		</div> 
54 
55		<#if player.number != 0> 
56			<div class="number-big">${player.number}</div> 
57		</#if> 
58	</div> 
59 
60	<div class="single-player-details-stats-container container"> 
61		<div class="single-player-details-container"> 
62			<#if player.birthday?has_content> 
63				<#if player.number != 0> 
64					<div class="single-player-details"> 
65						<span class="title">${TranslationUtil.get("date-of-birth-date", locale, "com.stellis.liga360.clubs.singleplayer.web")?lower_case}:</span> 
66						<span class="value">${player.birthday}</span> 
67					</div> 
68				</#if> 
69			</#if> 
70 
71			<#if player.weight?has_content && player.number != 0> 
72				<div class="single-player-details"> 
73					<span class="title">${TranslationUtil.get("height", locale, "com.stellis.liga360.clubs.singleplayer.web")?lower_case}:</span> 
74					<span class="value">${player.height} cm</span> 
75				</div> 
76			</#if> 
77 
78			<#if player.weight?has_content && player.number != 0> 
79				<div class="single-player-details"> 
80					<span class="title">${TranslationUtil.get("weight", locale, "com.stellis.liga360.clubs.singleplayer.web")?lower_case}:</span> 
81					<span class="value">${player.weight} kg</span> 
82				</div> 
83			</#if> 
84 
85			<#if player.position?has_content> 
86				<div class="single-player-details"> 
87					<span class="title">${TranslationUtil.get("position", locale, "com.stellis.liga360.clubs.singleplayer.web")?lower_case}:</span> 
88					<span class="value">${player.position}</span> 
89				</div> 
90			</#if> 
91 
92			<#if player.nickname?has_content> 
93				<div class="single-player-details"> 
94					<span class="title">${TranslationUtil.get("nickname", locale, "com.stellis.liga360.clubs.singleplayer.web")?lower_case}:</span> 
95					<span class="value">${player.nickname}</span> 
96				</div> 
97			</#if> 
98 
99			<#if player.nationality?has_content> 
100				<div class="single-player-details"> 
101					<span class="title">${TranslationUtil.get("nationality", locale, "com.stellis.liga360.clubs.singleplayer.web")?lower_case}:</span> 
102					<span class="value">${player.nationality}</span> 
103				</div> 
104			</#if> 
105 
106			<#if player.careerProgression?has_content> 
107				<div class="single-player-details"> 
108					<span class="title">${TranslationUtil.get("career-progression", locale, "com.stellis.liga360.clubs.singleplayer.web")?lower_case}:</span> 
109					<span class="value">${player.careerProgression}</span> 
110				</div> 
111			</#if> 
112		</div> 
113 
114		<#if player.number != 0> 
115			<div class="single-player-stats-container"> 
116				<div class="stats-season-dropdown"> 
117					<select id="matchDataDTOS" name="matchDataDTOS" class="single-player-stats-season-dropdown" 
118							onchange="showStats(this)"> 
119						<#list entries as matchDataDTO> 
120							<option value="${matchDataDTO.seasonId}">${matchDataDTO.seasonName}</option> 
121						</#list> 
122					</select> 
123					<i class="icon icon-slg-chevron-down"></i> 
124				</div> 
125 
126				<#list entries as matchDataDTO> 
127					<div class="single-player-stats d-none" id="match-data-${matchDataDTO.seasonId}"> 
128						<#list matchDataDTO.matchDataMap as matchDataKey, matchDataValue> 
129							<div class="single-player-stats-item animation-fade-in-trigger"> 
130								<span class="title">${matchDataKey}: </span> 
131								<span class="value">${matchDataValue}</span> 
132							</div> 
133						</#list> 
134					</div> 
135				</#list> 
136			</div> 
137		</#if> 
138	</div> 
139 
140	<div class="container desktop"> 
141		<div class="separator color-default"></div> 
142	</div> 
143 
144	<div class="single-player-content container"> 
145		<div class="single-player-content-left"> 
146			<#if player.leadText?has_content> 
147				${player.getLeadByLocale(locale)} 
148			</#if> 
149		</div> 
150 
151		<div class="single-player-content-right"> 
152			<#if player.content?has_content> 
153				${player.getContentByLocale(locale)} 
154			</#if> 
155		</div> 
156	</div> 
157</div> 
158 
159<script> 
160	var singlePlayerStats = document.getElementsByClassName("single-player-stats"); 
161	if (singlePlayerStats && singlePlayerStats.length > 0) { 
162 
163		singlePlayerStats[0].classList.remove('d-none') 
164 
165		function showStats(select) { 
166			let matchData = document.getElementById('match-data-' + select.value); 
167			for (const singlePlayerStat of singlePlayerStats) { 
168				singlePlayerStat.classList.add("d-none") 
169
170			matchData.classList.remove("d-none") 
171
172
173</script> 

powiązane treści

zawodnicy