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