Kanten Fitxa
Errorea gertatu da txantiloia prozesatzerakoan.
The following has evaluated to null or missing:
==> posterEntryA [in template "20902#20940#7261252" at line 269, column 59]
----
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: #assign audioMidiUrl = themeDisplay.g... [in template "20902#20940#7261252" at line 267, column 49]
----
1<link rel="stylesheet" href="/o/x61tThemeIkasbilWAR-theme/css/scriptVideo.css">
2<style>
3 #detalle-fitxa h2 {
4 text-align: center;
5 margin-top: 0px;
6 line-height: 34px;
7 margin-bottom: 15px;
8 }
9 .centro, .bloqueAudio, .bideo {
10 text-align: center;
11 }
12
13 .descarga {
14 color: #2579A7;
15 }
16
17 .descarga:hover {
18 text-decoration: underline;
19 text-decoration-color: #2579A7;
20 }
21
22 .espacio {
23 padding-bottom: 10px;
24 }
25
26 #detalle-fitxa > div:last-of-type .centro.espacio + .centro p::first-letter {
27 font-weight: 700;
28 }
29</style>
30
31<!--TRADUCCIONES-->
32<#assign bajar = "Jaitsi">
33<#assign autorM = "Musikaren egilea">
34<#assign autorL = "Hitzen egilea">
35<#assign tipo = "Mota">
36<#assign palabrasClave = "Hitz gakoak">
37<#assign etqPartitura = "Partitura">
38
39<#if locale=='en_US'>
40 <#assign bajar = "Download">
41 <#assign autorM = "Music Author">
42 <#assign autorL = "Lyrics author">
43 <#assign tipo = "Type">
44 <#assign palabrasClave = "Keywords">
45 <#assign etqPartitura = "Partitura">
46</#if>
47<#if locale=='fr_FR'>
48 <#assign bajar = "Télécharger">
49 <#assign autorM = "Auteur de la musique">
50 <#assign autorL = "Auteur de la lettre">
51 <#assign tipo = "Type">
52 <#assign palabrasClave = "Mots-clés">
53 <#assign etqPartitura = "Partitura">
54</#if>
55<#if locale=='es_ES'>
56 <#assign bajar = "Bajar">
57 <#assign autorM = "Autor de la música">
58 <#assign autorL = "Autor de la letra">
59 <#assign tipo = "Tipo">
60 <#assign palabrasClave = "Palabras clave">
61 <#assign etqPartitura = "Partitura">
62</#if>
63
64
65<#assign url = themeDisplay.getURLCurrent()>
66
67<#assign id = "">
68<#if url?contains("articleId=")>
69 <#assign id = url?keep_after("articleId=")?keep_before("&")>
70</#if>
71
72<#assign DLAppService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")>
73
74<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
75
76<#assign getterUtil = staticUtil["com.liferay.portal.kernel.util.GetterUtil"] />
77
78<#-- Id del vocabulario Cancion-->
79<#assign assetVocabularyLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetVocabularyLocalServiceUtil"]>
80<#assign lisVocabularios = assetVocabularyLocalServiceUtil.getGroupVocabularies(getterUtil.getLong(groupId))/>
81<#assign IdCategoriaCanciones = 0>
82<#list lisVocabularios as vocabulario>
83 <#if vocabulario.getName() == "Canción">
84 <#assign IdCategoriaCanciones = vocabulario.getVocabularyId()/>
85 </#if>
86</#list>
87
88
89<#if id?has_content>
90 <#if journalArticleLocalService??>
91
92 <#assign articleById = journalArticleLocalService.getDisplayArticle(getterUtil.getLong(groupId), id) />
93
94 <#assign document = saxReaderUtil.read(articleById.getContentByLocale(locale)) >
95 <#assign titulo = document.valueOf("//dynamic-element[@name='izenburua']/dynamic-content/text()") />
96 <#assign descripcion = document.valueOf("//dynamic-element[@name='deskribapena']/dynamic-content/text()") />
97 <#assign autorMusica = document.valueOf("//dynamic-element[@name='musikaren_egilea']/dynamic-content/text()") />
98 <#assign autorLetra = document.valueOf("//dynamic-element[@name='hitzen_egilea']/dynamic-content/text()") />
99 <#assign audioMp3 = document.valueOf("//dynamic-element[@name='audioa_mp3']/dynamic-content/text()") />
100 <#assign audioMidi = document.valueOf("//dynamic-element[@name='audio_midi']/dynamic-content/text()") />
101 <#assign partitura = document.valueOf("//dynamic-element[@name='partitura']/dynamic-content/text()") />
102 <#assign imagen = document.valueOf("//dynamic-element[@name='irudia']/dynamic-content/text()") />
103 <#assign video = document.valueOf("//dynamic-element[@name='bideoa']/dynamic-content/text()") />
104
105 <#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]>
106 <#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.journal.service.JournalArticleResourceLocalServiceUtil"]>
107 <#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, id)/>
108 <#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK) >
109
110 <#assign assetCategoryPropertyLocalServiceUtil = staticUtil["com.liferay.asset.category.property.service.AssetCategoryPropertyLocalServiceUtil"]>
111
112
113 <#-- Etiquetas de un contenido-->
114 <#assign contadorEtiquetas=0/>
115 <#assign listAssetTag = [] />
116
117 <#assign assetEntryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil"]>
118 <#assign assetEntry=assetEntryLocalServiceUtil.getEntry("com.liferay.journal.model.JournalArticle", articleResourcePK)/>
119
120 <#list assetEntry.getTags() as tag>
121 <#assign listAssetTag=assetEntry.getTags()/>
122 </#list>
123 <#list listAssetTag as assetTag>
124 <#assign contadorEtiquetas=contadorEtiquetas+1/>
125 </#list>
126
127 <div class="col-xs-12 col-md-12 col-lg-12 separadorDerecho" id="detalle-fitxa">
128 <!--PARTE IZQUIERDA-->
129 <div class="col-xs-12 col-sm-4 col-md-3 col-lg-3">
130 <#assign posterUrl = ""/>
131 <#if imagen != "" && imagen?has_content && imagen?contains("uuid")>
132 <#assign imagenJson = jsonFactoryUtil.createJSONObject(imagen) />
133 <#assign posterEntry = DLAppService.getFileEntryByUuidAndGroupId(imagenJson.getString("uuid"), imagenJson.getLong("groupId")) />
134 <#assign posterUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/"
135 + posterEntry.getGroupId() + "/" + posterEntry.getFolderId() + "/" + htmlUtil.escapeURL(posterEntry.getTitle()) + "/" + posterEntry.getUuid()
136 + "?t=" + posterEntry.getModifiedDate()?long />
137 <img id="imgDetalle" src=${posterUrl}>
138 <#else>
139 <img id="imgDetalle" src="/o/x61tThemeIkasbilWAR-theme/images/Logo_Sin_resultados_Habe.jpg"/>
140 </#if>
141 <div class="resumen">
142 <ul class="sinPunto">
143 <#if autorMusica !="">
144 <li>
145 <span class="negrita">${autorM}: </span>${autorMusica}
146 </li>
147 </#if>
148 <#if autorLetra !="">
149 <li>
150 <span class="negrita">${autorL}: </span>${autorLetra}
151 </li>
152 </#if>
153
154 <#assign contCanciones = 0/>
155 <#list categoryList as category>
156 <#if category.getVocabularyId() == IdCategoriaCanciones>
157 <#assign contCanciones =contCanciones + 1/>
158 </#if>
159 </#list>
160 <#assign property_value ="" />
161 <#if contCanciones != 0>
162 <li>
163 <span class="negrita">${tipo}: </span>
164 <#list categoryList as category>
165 <#if category.getVocabularyId() == IdCategoriaCanciones>
166 <#assign assetCategoryPropertyList = assetCategoryPropertyLocalServiceUtil.getCategoryProperties(category.getCategoryId())/>
167 <#list assetCategoryPropertyList as assetCategoryProperty>
168 <#assign assetCategoryKey = assetCategoryProperty.getKey()/>
169 <#assign idioma = locale.toString()/>
170 <#if (assetCategoryKey == idioma)>
171 <#assign property_value = assetCategoryProperty.getValue()/>
172 </#if>
173 </#list>
174 <#if category.getName() == "Kantu Maitasunezkoak">
175 <img title="${property_value}" src="/o/x61tThemeIkasbilWAR-theme/images/icono-negro-CancAmor.png" alt="${property_value}">
176 <#elseif category.getName() == "Haur-kantak">
177 <img title="${property_value}" src="/o/x61tThemeIkasbilWAR-theme/images/icono-negro-CancInfantil.png" alt="${property_value}">
178 <#elseif category.getName() == "Sentimenduzkoak">
179 <img title="${property_value}" src="/o/x61tThemeIkasbilWAR-theme/images/icono-negro-CancSent.png" alt="${property_value}">
180 <#else>
181 ${property_value}
182 </#if>
183 </#if>
184 </#list>
185 </li>
186 </#if>
187
188 <#if contadorEtiquetas != 0>
189 <li>
190 <span class="negrita">${palabrasClave}: </span>
191 <#list listAssetTag as assetTag>
192 <#assign contadorEtiquetas = contadorEtiquetas - 1/>
193 <#if contadorEtiquetas != 0>
194 ${assetTag.getName()},
195 <#else>
196 ${assetTag.getName()}
197 </#if>
198 </#list>
199 </li>
200 </#if>
201 </ul>
202 </div>
203 </div>
204 <!--PARTE DERECHA-->
205 <div class="col-xs-12 col-sm-8 col-md-9 col-lg-9">
206 <#if titulo != "">
207 <h2>${titulo}</h2>
208 </#if>
209 <#assign audioUrl = ""/>
210 <#if (audioMp3?has_content && audioMp3?contains("uuid"))>
211 <div class="bloqueAudio">
212 <audio controls>
213 <#assign audioJson = jsonFactoryUtil.createJSONObject(audioMp3) />
214 <#assign posterEntryA = DLAppService.getFileEntryByUuidAndGroupId(audioJson.getString("uuid"), audioJson.getLong("groupId")) />
215 <#assign audioUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/"
216 + posterEntryA.getGroupId() + "/" + posterEntryA.getFolderId() + "/" + htmlUtil.escapeURL(posterEntryA.getTitle()) + "/" + posterEntryA.getUuid()
217 + "?t=" + posterEntryA.getModifiedDate()?long />
218
219 <source src="${audioUrl}" type="audio/mpeg">
220 </audio>
221 </div>
222 </#if>
223
224 <#if video != "">
225 <#assign imagenPortada="">
226 <#if imagen !="">
227 <#assign imagenPortada="poster=${posterUrl}">
228 </#if>
229 <div class="bideo">
230 <#if !video?contains(".flv")>
231 <div id='player'>
232 <div id="elemento-video">
233 <video id='video-element' width="95%" ${imagenPortada} >
234 <source src="movie.ogg" type="video/ogg">
235 <source src="${video}" type="video/mp4">
236 </video>
237 <div class="mejs-overlay mejs-layer mejs-overlay-play" style="width: 95%;">
238 <div class="mejs-overlay-button" >
239 <button id="btnPlayPause" title="play" accesskey="P" onclick="playPauseVideo();" ></button>
240
241 </div>
242 </div>
243 </div>
244 <div id='controls'>
245 <progress id='progress-bar' min='0' max='100' value='0'>0% played</progress>
246 <a id='btnReplay' class='replay' title='replay' accesskey="R" onclick='replayVideo();'><i class="fa fa-repeat"></i></a>
247 <a id='btnPlayPause' class='play' title='play' accesskey="P" onclick='playPauseVideo();'><i class="fa fa-play-circle"></i></a>
248 <a id='btnStop' class='stop' title='stop' accesskey="X" onclick='stopVideo();'><i class="fa fa-stop-circle"></i></a>
249 <input type="range" id="volume-bar" title="volume" min="0" max="1" step="0.1" value="1">
250 <a id='btnMute' class='mute' title='mute' onclick='muteVolume();'><i class="fa fa-volume-off"></i></a>
251 <a id='btnFullScreen' class='fullscreen' title='toggle full screen' accesskey="T" onclick='toggleFullScreen();'>[ ]</a>
252 </div>
253 </div>
254
255 </#if>
256 </div>
257 </#if>
258 <div class="centro espacio">
259 <#if audioUrl != "">
260 <a href="${audioUrl}" target="_blank" class="descarga botonEnlaceDokuteka">
261 mp3 <i class="fa fa-download"></i>
262 </a>
263 </#if>
264 <#if (audioMidi?has_content && audioMidi?contains("uuid"))>
265 <#assign audioMidiJson = jsonFactoryUtil.createJSONObject(audioMidi) />
266 <#assign posterMidiEntryA = DLAppService.getFileEntryByUuidAndGroupId(audioMidiJson.getString("uuid"), audioMidiJson.getLong("groupId")) />
267 <#assign audioMidiUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/"
268 + posterMidiEntryA.getGroupId() + "/" + posterMidiEntryA.getFolderId() + "/" + htmlUtil.escapeURL(posterMidiEntryA.getTitle()) + "/" + posterMidiEntryA.getUuid()
269 + "?t=" + posterEntryA.getModifiedDate()?long />
270 <a href="${audioMidiUrl}" target="_blank" class="descarga botonEnlaceDokuteka">
271 midi <i class="fa fa-download"></i>
272 </a>
273 </#if>
274 <#if (partitura?has_content && partitura?contains("uuid"))>
275 <#assign partituraJson = jsonFactoryUtil.createJSONObject(partitura) />
276 <#assign posterPartituraJsonEntryA = DLAppService.getFileEntryByUuidAndGroupId(partituraJson.getString("uuid"), partituraJson.getLong("groupId")) />
277 <#assign audioPartituraUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/"
278 + posterPartituraJsonEntryA.getGroupId() + "/" + posterPartituraJsonEntryA.getFolderId() + "/" + htmlUtil.escapeURL(posterPartituraJsonEntryA.getTitle()) + "/" + posterPartituraJsonEntryA.getUuid()
279 + "?t=" + posterEntryA.getModifiedDate()?long />
280 <a href="${audioPartituraUrl}" target="_blank" class="descarga botonEnlaceDokuteka">
281 ${etqPartitura} <i class="fa fa-download"></i>
282 </a>
283 </#if>
284 </div>
285 <#if descripcion != "">
286 <div class="centro">
287 ${descripcion}
288 </div>
289 </#if>
290 </div>
291 </div>
292 </#if>
293</#if>
294<script src="/o/x61tThemeIkasbilWAR-theme/js/scriptVideo.js"></script>
