ÚLTIMOS EPISODIOS PUBLICADOS
Se ha producido un error al procesar la plantilla.
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 ETAPAS EDUCATIVAS
null Nouvelle (haute) couture
MARIA RODRIGUEZ ALVAREZ
modificado hace 2 meses
Les élèves de Seconde Langue Étrangère: Français de 1er BAC (année 2024-2025) nous présentent la trajectoire de deux dessinateurs de mode actuels qui ont déclenché une révolution dans son domaine. Il s'agit de Palomo Spain et de Lucía Miravalles, fondatrice de la marque asturienne "RingoRango". [ESP] El alumnado de Segunda Lengua Extranjera: Francés de 1º Bachillerato (curso 2024-2025) nos presentan la trayectoria de dos diseñadores de moda que han desencadenado una pequeña revolución en su campo. Se trata de Palomo Spain y de Lucía Miravalles, fundadora de la marca asturiana "RingoRango".

SERIES
Primaria
PUBLICACIONES POR CENTROS EDUCATIVOS
SERIES
CP La Ería
EPISODIOS
+ 3 más
SERIES
IES La Ería
SERIES
IES La Fresneda
Se ha producido un error al procesar la plantilla.
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>