Instrucciones de 26 de julio de 2024, de la Dirección General de Ordenación, Inclusión, Participación y Evaluación Educativa, por la que se regulan las enseñanzas de la etapa de Educación Secundaria Obligatoria para personas adultas para el curso 2024-2025
Portal Escolarización en Andalucía
Portal de Becas y Ayudas
Instrucciones de 26 de julio de 2024, de la Dirección General de Ordenación, Inclusión, Participación y Evaluación Educativa, por la que se regulan las enseñanzas de la etapa de Educación Secundaria Obligatoria para personas adultas para el curso 2024-2025
Se ha producido un error al procesar la plantilla.
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar): ==> journalArticle [in template "20099#20125#959235" at line 13, column 99] ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign assetEntry = AssetEntryLocalS... [in template "20099#20125#959235" at line 13, column 1] ----
1<#-- Obtener los servicios necesarios -->
2<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
5
6<#-- Obtener valores del request -->
7<#assign groupId = themeDisplay.getScopeGroupId() />
8<#assign classPK = request.getAttribute("CLASS_PK")!"" />
9<#assign className = "com.liferay.journal.model.JournalArticle" />
10<#assign journalArticle = request.getAttribute("JOURNAL_ARTICLE")!"" />
11
12<#-- Obtener el assetEntry del JournalArticle -->
13<#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.resourcePrimKey) />
14<#assign classCategories = AssetCategoryLocalService.getCategories(assetEntry.className, assetEntry.classPK) />
15
16<#-- Configuración de URL y otros parámetros -->
17<#assign
18 viewURL = requestMap.attributes.viewURL!""
19 target = ""
20 site_default_url = htmlUtil.escape(themeDisplay.getScopeGroup().getDisplayURL(themeDisplay, false))
21/>
22
23<#-- Asignación de los IDs de vocabularios Tema y Etapa -->
24<#assign TemaID = 893934 />
25<#assign EtapaID = 893470 />
26
27<#-- Función para obtener todas las categorías de un vocabulario -->
28<#function getCategoriesByVocabularyId vocabularyId>
29 <#assign categoryList = []>
30 <#assign categories = AssetCategoryLocalService.getVocabularyCategories(vocabularyId, -1, -1, null) />
31 <#list categories as category>
32 <#assign categoryList = categoryList + [{"id": category.getCategoryId(), "name": category.getName()}] />
33 </#list>
34 <#return categoryList>
35</#function>
36
37<#-- Obtener todas las categorías de los vocabularios -->
38<#assign allTemas = getCategoriesByVocabularyId(TemaID) />
39<#assign allEtapas = getCategoriesByVocabularyId(EtapaID) />
40
41<#-- Crear listas de categorías presentes en el artículo -->
42<#assign categoriasTematicas = []>
43<#assign categoriasEducativas = []>
44
45<#-- Verificar si cada categoría está presente en el artículo -->
46<#list allTemas as tema>
47 <#assign isPresent = false />
48 <#list classCategories as category>
49 <#if category.getCategoryId() == tema.id>
50 <#assign isPresent = true />
51 </#if>
52 </#list>
53 <#if isPresent>
54 <#assign categoriasTematicas = categoriasTematicas + [{"name": tema.name}] />
55 </#if>
56</#list>
57
58<#list allEtapas as etapa>
59 <#assign isPresent = false />
60 <#list classCategories as category>
61 <#if category.getCategoryId() == etapa.id>
62 <#assign isPresent = true />
63 </#if>
64 </#list>
65 <#if isPresent>
66 <#assign categoriasEducativas = categoriasEducativas + [{"name": etapa.name}] />
67 </#if>
68</#list>
69
70<#-- Actualizar enlaces -->
71<#if (EnlaceAPgina.data?has_content && EnlaceAPgina.data != '{}')>
72 <#assign viewURL = EnlaceAPgina.getFriendlyUrl() />
73 <#assign target = "_self" />
74<#elseif (enlaceExterno.getData()?? && enlaceExterno.getData() != "")>
75 <#assign viewURL = enlaceExterno.getData() />
76 <#assign target = "_blank" />
77</#if>
78
79<#-- Visualización del contenido -->
80<div class="contenido-web-banner mb-5">
81 <div class="container">
82 <div class="contenido-web-banner__cont-header-logo">
83 <div class="contenido-web-banner__container-header">
84 <header class="contenido-web-banner__header">
85 <h2 class="contenido-web-banner__alias">
86 ${.vars['reserved-article-title'].data}
87 </h2>
88 </header>
89 </div>
90 </div>
91 </div>
92</div>
93
94<div class="container card-container content-link">
95 <div class="card-container-content">
96 <div class="card-body">
97 <#if (imagenBanner.getData())?? && imagenBanner.getData() != "">
98 <a href="${viewURL}" target="${target}" class="card-link">
99 <div class="card-image" style="background-image: url('${imagenBanner.getData()}');"></div>
100 <div class="overlay">
101 <#if (contentBanner.getData()?? && (contentBanner.getData()?length != 0))>
102 <div class="card-text">
103 <p>${htmlUtil.extractText(contentBanner.getData())}</p>
104 </div>
105 </#if>
106 </div>
107 </a>
108 <#else>
109 <a href="${viewURL}" target="${target}" class="card-link">
110 <div class="card-image" style="background-image: url('/educacion/portales/o/portales-theme/images/logos/logo-junta-white.svg');"></div>
111 <div class="overlay">
112 <#if (contentBanner.getData()?? && (contentBanner.getData()?length != 0))>
113 <div class="card-text">
114 <p>${htmlUtil.extractText(contentBanner.getData())}</p>
115 </div>
116 </#if>
117 </div>
118 </a>
119 </#if>
120 </div>
121 <div class="card-aside">
122 <div class="card-aside__vocabulary">
123 <#if categoriasTematicas?has_content>
124 <h4 class="text-muted"><span class="icon-tags" aria-hidden="true"></span> Temas:</h4>
125 <ul>
126 <#list categoriasTematicas as categoria>
127 <li>
128 <span class="badge badge-pill badge-primary">${categoria.name}</span>
129 </li>
130 </#list>
131 </ul>
132 </#if>
133 </div>
134 <div class="card-aside__vocabulary">
135 <#if categoriasEducativas?has_content>
136 <h4 class="text-muted"><span class="icon-tags" aria-hidden="true"></span> Etapas:</h4>
137 <ul>
138 <#list categoriasEducativas as categoria>
139 <li>
140 <span class="badge badge-pill badge-primary">${categoria.name}</span>
141 </li>
142 </#list>
143 </ul>
144 </#if>
145 </div>
146 </div>
147 </div>
148</div>
149
150<#-- Botón "Volver" -->
151<#assign backURL = (request.getParameter("p_l_back_url"))!"" />
152<#include "${templatesPath}/398918" >
153<div class="container">
154 <div class="back_button">
155 <a href="${backURL}">
156 <span class="icon-reply" title="Volver" aria-label="Volver"></span>
157 Volver
158 </a>
159 </div>
160</div>
161
162<style>
163 .card-container-content {
164 display: flex;
165 flex-direction: row;
166 }
167 @media (max-width: 768px) {
168 .card-container-content {
169 flex-direction: column-reverse;
170 }
171 }
172 .card-container-content .card-body {
173 width: 75%;
174 flex: 2;
175 position: relative;
176 padding: 0;
177 min-height: 400px;
178 aspect-ratio: 16/9;
179 }
180 @media (max-width: 768px) {
181 .card-container-content .card-body {
182 width: 100%
183 }
184 }
185 .card-container-content .card-body .card-link {
186 color: inherit;
187 text-decoration: none;
188 height: 100%;
189 position: relative;
190 display: flex;
191 padding: 1.875rem;
192 background-color: transparent;
193 }
194 .card-container-content .card-body .card-link .card-image {
195 padding: 20px;
196 color: white;
197 position: absolute;
198 top: 0;
199 left: 0;
200 width: 100%;
201 height: 100%;
202 min-height: 400px;
203 background-position: center;
204 background-size: cover;
205 }
206 .card-container-content .card-body .card-link .card-image::after {
207 position: absolute;
208 top: 0;
209 left: 0;
210 content: "";
211 width: 100%;
212 height: 100%;
213 background: -moz-linear-gradient(top, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.3) 50%, black 100%);
214 background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.3) 50%, black 100%);
215 background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.3) 50%, #000 100%);
216 }
217 .overlay {
218 position: relative;
219 margin-top: auto;
220 color: white;
221 background-color: transparent;
222 padding: 0.9375rem;
223 }
224 .card-text {
225 color: white;
226 //text-align: left;
227 }
228 .card-aside {
229 display: flex;
230 flex-direction: column;
231 gap: 10px;
232 padding-left: 20px;
233 white-space: nowrap;
234 width: 25%;
235 }
236 @media (max-width: 768px) {
237 .card-aside {
238 width: 100%;
239 }
240 }
241 .card-aside h4 {
242 margin-bottom: 10px;
243 //border-bottom: 1px solid var(--text-muted);
244 padding-bottom: 5px;
245 }
246 .card-aside ul {
247 list-style: none;
248 padding-left: 0;
249 display: flex;
250 flex-direction: row;
251 flex-wrap: wrap;
252 }
253 .card-aside ul li {
254 margin-bottom: 10px;
255 }
256 .card-aside ul .badge {
257 padding: 10px;
258 font-size: 14px;
259 background-color: var(--primary-color);
260 }
261</style>
Nodo: sv0665:8080