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