ÚLTIMOS EPISODIOS PUBLICADOS

Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> audioVideoUrl  [in template "15553970#15554109#17210296" at line 68, column 103]

----
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: ${audioVideoUrl}  [in template "15553970#15554109#17210296" at line 68, column 101]
----
1<#if entries?has_content> 
2	<#assign urlBase = "" /> 
3	<#assign urlFriendly = themeDisplay.getLayout().getFriendlyURL() /> 
4	<#assign urlCurrent = themeDisplay.getURLCurrent() /> 
5	<#if urlCurrent?contains(urlFriendly)> 
6		<#assign urlBase = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent()?keep_before_last("/")?remove_ending("/")  /> 
7	<#else> 
8		<#assign urlBase = themeDisplay.getPortalURL() +themeDisplay.getURLCurrent()?remove_ending("/")  /> 
9	</#if> 
10 
11 
12 
13	<div class="row"> 
14	<#list entries as curEntry> 
15 
16		<#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry, true) /> 
17		<#assign renderer = curEntry.getAssetRenderer()> 
18        <#assign className = renderer.getClassName()> 
19 
20        <#if className == "com.liferay.journal.model.JournalArticle"> 
21            <#assign journalArticle = renderer.getArticle()> 
22            <#assign jaResourcePrimKey = journalArticle.getResourcePrimKey()> 
23		    <#assign reproducciones = journalArticle.getExpandoBridge().getAttribute('reproducciones')> 
24            <#assign document = saxReaderUtil.read(journalArticle.getContent())> 
25            <#assign rootElement = document.getRootElement()> 
26            <#assign defaultLanguageId = parseXml ("@default-locale", rootElement)> 
27 
28            <#assign title = getField("Título", locale, defaultLanguageId, rootElement)!> 
29            <#assign resume = getField("Resumen", locale, defaultLanguageId, rootElement)!> 
30 
31    		<#attempt> 
32	    		<#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='imagen']")> 
33	    		<#assign img = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
34	    		<#if isJson(img)> 
35                    <#assign imgJson = jsonFactoryUtil.createJSONObject(img)> 
36                    <#assign imgUrl = "/documents/" + imgJson.groupId + "/" + imgJson.uuid > 
37                </#if> 
38                 
39            <#recover> 
40            	<#assign imgUrl = ""> 
41            </#attempt> 
42 
43    		<#attempt> 
44	    		<#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='ArchivoDeAudioVideo']")> 
45	    		<#assign audioVideo = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
46	    		<#if isJson(audioVideo)> 
47                    <#assign audioVideoJson = jsonFactoryUtil.createJSONObject(audioVideo)> 
48                    <#assign audioVideoUrl = "/documents/" + audioVideoJson.groupId + "/" + audioVideoJson.uuid > 
49                </#if> 
50                 
51            <#recover> 
52            	<#assign audioVideoUrl = ""> 
53            </#attempt> 
54 
55			<#-- OBTIENE LAS CATEGORIAS --> 
56			<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]/> 
57			<#assign categoryList = assetCategoryLocalServiceUtil.getCategories(className , journalArticle.resourcePrimKey) > 
58 
59			<div class="col-sm-6"> 
60				<div class="latest-publications-card"> 
61					<div class="latest-publications-header"> 
62						<div class="header-img"> 
63							<img loading="lazy" decoding="async" src="${imgUrl}" width="370" height="290" alt="Serie image"> 
64						</div> 
65						<div class="header-content"> 
66							<div class="actions-cont"> 
67								<div class="actions"> 
68									<a class="jPlayerPlay" url="${audioVideoUrl}" title="${title}" id="${jaResourcePrimKey}" counter="${reproducciones}"> 
69			        					<i class="play icon-play"></i> 
70			        				</a> 
71			        			</div> 
72							</div> 
73						</div> 
74					</div> 
75					<div class="latest-publications-content"> 
76						<h5 class="title"><a href="${viewURL}">${title}</a></h5> 
77						<p class="meta"> 
78							<span class="date"> 
79							    <#setting locale="es_ES"> 
80								${journalArticle.getDisplayDate()?date?string["d MMMM'.' yyyy"]} 
81							</span> 
82						</p> 
83						<div class="content-resume small"> 
84							<p>${resume}</p> 
85						</div> 
86						<p class="read-more small"> 
87							<a href="${viewURL}" class="button-detail"> 
88								Leer más... <i class="icon-long-arrow-right"></i> 
89							</a> 
90						</p> 
91						<p class="tags"> 
92							<#list categoryList as category> 
93								<a href="${urlBase + '/publicaciones-categoría?categoryId=' + category.getCategoryId() + '&page=1'}" class="view_category"> 
94									<i class="icon-tag"></i> ${category.getName()} 
95								</a> 
96							</#list> 
97						</p> 
98					</div> 
99				</div> 
100			</div> 
101		</#if> 
102	</#list> 
103	</div> 
104</#if> 
105 
106 
107 
108 
109<#function getField field languageId defaultLanguageId xml> 
110    <#local defaultSelector = "//dynamic-content[@language-id='" + defaultLanguageId + "' and ancestor-or-self::*[@name='" + field + "']]"> 
111    <#local localeSelector = "//dynamic-content[@language-id='" + languageId + "' and parent::*[@name='" + field + "']]"> 
112 
113    <#local selector = saxReaderUtil.createXPath(localeSelector)> 
114    <#local value = selector.selectSingleNode(xml)!> 
115 
116    <#if value?has_content && value.getText()?has_content> 
117        <#return value.getText()> 
118    </#if> 
119 
120    <#local selector = saxReaderUtil.createXPath(defaultSelector)> 
121    <#local value = selector.selectSingleNode(xml)!> 
122 
123    <#if value?has_content && value.getText()?has_content> 
124        <#return value.getText()> 
125    </#if> 
126 
127    <#return ""> 
128</#function> 
129 
130<#function parseXml xpath xml> 
131    <#local selector = saxReaderUtil.createXPath(xpath)> 
132    <#local result = selector.selectSingleNode(xml)!> 
133 
134    <#if result?has_content> 
135        <#return result.getStringValue()> 
136    </#if> 
137 
138    <#return ""> 
139</#function> 
140 
141<#function isJson json> 
142    <#local value = json?trim> 
143    <#return value?has_content && value?starts_with("{") && value?ends_with("}")> 
144</#function> 

PUBLICACIONES POR CENTROS EDUCATIVOS

null 7ª Emisión 4ºC Duplicado 0

7ª Emisión 4ºC


Fondo

Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> audioVideoUrl  [in template "15553970#15554109#17210302" at line 128, column 67]

----
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: ${audioVideoUrl}  [in template "15553970#15554109#17210302" at line 128, column 65]
----
1<#assign dynamicQueryFactoryUtil = staticUtil["com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil"] /> 
2<#assign classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService")> 
3<#assign expandoValueLocalService = serviceLocator.findService("com.liferay.expando.kernel.service.ExpandoValueLocalService")> 
4<#assign propertyFactoryUtil = staticUtil["com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil"] /> 
5<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
6<#assign expandoValueClass = staticUtil["com.liferay.portal.kernel.util.ClassResolverUtil"].resolveByPortalClassLoader("com.liferay.expando.kernel.model.ExpandoValue") /> 
7<#assign PortalClassLoaderUtil = staticUtil["com.liferay.portal.kernel.util.PortalClassLoaderUtil"] /> 
8<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/> 
9<#assign expandoColumnLocalService = serviceLocator.findService("com.liferay.expando.kernel.service.ExpandoColumnLocalService") /> 
10<#assign expandoTableLocalService = serviceLocator.findService("com.liferay.expando.kernel.service.ExpandoTableLocalService") /> 
11 
12<#if entries?has_content> 
13 
14 
15 
16<#assign title = ""> 
17<#if portletPreferences["portletSetupTitle_es_ES"]??> 
18    <#assign title = portletPreferences["portletSetupTitle_es_ES"]?first /> 
19</#if> 
20 
21<h1 style="text-align: center; white-space: nowrap;">${title}</h1> 
22 
23 
24<#assign classNameId = classNameLocalService.getClassNameId("com.liferay.journal.model.JournalArticle")> 
25<#assign entryIds = [] /> 
26<#assign assetEntries = AssetEntryLocalService.getGroupEntries(themeDisplay.getScopeGroupId())> 
27 
28<#assign structureId = portletPreferences["classTypeIdsJournalArticleAssetRendererFactory"] /> 
29 
30<#list assetEntries as assetEntry> 
31    <#if assetEntry.className =="com.liferay.journal.model.JournalArticle" &&  assetEntry.getVisible() == true  && structureId[0] == assetEntry.getClassTypeId()?string > 
32        <#assign entryId =journalArticleLocalService.fetchLatestArticle(assetEntry.getClassPK()).id/> 
33        <#assign entryIds = entryIds + [entryId] /> 
34    </#if> 
35</#list> 
36 
37<#assign expandoTable = expandoTableLocalService.getTable(companyId, classNameId, "CUSTOM_FIELDS") /> 
38<#assign expandoColumn = expandoColumnLocalService.getColumn(expandoTable.getTableId(), "reproducciones") /> 
39<#assign columnId = expandoColumn.getColumnId() /> 
40 
41<#assign dynamicQuery = dynamicQueryFactoryUtil.forClass(expandoValueClass, PortalClassLoaderUtil.getClassLoader())> 
42<#assign valueIdProperty = propertyFactoryUtil.forName("classPK")/> 
43<#assign dynamicQuery = dynamicQuery.add(valueIdProperty.in(entryIds))/> 
44<#assign propertyColumnId = propertyFactoryUtil.forName("columnId") /> 
45<#assign dynamicQuery = dynamicQuery.add(propertyColumnId.eq(columnId)) /> 
46<#assign expandoValues = expandoValueLocalService.dynamicQuery(dynamicQuery) /> 
47 
48<#assign convertedValues = []> 
49<#list expandoValues as value> 
50 
51    <#assign dataNumber = value.data?number> 
52     
53    <#assign convertedValues = convertedValues + [{ 
54        "value": value,  
55        "dataNumber": dataNumber 
56        }]> 
57</#list> 
58  
59<#assign sortedValues = convertedValues?sort_by("dataNumber")> 
60<#assign sortedValues = sortedValues?reverse> 
61 
62<#assign delta = portletPreferences["delta"][0]?number> 
63 
64<#assign urlBase = "" /> 
65<#assign urlFriendly = themeDisplay.getLayout().getFriendlyURL() /> 
66<#assign urlCurrent = themeDisplay.getURLCurrent() /> 
67<#if urlCurrent?contains(urlFriendly)> 
68    <#assign urlBase = themeDisplay.getURLCurrent()?keep_before_last("/") /> 
69<#else> 
70    <#assign urlBase = themeDisplay.getURLCurrent() /> 
71</#if> 
72 
73<#assign counter = 0> 
74 
75<div class="row"> 
76    <#list sortedValues as value> 
77 
78        <#if counter lt delta> 
79            <#assign journalArticle = journalArticleLocalService.getArticle(value.value.classPK) /> 
80            <#assign jaResourcePrimKey = journalArticle.getResourcePrimKey()> 
81            <#assign assetEntry = AssetEntryLocalService.fetchEntry(classNameId, jaResourcePrimKey) /> 
82            <#assign viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetEntry, true) /> 
83            <#assign reproducciones = journalArticle.getExpandoBridge().getAttribute('reproducciones')> 
84            <#assign document = saxReaderUtil.read(journalArticle.getContent())> 
85            <#assign rootElement = document.getRootElement()> 
86            <#assign defaultLanguageId = parseXml ("@default-locale", rootElement)> 
87 
88            <#assign title = getField("Título", locale, defaultLanguageId, rootElement)!> 
89            <#assign resume = getField("Resumen", locale, defaultLanguageId, rootElement)!> 
90 
91            <#attempt> 
92                <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='imagen']")> 
93                <#assign img = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
94                <#if isJson(img)> 
95                    <#assign imgJson = jsonFactoryUtil.createJSONObject(img)> 
96                    <#assign imgUrl = "/documents/" + imgJson.groupId + "/" + imgJson.uuid > 
97                </#if> 
98            <#recover> 
99                <#assign imgUrl = ""> 
100            </#attempt> 
101 
102            <#attempt> 
103                <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='ArchivoDeAudioVideo']")> 
104                <#assign audioVideo = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
105                <#if isJson(audioVideo)> 
106                    <#assign audioVideoJson = jsonFactoryUtil.createJSONObject(audioVideo)> 
107                    <#assign audioVideoUrl = "/documents/" + audioVideoJson.groupId + "/" + audioVideoJson.uuid > 
108                </#if> 
109            <#recover> 
110                <#assign audioVideoUrl = ""> 
111            </#attempt> 
112 
113 
114 
115            <#-- OBTIENE LAS CATEGORIAS --> 
116            <#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]/> 
117            <#assign categoryList = assetCategoryLocalServiceUtil.getCategories(className , journalArticle.resourcePrimKey) > 
118 
119            <div class="col-sm-6"> 
120                <div class="latest-publications-card"> 
121                    <div class="latest-publications-header"> 
122                        <div class="header-img"> 
123                            <img loading="lazy" decoding="async" src="${imgUrl}" width="370" height="290" alt="Serie image"> 
124                        </div> 
125                        <div class="header-content"> 
126                            <div class="actions-cont"> 
127                                <div class="actions"> 
128                                    <a class="jPlayerPlay" url="${audioVideoUrl}" title="${title}" id="${jaResourcePrimKey}" counter="${reproducciones}"> 
129                                        <i class="play icon-play"></i> 
130                                    </a> 
131                                </div> 
132                            </div> 
133                        </div> 
134                    </div> 
135                    <div class="latest-publications-content"> 
136                        <h5 class="title"><a href="${viewURL}">${title}</a></h5> 
137                        <p class="meta"> 
138                            <span class="date"> 
139                                ${journalArticle.getDisplayDate()?date?string["d MMMM'.' yyyy"]} 
140                            </span> 
141                        </p> 
142                        <div class="content-resume small"> 
143                            <p>${resume}</p> 
144                        </div> 
145                        <p class="read-more small"> 
146                            <a href="${viewURL}" class="button-detail"> 
147                                Leer más... <i class="icon-long-arrow-right"></i> 
148                            </a> 
149                        </p> 
150                        <p class="tags"> 
151                            <#list categoryList as category> 
152                                <a href="${urlBase + '/publicaciones-categoría?categoryId=' + category.getCategoryId() + '&page=1'}" class="view_category"> 
153                                    <i class="icon-tag"></i> ${category.getName()} 
154                                </a> 
155                            </#list> 
156                        </p> 
157                    </div> 
158                </div> 
159            </div> 
160            <#assign counter = counter + 1>  
161        <#else> 
162            <#break> 
163        </#if> 
164    </#list> 
165</div> 
166 
167</#if> 
168 
169 
170<#function getField field languageId defaultLanguageId xml> 
171    <#local defaultSelector = "//dynamic-content[@language-id='" + defaultLanguageId + "' and ancestor-or-self::*[@name='" + field + "']]"> 
172    <#local localeSelector = "//dynamic-content[@language-id='" + languageId + "' and parent::*[@name='" + field + "']]"> 
173 
174    <#local selector = saxReaderUtil.createXPath(localeSelector)> 
175    <#local value = selector.selectSingleNode(xml)!> 
176 
177    <#if value?has_content && value.getText()?has_content> 
178        <#return value.getText()> 
179    </#if> 
180 
181    <#local selector = saxReaderUtil.createXPath(defaultSelector)> 
182    <#local value = selector.selectSingleNode(xml)!> 
183 
184    <#if value?has_content && value.getText()?has_content> 
185        <#return value.getText()> 
186    </#if> 
187 
188    <#return ""> 
189</#function> 
190 
191<#function parseXml xpath xml> 
192    <#local selector = saxReaderUtil.createXPath(xpath)> 
193    <#local result = selector.selectSingleNode(xml)!> 
194 
195    <#if result?has_content> 
196        <#return result.getStringValue()> 
197    </#if> 
198 
199    <#return ""> 
200</#function> 
201 
202<#function isJson json> 
203    <#local value = json?trim> 
204    <#return value?has_content && value?starts_with("{") && value?ends_with("}")> 
205</#function>