Publicaciones - Foro para la Integración Social de los Inmigrantes
Órgano de consulta, información y asesoramiento del Gobierno de España en materia de integración de las personas inmigrantes
Publicaciones
Declaración del Foro para la Integración Social de los Inmigrantes (FISI) con motivo del Día Mundial de la Diversidad Cultural para el Diálogo y el Desarrollo
Declaración del 21 de Mayo de 2025.
Comunicado del Foro para la Integración Social de los Inmigrantes en relación con los mensajes SMS enviados a la población nacional de terceros países por parte de la Consejería de Sanidad de la Comunidad de Madrid
Comunicado del 14 de abril de 2025.
Declaración del Foro para la Integración Social de los Inmigrantes (FISI) sobre el Día Internacional de la Eliminación de la Discriminación Racial
Declaración del 21 de Marzo de 2025.
Guía de la ciudadanía española en el exterior

La Guía para la Ciudadanía Española en el Exterior es una publicación dedicada a la ciudadanía española que reside fuera de nuestras fronteras y a aquellos que, tras una temporada en el extranjero, desean regresar a España.
La decisión de vivir en el extranjero representa una experiencia transformadora, llena de retos y oportunidades. Ya sea en busca de una educación de calidad, de una mejora en las condiciones de vida, de un trabajo que impulse la experiencia laboral o de la creación de un nuevo negocio, mudarse a otro país implica un cambio profundo que va más allá de una simple reubicación geográfica.
Emprender un viaje más allá de las fronteras de España supone embarcarse en un proyecto de aprendizaje y crecimiento personal. Ya sea por trabajo, negocios o estudios, cada paso en el extranjero es una prueba de adaptación y al mismo tiempo una oportunidad para expandir horizontes personales y profesionales y sumergirse en culturas diversas.
Esta guía ha sido diseñada con el objetivo de ofrecer una orientación integral de cada etapa de la vida en el extranjero, desde antes de salir hasta que se plantea el regreso, proporcionando información clave, consejos prácticos y recursos útiles para hacer de esta transición un proceso más fluido y exitoso.
Uno de los aspectos más importantes al planificar la salida al extranjero es entender qué apoyo y servicios puede proporcionar la administración pública. A menudo, quienes deciden salir de España desconocen la variedad de recursos disponibles para facilitar su integración en otro país.
La administración pública puede ser un aliado fundamental en este proceso, brindando apoyo en áreas clave como educación, empleo, emprendimiento, salud y protección social. En este sentido, la Guía recoge con detalle el conjunto de actuaciones de apoyo que la legislación contempla a favor de la ciudadanía española en el exterior o retornada, especialmente la de mayor edad o en situación de vulnerabilidad, así como a favor del asociacionismo, y que gestiona la Dirección General de la Ciudadanía Española en el Exterior y Políticas de Retorno.
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> catPropValue [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 54]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign color = catPropValue.getValue() [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 37]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign entry = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
4<#assign articlePriority = assetEntryLocalService.getEntryPriority("com.liferay.journal.model.JournalArticle", getterUtil.getLong(entry.getResourcePrimKey())) />
5
6<div class="doc-aprobado">
7 <div class="media my-3">
8 <div class="media-body">
9 <#if biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()?has_content || biblioteca_publicacion_titulo.getData()?has_content>
10 <a href="${biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()}"
11 target="_blank">
12 <h2 class="h3">${biblioteca_publicacion_titulo.getData()}</h2>
13 </a>
14 </#if>
15 <#if biblioteca_publicacion_portada.getData()?has_content>
16 <div class="imagen-documento">
17 <img alt="${biblioteca_publicacion_portada.getAttribute("alt")}"
18 data-fileentryid="${biblioteca_publicacion_portada.getAttribute("fileEntryId")}"
19 src="${biblioteca_publicacion_portada.getData()}" class="mr-4"/>
20 </div>
21 <#else>
22 <div class="imagen-documento">
23 <img alt="<@liferay.language key="foro.alt.resultado"/>"
24 src="/documents/1652165/1651241/document-309065_960_720.png/a86f37c8-b3f4-b75d-53c2-51a9d73eb37e?t=1663254524921"
25 class="mr-4"/>
26 </div>
27 </#if>
28 <#if biblioteca_publicacion_sinopsis.getData()?has_content>
29 <div class="mt-3">
30 ${biblioteca_publicacion_sinopsis.getData()}
31 </div>
32 </#if>
33
34 <#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
35 <#assign article = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
36 <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
37 <#assign globalGroup = groupLocalService.getCompanyGroup(company.getCompanyId()) />
38 <#assign globalGroupId = globalGroup.getGroupId() />
39 <#assign allCategories = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(article.getResourcePrimKey()) ) />
40 <#assign articleCategories = allCategories?filter(cat -> cat.getGroupId() == globalGroupId) />
41
42 <#if (articleCategories?size gt 0) || (articlePriority gt 0)>
43 <#assign catPropLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
44 <#assign categoriasExcluidas = ["Anual", "Biblioteca"] />
45
46 <div class="mt-3 doc-categories">
47 <#if (articlePriority gt 0)>
48 <i class="bi bi-bookmark-star"></i>
49 </#if>
50
51 <#if (articleCategories?size gt 0)>
52 <#assign html = "" />
53 <#assign primero = 0 />
54 <#assign ultimo = 0 />
55
56 <#list articleCategories as curCat>
57 <#if categoriasExcluidas?seq_contains(curCat.getName())>
58 <#continue>
59 </#if>
60
61 <#assign color = "" />
62
63 <#if curCat.name?matches("^[0-9]+$")>
64 <#assign indice = curCat.name?number />
65 <#if primero == 0>
66 <#assign primero = indice />
67 <#elseif primero gt indice>
68 <#assign ultimo = primero />
69 <#assign primero = indice />
70 <#elseif primero lt indice>
71 <#if ultimo lt indice>
72 <#assign ultimo = indice />
73 </#if>
74 </#if>
75 <#else>
76 <#if html != curCat.name>
77 <#assign html = curCat.name />
78 </#if>
79
80 <#assign catPropValue = catPropLocalService.fetchCategoryProperty(curCat.getCategoryId(), "Color")!"" />
81 <#if catPropValue??>
82 <#assign color = catPropValue.getValue() />
83 </#if>
84
85 <span class="select-${color}" title="${html}">${html}</span>
86 <style>
87 .select-${color} {
88 border: 1px solid transparent;
89 padding: 0.25rem 0.5rem;
90 font-size: 0.775rem;
91 line-height: 1.5;
92 border-radius: 0.2rem;
93 color: #ffffff;
94 background-color: #${color};
95 display: inline-block;
96 font-weight: 400;
97 text-align: center;
98 vertical-align: middle;
99 }
100 </style>
101 </#if>
102 </#list>
103 <#if ultimo != 0>
104 <span class="anio" title="${primero} - ${ultimo}">${primero} - ${ultimo}</span>
105 <#else>
106 <span class="anio" title="${primero}">${primero}</span>
107 </#if>
108 </#if>
109 </div>
110 </#if>
111 </div>
112 </div>
113</div>
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> catPropValue [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 54]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign color = catPropValue.getValue() [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 37]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign entry = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
4<#assign articlePriority = assetEntryLocalService.getEntryPriority("com.liferay.journal.model.JournalArticle", getterUtil.getLong(entry.getResourcePrimKey())) />
5
6<div class="doc-aprobado">
7 <div class="media my-3">
8 <div class="media-body">
9 <#if biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()?has_content || biblioteca_publicacion_titulo.getData()?has_content>
10 <a href="${biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()}"
11 target="_blank">
12 <h2 class="h3">${biblioteca_publicacion_titulo.getData()}</h2>
13 </a>
14 </#if>
15 <#if biblioteca_publicacion_portada.getData()?has_content>
16 <div class="imagen-documento">
17 <img alt="${biblioteca_publicacion_portada.getAttribute("alt")}"
18 data-fileentryid="${biblioteca_publicacion_portada.getAttribute("fileEntryId")}"
19 src="${biblioteca_publicacion_portada.getData()}" class="mr-4"/>
20 </div>
21 <#else>
22 <div class="imagen-documento">
23 <img alt="<@liferay.language key="foro.alt.resultado"/>"
24 src="/documents/1652165/1651241/document-309065_960_720.png/a86f37c8-b3f4-b75d-53c2-51a9d73eb37e?t=1663254524921"
25 class="mr-4"/>
26 </div>
27 </#if>
28 <#if biblioteca_publicacion_sinopsis.getData()?has_content>
29 <div class="mt-3">
30 ${biblioteca_publicacion_sinopsis.getData()}
31 </div>
32 </#if>
33
34 <#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
35 <#assign article = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
36 <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
37 <#assign globalGroup = groupLocalService.getCompanyGroup(company.getCompanyId()) />
38 <#assign globalGroupId = globalGroup.getGroupId() />
39 <#assign allCategories = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(article.getResourcePrimKey()) ) />
40 <#assign articleCategories = allCategories?filter(cat -> cat.getGroupId() == globalGroupId) />
41
42 <#if (articleCategories?size gt 0) || (articlePriority gt 0)>
43 <#assign catPropLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
44 <#assign categoriasExcluidas = ["Anual", "Biblioteca"] />
45
46 <div class="mt-3 doc-categories">
47 <#if (articlePriority gt 0)>
48 <i class="bi bi-bookmark-star"></i>
49 </#if>
50
51 <#if (articleCategories?size gt 0)>
52 <#assign html = "" />
53 <#assign primero = 0 />
54 <#assign ultimo = 0 />
55
56 <#list articleCategories as curCat>
57 <#if categoriasExcluidas?seq_contains(curCat.getName())>
58 <#continue>
59 </#if>
60
61 <#assign color = "" />
62
63 <#if curCat.name?matches("^[0-9]+$")>
64 <#assign indice = curCat.name?number />
65 <#if primero == 0>
66 <#assign primero = indice />
67 <#elseif primero gt indice>
68 <#assign ultimo = primero />
69 <#assign primero = indice />
70 <#elseif primero lt indice>
71 <#if ultimo lt indice>
72 <#assign ultimo = indice />
73 </#if>
74 </#if>
75 <#else>
76 <#if html != curCat.name>
77 <#assign html = curCat.name />
78 </#if>
79
80 <#assign catPropValue = catPropLocalService.fetchCategoryProperty(curCat.getCategoryId(), "Color")!"" />
81 <#if catPropValue??>
82 <#assign color = catPropValue.getValue() />
83 </#if>
84
85 <span class="select-${color}" title="${html}">${html}</span>
86 <style>
87 .select-${color} {
88 border: 1px solid transparent;
89 padding: 0.25rem 0.5rem;
90 font-size: 0.775rem;
91 line-height: 1.5;
92 border-radius: 0.2rem;
93 color: #ffffff;
94 background-color: #${color};
95 display: inline-block;
96 font-weight: 400;
97 text-align: center;
98 vertical-align: middle;
99 }
100 </style>
101 </#if>
102 </#list>
103 <#if ultimo != 0>
104 <span class="anio" title="${primero} - ${ultimo}">${primero} - ${ultimo}</span>
105 <#else>
106 <span class="anio" title="${primero}">${primero}</span>
107 </#if>
108 </#if>
109 </div>
110 </#if>
111 </div>
112 </div>
113</div>
Declaración del FISI con motivo del Día Internacional del Migrante
Declaración del 17 de diciembre de 2024.
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> catPropValue [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 54]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign color = catPropValue.getValue() [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 37]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign entry = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
4<#assign articlePriority = assetEntryLocalService.getEntryPriority("com.liferay.journal.model.JournalArticle", getterUtil.getLong(entry.getResourcePrimKey())) />
5
6<div class="doc-aprobado">
7 <div class="media my-3">
8 <div class="media-body">
9 <#if biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()?has_content || biblioteca_publicacion_titulo.getData()?has_content>
10 <a href="${biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()}"
11 target="_blank">
12 <h2 class="h3">${biblioteca_publicacion_titulo.getData()}</h2>
13 </a>
14 </#if>
15 <#if biblioteca_publicacion_portada.getData()?has_content>
16 <div class="imagen-documento">
17 <img alt="${biblioteca_publicacion_portada.getAttribute("alt")}"
18 data-fileentryid="${biblioteca_publicacion_portada.getAttribute("fileEntryId")}"
19 src="${biblioteca_publicacion_portada.getData()}" class="mr-4"/>
20 </div>
21 <#else>
22 <div class="imagen-documento">
23 <img alt="<@liferay.language key="foro.alt.resultado"/>"
24 src="/documents/1652165/1651241/document-309065_960_720.png/a86f37c8-b3f4-b75d-53c2-51a9d73eb37e?t=1663254524921"
25 class="mr-4"/>
26 </div>
27 </#if>
28 <#if biblioteca_publicacion_sinopsis.getData()?has_content>
29 <div class="mt-3">
30 ${biblioteca_publicacion_sinopsis.getData()}
31 </div>
32 </#if>
33
34 <#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
35 <#assign article = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
36 <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
37 <#assign globalGroup = groupLocalService.getCompanyGroup(company.getCompanyId()) />
38 <#assign globalGroupId = globalGroup.getGroupId() />
39 <#assign allCategories = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(article.getResourcePrimKey()) ) />
40 <#assign articleCategories = allCategories?filter(cat -> cat.getGroupId() == globalGroupId) />
41
42 <#if (articleCategories?size gt 0) || (articlePriority gt 0)>
43 <#assign catPropLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
44 <#assign categoriasExcluidas = ["Anual", "Biblioteca"] />
45
46 <div class="mt-3 doc-categories">
47 <#if (articlePriority gt 0)>
48 <i class="bi bi-bookmark-star"></i>
49 </#if>
50
51 <#if (articleCategories?size gt 0)>
52 <#assign html = "" />
53 <#assign primero = 0 />
54 <#assign ultimo = 0 />
55
56 <#list articleCategories as curCat>
57 <#if categoriasExcluidas?seq_contains(curCat.getName())>
58 <#continue>
59 </#if>
60
61 <#assign color = "" />
62
63 <#if curCat.name?matches("^[0-9]+$")>
64 <#assign indice = curCat.name?number />
65 <#if primero == 0>
66 <#assign primero = indice />
67 <#elseif primero gt indice>
68 <#assign ultimo = primero />
69 <#assign primero = indice />
70 <#elseif primero lt indice>
71 <#if ultimo lt indice>
72 <#assign ultimo = indice />
73 </#if>
74 </#if>
75 <#else>
76 <#if html != curCat.name>
77 <#assign html = curCat.name />
78 </#if>
79
80 <#assign catPropValue = catPropLocalService.fetchCategoryProperty(curCat.getCategoryId(), "Color")!"" />
81 <#if catPropValue??>
82 <#assign color = catPropValue.getValue() />
83 </#if>
84
85 <span class="select-${color}" title="${html}">${html}</span>
86 <style>
87 .select-${color} {
88 border: 1px solid transparent;
89 padding: 0.25rem 0.5rem;
90 font-size: 0.775rem;
91 line-height: 1.5;
92 border-radius: 0.2rem;
93 color: #ffffff;
94 background-color: #${color};
95 display: inline-block;
96 font-weight: 400;
97 text-align: center;
98 vertical-align: middle;
99 }
100 </style>
101 </#if>
102 </#list>
103 <#if ultimo != 0>
104 <span class="anio" title="${primero} - ${ultimo}">${primero} - ${ultimo}</span>
105 <#else>
106 <span class="anio" title="${primero}">${primero}</span>
107 </#if>
108 </#if>
109 </div>
110 </#if>
111 </div>
112 </div>
113</div>
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> catPropValue [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 54]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign color = catPropValue.getValue() [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 37]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign entry = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
4<#assign articlePriority = assetEntryLocalService.getEntryPriority("com.liferay.journal.model.JournalArticle", getterUtil.getLong(entry.getResourcePrimKey())) />
5
6<div class="doc-aprobado">
7 <div class="media my-3">
8 <div class="media-body">
9 <#if biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()?has_content || biblioteca_publicacion_titulo.getData()?has_content>
10 <a href="${biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()}"
11 target="_blank">
12 <h2 class="h3">${biblioteca_publicacion_titulo.getData()}</h2>
13 </a>
14 </#if>
15 <#if biblioteca_publicacion_portada.getData()?has_content>
16 <div class="imagen-documento">
17 <img alt="${biblioteca_publicacion_portada.getAttribute("alt")}"
18 data-fileentryid="${biblioteca_publicacion_portada.getAttribute("fileEntryId")}"
19 src="${biblioteca_publicacion_portada.getData()}" class="mr-4"/>
20 </div>
21 <#else>
22 <div class="imagen-documento">
23 <img alt="<@liferay.language key="foro.alt.resultado"/>"
24 src="/documents/1652165/1651241/document-309065_960_720.png/a86f37c8-b3f4-b75d-53c2-51a9d73eb37e?t=1663254524921"
25 class="mr-4"/>
26 </div>
27 </#if>
28 <#if biblioteca_publicacion_sinopsis.getData()?has_content>
29 <div class="mt-3">
30 ${biblioteca_publicacion_sinopsis.getData()}
31 </div>
32 </#if>
33
34 <#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
35 <#assign article = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
36 <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
37 <#assign globalGroup = groupLocalService.getCompanyGroup(company.getCompanyId()) />
38 <#assign globalGroupId = globalGroup.getGroupId() />
39 <#assign allCategories = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(article.getResourcePrimKey()) ) />
40 <#assign articleCategories = allCategories?filter(cat -> cat.getGroupId() == globalGroupId) />
41
42 <#if (articleCategories?size gt 0) || (articlePriority gt 0)>
43 <#assign catPropLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
44 <#assign categoriasExcluidas = ["Anual", "Biblioteca"] />
45
46 <div class="mt-3 doc-categories">
47 <#if (articlePriority gt 0)>
48 <i class="bi bi-bookmark-star"></i>
49 </#if>
50
51 <#if (articleCategories?size gt 0)>
52 <#assign html = "" />
53 <#assign primero = 0 />
54 <#assign ultimo = 0 />
55
56 <#list articleCategories as curCat>
57 <#if categoriasExcluidas?seq_contains(curCat.getName())>
58 <#continue>
59 </#if>
60
61 <#assign color = "" />
62
63 <#if curCat.name?matches("^[0-9]+$")>
64 <#assign indice = curCat.name?number />
65 <#if primero == 0>
66 <#assign primero = indice />
67 <#elseif primero gt indice>
68 <#assign ultimo = primero />
69 <#assign primero = indice />
70 <#elseif primero lt indice>
71 <#if ultimo lt indice>
72 <#assign ultimo = indice />
73 </#if>
74 </#if>
75 <#else>
76 <#if html != curCat.name>
77 <#assign html = curCat.name />
78 </#if>
79
80 <#assign catPropValue = catPropLocalService.fetchCategoryProperty(curCat.getCategoryId(), "Color")!"" />
81 <#if catPropValue??>
82 <#assign color = catPropValue.getValue() />
83 </#if>
84
85 <span class="select-${color}" title="${html}">${html}</span>
86 <style>
87 .select-${color} {
88 border: 1px solid transparent;
89 padding: 0.25rem 0.5rem;
90 font-size: 0.775rem;
91 line-height: 1.5;
92 border-radius: 0.2rem;
93 color: #ffffff;
94 background-color: #${color};
95 display: inline-block;
96 font-weight: 400;
97 text-align: center;
98 vertical-align: middle;
99 }
100 </style>
101 </#if>
102 </#list>
103 <#if ultimo != 0>
104 <span class="anio" title="${primero} - ${ultimo}">${primero} - ${ultimo}</span>
105 <#else>
106 <span class="anio" title="${primero}">${primero}</span>
107 </#if>
108 </#if>
109 </div>
110 </#if>
111 </div>
112 </div>
113</div>
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> catPropValue [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 54]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign color = catPropValue.getValue() [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 37]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign entry = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
4<#assign articlePriority = assetEntryLocalService.getEntryPriority("com.liferay.journal.model.JournalArticle", getterUtil.getLong(entry.getResourcePrimKey())) />
5
6<div class="doc-aprobado">
7 <div class="media my-3">
8 <div class="media-body">
9 <#if biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()?has_content || biblioteca_publicacion_titulo.getData()?has_content>
10 <a href="${biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()}"
11 target="_blank">
12 <h2 class="h3">${biblioteca_publicacion_titulo.getData()}</h2>
13 </a>
14 </#if>
15 <#if biblioteca_publicacion_portada.getData()?has_content>
16 <div class="imagen-documento">
17 <img alt="${biblioteca_publicacion_portada.getAttribute("alt")}"
18 data-fileentryid="${biblioteca_publicacion_portada.getAttribute("fileEntryId")}"
19 src="${biblioteca_publicacion_portada.getData()}" class="mr-4"/>
20 </div>
21 <#else>
22 <div class="imagen-documento">
23 <img alt="<@liferay.language key="foro.alt.resultado"/>"
24 src="/documents/1652165/1651241/document-309065_960_720.png/a86f37c8-b3f4-b75d-53c2-51a9d73eb37e?t=1663254524921"
25 class="mr-4"/>
26 </div>
27 </#if>
28 <#if biblioteca_publicacion_sinopsis.getData()?has_content>
29 <div class="mt-3">
30 ${biblioteca_publicacion_sinopsis.getData()}
31 </div>
32 </#if>
33
34 <#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
35 <#assign article = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
36 <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
37 <#assign globalGroup = groupLocalService.getCompanyGroup(company.getCompanyId()) />
38 <#assign globalGroupId = globalGroup.getGroupId() />
39 <#assign allCategories = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(article.getResourcePrimKey()) ) />
40 <#assign articleCategories = allCategories?filter(cat -> cat.getGroupId() == globalGroupId) />
41
42 <#if (articleCategories?size gt 0) || (articlePriority gt 0)>
43 <#assign catPropLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
44 <#assign categoriasExcluidas = ["Anual", "Biblioteca"] />
45
46 <div class="mt-3 doc-categories">
47 <#if (articlePriority gt 0)>
48 <i class="bi bi-bookmark-star"></i>
49 </#if>
50
51 <#if (articleCategories?size gt 0)>
52 <#assign html = "" />
53 <#assign primero = 0 />
54 <#assign ultimo = 0 />
55
56 <#list articleCategories as curCat>
57 <#if categoriasExcluidas?seq_contains(curCat.getName())>
58 <#continue>
59 </#if>
60
61 <#assign color = "" />
62
63 <#if curCat.name?matches("^[0-9]+$")>
64 <#assign indice = curCat.name?number />
65 <#if primero == 0>
66 <#assign primero = indice />
67 <#elseif primero gt indice>
68 <#assign ultimo = primero />
69 <#assign primero = indice />
70 <#elseif primero lt indice>
71 <#if ultimo lt indice>
72 <#assign ultimo = indice />
73 </#if>
74 </#if>
75 <#else>
76 <#if html != curCat.name>
77 <#assign html = curCat.name />
78 </#if>
79
80 <#assign catPropValue = catPropLocalService.fetchCategoryProperty(curCat.getCategoryId(), "Color")!"" />
81 <#if catPropValue??>
82 <#assign color = catPropValue.getValue() />
83 </#if>
84
85 <span class="select-${color}" title="${html}">${html}</span>
86 <style>
87 .select-${color} {
88 border: 1px solid transparent;
89 padding: 0.25rem 0.5rem;
90 font-size: 0.775rem;
91 line-height: 1.5;
92 border-radius: 0.2rem;
93 color: #ffffff;
94 background-color: #${color};
95 display: inline-block;
96 font-weight: 400;
97 text-align: center;
98 vertical-align: middle;
99 }
100 </style>
101 </#if>
102 </#list>
103 <#if ultimo != 0>
104 <span class="anio" title="${primero} - ${ultimo}">${primero} - ${ultimo}</span>
105 <#else>
106 <span class="anio" title="${primero}">${primero}</span>
107 </#if>
108 </#if>
109 </div>
110 </#if>
111 </div>
112 </div>
113</div>
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> catPropValue [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 54]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign color = catPropValue.getValue() [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 37]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign entry = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
4<#assign articlePriority = assetEntryLocalService.getEntryPriority("com.liferay.journal.model.JournalArticle", getterUtil.getLong(entry.getResourcePrimKey())) />
5
6<div class="doc-aprobado">
7 <div class="media my-3">
8 <div class="media-body">
9 <#if biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()?has_content || biblioteca_publicacion_titulo.getData()?has_content>
10 <a href="${biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()}"
11 target="_blank">
12 <h2 class="h3">${biblioteca_publicacion_titulo.getData()}</h2>
13 </a>
14 </#if>
15 <#if biblioteca_publicacion_portada.getData()?has_content>
16 <div class="imagen-documento">
17 <img alt="${biblioteca_publicacion_portada.getAttribute("alt")}"
18 data-fileentryid="${biblioteca_publicacion_portada.getAttribute("fileEntryId")}"
19 src="${biblioteca_publicacion_portada.getData()}" class="mr-4"/>
20 </div>
21 <#else>
22 <div class="imagen-documento">
23 <img alt="<@liferay.language key="foro.alt.resultado"/>"
24 src="/documents/1652165/1651241/document-309065_960_720.png/a86f37c8-b3f4-b75d-53c2-51a9d73eb37e?t=1663254524921"
25 class="mr-4"/>
26 </div>
27 </#if>
28 <#if biblioteca_publicacion_sinopsis.getData()?has_content>
29 <div class="mt-3">
30 ${biblioteca_publicacion_sinopsis.getData()}
31 </div>
32 </#if>
33
34 <#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
35 <#assign article = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
36 <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
37 <#assign globalGroup = groupLocalService.getCompanyGroup(company.getCompanyId()) />
38 <#assign globalGroupId = globalGroup.getGroupId() />
39 <#assign allCategories = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(article.getResourcePrimKey()) ) />
40 <#assign articleCategories = allCategories?filter(cat -> cat.getGroupId() == globalGroupId) />
41
42 <#if (articleCategories?size gt 0) || (articlePriority gt 0)>
43 <#assign catPropLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
44 <#assign categoriasExcluidas = ["Anual", "Biblioteca"] />
45
46 <div class="mt-3 doc-categories">
47 <#if (articlePriority gt 0)>
48 <i class="bi bi-bookmark-star"></i>
49 </#if>
50
51 <#if (articleCategories?size gt 0)>
52 <#assign html = "" />
53 <#assign primero = 0 />
54 <#assign ultimo = 0 />
55
56 <#list articleCategories as curCat>
57 <#if categoriasExcluidas?seq_contains(curCat.getName())>
58 <#continue>
59 </#if>
60
61 <#assign color = "" />
62
63 <#if curCat.name?matches("^[0-9]+$")>
64 <#assign indice = curCat.name?number />
65 <#if primero == 0>
66 <#assign primero = indice />
67 <#elseif primero gt indice>
68 <#assign ultimo = primero />
69 <#assign primero = indice />
70 <#elseif primero lt indice>
71 <#if ultimo lt indice>
72 <#assign ultimo = indice />
73 </#if>
74 </#if>
75 <#else>
76 <#if html != curCat.name>
77 <#assign html = curCat.name />
78 </#if>
79
80 <#assign catPropValue = catPropLocalService.fetchCategoryProperty(curCat.getCategoryId(), "Color")!"" />
81 <#if catPropValue??>
82 <#assign color = catPropValue.getValue() />
83 </#if>
84
85 <span class="select-${color}" title="${html}">${html}</span>
86 <style>
87 .select-${color} {
88 border: 1px solid transparent;
89 padding: 0.25rem 0.5rem;
90 font-size: 0.775rem;
91 line-height: 1.5;
92 border-radius: 0.2rem;
93 color: #ffffff;
94 background-color: #${color};
95 display: inline-block;
96 font-weight: 400;
97 text-align: center;
98 vertical-align: middle;
99 }
100 </style>
101 </#if>
102 </#list>
103 <#if ultimo != 0>
104 <span class="anio" title="${primero} - ${ultimo}">${primero} - ${ultimo}</span>
105 <#else>
106 <span class="anio" title="${primero}">${primero}</span>
107 </#if>
108 </#if>
109 </div>
110 </#if>
111 </div>
112 </div>
113</div>
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> catPropValue [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 54]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign color = catPropValue.getValue() [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 37]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign entry = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
4<#assign articlePriority = assetEntryLocalService.getEntryPriority("com.liferay.journal.model.JournalArticle", getterUtil.getLong(entry.getResourcePrimKey())) />
5
6<div class="doc-aprobado">
7 <div class="media my-3">
8 <div class="media-body">
9 <#if biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()?has_content || biblioteca_publicacion_titulo.getData()?has_content>
10 <a href="${biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()}"
11 target="_blank">
12 <h2 class="h3">${biblioteca_publicacion_titulo.getData()}</h2>
13 </a>
14 </#if>
15 <#if biblioteca_publicacion_portada.getData()?has_content>
16 <div class="imagen-documento">
17 <img alt="${biblioteca_publicacion_portada.getAttribute("alt")}"
18 data-fileentryid="${biblioteca_publicacion_portada.getAttribute("fileEntryId")}"
19 src="${biblioteca_publicacion_portada.getData()}" class="mr-4"/>
20 </div>
21 <#else>
22 <div class="imagen-documento">
23 <img alt="<@liferay.language key="foro.alt.resultado"/>"
24 src="/documents/1652165/1651241/document-309065_960_720.png/a86f37c8-b3f4-b75d-53c2-51a9d73eb37e?t=1663254524921"
25 class="mr-4"/>
26 </div>
27 </#if>
28 <#if biblioteca_publicacion_sinopsis.getData()?has_content>
29 <div class="mt-3">
30 ${biblioteca_publicacion_sinopsis.getData()}
31 </div>
32 </#if>
33
34 <#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
35 <#assign article = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
36 <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
37 <#assign globalGroup = groupLocalService.getCompanyGroup(company.getCompanyId()) />
38 <#assign globalGroupId = globalGroup.getGroupId() />
39 <#assign allCategories = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(article.getResourcePrimKey()) ) />
40 <#assign articleCategories = allCategories?filter(cat -> cat.getGroupId() == globalGroupId) />
41
42 <#if (articleCategories?size gt 0) || (articlePriority gt 0)>
43 <#assign catPropLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
44 <#assign categoriasExcluidas = ["Anual", "Biblioteca"] />
45
46 <div class="mt-3 doc-categories">
47 <#if (articlePriority gt 0)>
48 <i class="bi bi-bookmark-star"></i>
49 </#if>
50
51 <#if (articleCategories?size gt 0)>
52 <#assign html = "" />
53 <#assign primero = 0 />
54 <#assign ultimo = 0 />
55
56 <#list articleCategories as curCat>
57 <#if categoriasExcluidas?seq_contains(curCat.getName())>
58 <#continue>
59 </#if>
60
61 <#assign color = "" />
62
63 <#if curCat.name?matches("^[0-9]+$")>
64 <#assign indice = curCat.name?number />
65 <#if primero == 0>
66 <#assign primero = indice />
67 <#elseif primero gt indice>
68 <#assign ultimo = primero />
69 <#assign primero = indice />
70 <#elseif primero lt indice>
71 <#if ultimo lt indice>
72 <#assign ultimo = indice />
73 </#if>
74 </#if>
75 <#else>
76 <#if html != curCat.name>
77 <#assign html = curCat.name />
78 </#if>
79
80 <#assign catPropValue = catPropLocalService.fetchCategoryProperty(curCat.getCategoryId(), "Color")!"" />
81 <#if catPropValue??>
82 <#assign color = catPropValue.getValue() />
83 </#if>
84
85 <span class="select-${color}" title="${html}">${html}</span>
86 <style>
87 .select-${color} {
88 border: 1px solid transparent;
89 padding: 0.25rem 0.5rem;
90 font-size: 0.775rem;
91 line-height: 1.5;
92 border-radius: 0.2rem;
93 color: #ffffff;
94 background-color: #${color};
95 display: inline-block;
96 font-weight: 400;
97 text-align: center;
98 vertical-align: middle;
99 }
100 </style>
101 </#if>
102 </#list>
103 <#if ultimo != 0>
104 <span class="anio" title="${primero} - ${ultimo}">${primero} - ${ultimo}</span>
105 <#else>
106 <span class="anio" title="${primero}">${primero}</span>
107 </#if>
108 </#if>
109 </div>
110 </#if>
111 </div>
112 </div>
113</div>
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> catPropValue [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 54]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign color = catPropValue.getValue() [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 37]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign entry = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
4<#assign articlePriority = assetEntryLocalService.getEntryPriority("com.liferay.journal.model.JournalArticle", getterUtil.getLong(entry.getResourcePrimKey())) />
5
6<div class="doc-aprobado">
7 <div class="media my-3">
8 <div class="media-body">
9 <#if biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()?has_content || biblioteca_publicacion_titulo.getData()?has_content>
10 <a href="${biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()}"
11 target="_blank">
12 <h2 class="h3">${biblioteca_publicacion_titulo.getData()}</h2>
13 </a>
14 </#if>
15 <#if biblioteca_publicacion_portada.getData()?has_content>
16 <div class="imagen-documento">
17 <img alt="${biblioteca_publicacion_portada.getAttribute("alt")}"
18 data-fileentryid="${biblioteca_publicacion_portada.getAttribute("fileEntryId")}"
19 src="${biblioteca_publicacion_portada.getData()}" class="mr-4"/>
20 </div>
21 <#else>
22 <div class="imagen-documento">
23 <img alt="<@liferay.language key="foro.alt.resultado"/>"
24 src="/documents/1652165/1651241/document-309065_960_720.png/a86f37c8-b3f4-b75d-53c2-51a9d73eb37e?t=1663254524921"
25 class="mr-4"/>
26 </div>
27 </#if>
28 <#if biblioteca_publicacion_sinopsis.getData()?has_content>
29 <div class="mt-3">
30 ${biblioteca_publicacion_sinopsis.getData()}
31 </div>
32 </#if>
33
34 <#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
35 <#assign article = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
36 <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
37 <#assign globalGroup = groupLocalService.getCompanyGroup(company.getCompanyId()) />
38 <#assign globalGroupId = globalGroup.getGroupId() />
39 <#assign allCategories = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(article.getResourcePrimKey()) ) />
40 <#assign articleCategories = allCategories?filter(cat -> cat.getGroupId() == globalGroupId) />
41
42 <#if (articleCategories?size gt 0) || (articlePriority gt 0)>
43 <#assign catPropLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
44 <#assign categoriasExcluidas = ["Anual", "Biblioteca"] />
45
46 <div class="mt-3 doc-categories">
47 <#if (articlePriority gt 0)>
48 <i class="bi bi-bookmark-star"></i>
49 </#if>
50
51 <#if (articleCategories?size gt 0)>
52 <#assign html = "" />
53 <#assign primero = 0 />
54 <#assign ultimo = 0 />
55
56 <#list articleCategories as curCat>
57 <#if categoriasExcluidas?seq_contains(curCat.getName())>
58 <#continue>
59 </#if>
60
61 <#assign color = "" />
62
63 <#if curCat.name?matches("^[0-9]+$")>
64 <#assign indice = curCat.name?number />
65 <#if primero == 0>
66 <#assign primero = indice />
67 <#elseif primero gt indice>
68 <#assign ultimo = primero />
69 <#assign primero = indice />
70 <#elseif primero lt indice>
71 <#if ultimo lt indice>
72 <#assign ultimo = indice />
73 </#if>
74 </#if>
75 <#else>
76 <#if html != curCat.name>
77 <#assign html = curCat.name />
78 </#if>
79
80 <#assign catPropValue = catPropLocalService.fetchCategoryProperty(curCat.getCategoryId(), "Color")!"" />
81 <#if catPropValue??>
82 <#assign color = catPropValue.getValue() />
83 </#if>
84
85 <span class="select-${color}" title="${html}">${html}</span>
86 <style>
87 .select-${color} {
88 border: 1px solid transparent;
89 padding: 0.25rem 0.5rem;
90 font-size: 0.775rem;
91 line-height: 1.5;
92 border-radius: 0.2rem;
93 color: #ffffff;
94 background-color: #${color};
95 display: inline-block;
96 font-weight: 400;
97 text-align: center;
98 vertical-align: middle;
99 }
100 </style>
101 </#if>
102 </#list>
103 <#if ultimo != 0>
104 <span class="anio" title="${primero} - ${ultimo}">${primero} - ${ultimo}</span>
105 <#else>
106 <span class="anio" title="${primero}">${primero}</span>
107 </#if>
108 </#if>
109 </div>
110 </#if>
111 </div>
112 </div>
113</div>
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> catPropValue [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 54]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign color = catPropValue.getValue() [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 37]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign entry = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
4<#assign articlePriority = assetEntryLocalService.getEntryPriority("com.liferay.journal.model.JournalArticle", getterUtil.getLong(entry.getResourcePrimKey())) />
5
6<div class="doc-aprobado">
7 <div class="media my-3">
8 <div class="media-body">
9 <#if biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()?has_content || biblioteca_publicacion_titulo.getData()?has_content>
10 <a href="${biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()}"
11 target="_blank">
12 <h2 class="h3">${biblioteca_publicacion_titulo.getData()}</h2>
13 </a>
14 </#if>
15 <#if biblioteca_publicacion_portada.getData()?has_content>
16 <div class="imagen-documento">
17 <img alt="${biblioteca_publicacion_portada.getAttribute("alt")}"
18 data-fileentryid="${biblioteca_publicacion_portada.getAttribute("fileEntryId")}"
19 src="${biblioteca_publicacion_portada.getData()}" class="mr-4"/>
20 </div>
21 <#else>
22 <div class="imagen-documento">
23 <img alt="<@liferay.language key="foro.alt.resultado"/>"
24 src="/documents/1652165/1651241/document-309065_960_720.png/a86f37c8-b3f4-b75d-53c2-51a9d73eb37e?t=1663254524921"
25 class="mr-4"/>
26 </div>
27 </#if>
28 <#if biblioteca_publicacion_sinopsis.getData()?has_content>
29 <div class="mt-3">
30 ${biblioteca_publicacion_sinopsis.getData()}
31 </div>
32 </#if>
33
34 <#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
35 <#assign article = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
36 <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
37 <#assign globalGroup = groupLocalService.getCompanyGroup(company.getCompanyId()) />
38 <#assign globalGroupId = globalGroup.getGroupId() />
39 <#assign allCategories = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(article.getResourcePrimKey()) ) />
40 <#assign articleCategories = allCategories?filter(cat -> cat.getGroupId() == globalGroupId) />
41
42 <#if (articleCategories?size gt 0) || (articlePriority gt 0)>
43 <#assign catPropLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
44 <#assign categoriasExcluidas = ["Anual", "Biblioteca"] />
45
46 <div class="mt-3 doc-categories">
47 <#if (articlePriority gt 0)>
48 <i class="bi bi-bookmark-star"></i>
49 </#if>
50
51 <#if (articleCategories?size gt 0)>
52 <#assign html = "" />
53 <#assign primero = 0 />
54 <#assign ultimo = 0 />
55
56 <#list articleCategories as curCat>
57 <#if categoriasExcluidas?seq_contains(curCat.getName())>
58 <#continue>
59 </#if>
60
61 <#assign color = "" />
62
63 <#if curCat.name?matches("^[0-9]+$")>
64 <#assign indice = curCat.name?number />
65 <#if primero == 0>
66 <#assign primero = indice />
67 <#elseif primero gt indice>
68 <#assign ultimo = primero />
69 <#assign primero = indice />
70 <#elseif primero lt indice>
71 <#if ultimo lt indice>
72 <#assign ultimo = indice />
73 </#if>
74 </#if>
75 <#else>
76 <#if html != curCat.name>
77 <#assign html = curCat.name />
78 </#if>
79
80 <#assign catPropValue = catPropLocalService.fetchCategoryProperty(curCat.getCategoryId(), "Color")!"" />
81 <#if catPropValue??>
82 <#assign color = catPropValue.getValue() />
83 </#if>
84
85 <span class="select-${color}" title="${html}">${html}</span>
86 <style>
87 .select-${color} {
88 border: 1px solid transparent;
89 padding: 0.25rem 0.5rem;
90 font-size: 0.775rem;
91 line-height: 1.5;
92 border-radius: 0.2rem;
93 color: #ffffff;
94 background-color: #${color};
95 display: inline-block;
96 font-weight: 400;
97 text-align: center;
98 vertical-align: middle;
99 }
100 </style>
101 </#if>
102 </#list>
103 <#if ultimo != 0>
104 <span class="anio" title="${primero} - ${ultimo}">${primero} - ${ultimo}</span>
105 <#else>
106 <span class="anio" title="${primero}">${primero}</span>
107 </#if>
108 </#if>
109 </div>
110 </#if>
111 </div>
112 </div>
113</div>
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> catPropValue [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 54]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign color = catPropValue.getValue() [in template "20097#20123#DOCUMENTO_APROBADO-NIPO" at line 82, column 37]
----
1<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign entry = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
4<#assign articlePriority = assetEntryLocalService.getEntryPriority("com.liferay.journal.model.JournalArticle", getterUtil.getLong(entry.getResourcePrimKey())) />
5
6<div class="doc-aprobado">
7 <div class="media my-3">
8 <div class="media-body">
9 <#if biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()?has_content || biblioteca_publicacion_titulo.getData()?has_content>
10 <a href="${biblioteca_publicacion_fichero_principal.biblioteca_publicacion_fichero_principal_fichero.getData()}"
11 target="_blank">
12 <h2 class="h3">${biblioteca_publicacion_titulo.getData()}</h2>
13 </a>
14 </#if>
15 <#if biblioteca_publicacion_portada.getData()?has_content>
16 <div class="imagen-documento">
17 <img alt="${biblioteca_publicacion_portada.getAttribute("alt")}"
18 data-fileentryid="${biblioteca_publicacion_portada.getAttribute("fileEntryId")}"
19 src="${biblioteca_publicacion_portada.getData()}" class="mr-4"/>
20 </div>
21 <#else>
22 <div class="imagen-documento">
23 <img alt="<@liferay.language key="foro.alt.resultado"/>"
24 src="/documents/1652165/1651241/document-309065_960_720.png/a86f37c8-b3f4-b75d-53c2-51a9d73eb37e?t=1663254524921"
25 class="mr-4"/>
26 </div>
27 </#if>
28 <#if biblioteca_publicacion_sinopsis.getData()?has_content>
29 <div class="mt-3">
30 ${biblioteca_publicacion_sinopsis.getData()}
31 </div>
32 </#if>
33
34 <#assign catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
35 <#assign article = journalArticleLocalService.fetchArticle(groupId, .vars['reserved-article-id'].data) />
36 <#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
37 <#assign globalGroup = groupLocalService.getCompanyGroup(company.getCompanyId()) />
38 <#assign globalGroupId = globalGroup.getGroupId() />
39 <#assign allCategories = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(article.getResourcePrimKey()) ) />
40 <#assign articleCategories = allCategories?filter(cat -> cat.getGroupId() == globalGroupId) />
41
42 <#if (articleCategories?size gt 0) || (articlePriority gt 0)>
43 <#assign catPropLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
44 <#assign categoriasExcluidas = ["Anual", "Biblioteca"] />
45
46 <div class="mt-3 doc-categories">
47 <#if (articlePriority gt 0)>
48 <i class="bi bi-bookmark-star"></i>
49 </#if>
50
51 <#if (articleCategories?size gt 0)>
52 <#assign html = "" />
53 <#assign primero = 0 />
54 <#assign ultimo = 0 />
55
56 <#list articleCategories as curCat>
57 <#if categoriasExcluidas?seq_contains(curCat.getName())>
58 <#continue>
59 </#if>
60
61 <#assign color = "" />
62
63 <#if curCat.name?matches("^[0-9]+$")>
64 <#assign indice = curCat.name?number />
65 <#if primero == 0>
66 <#assign primero = indice />
67 <#elseif primero gt indice>
68 <#assign ultimo = primero />
69 <#assign primero = indice />
70 <#elseif primero lt indice>
71 <#if ultimo lt indice>
72 <#assign ultimo = indice />
73 </#if>
74 </#if>
75 <#else>
76 <#if html != curCat.name>
77 <#assign html = curCat.name />
78 </#if>
79
80 <#assign catPropValue = catPropLocalService.fetchCategoryProperty(curCat.getCategoryId(), "Color")!"" />
81 <#if catPropValue??>
82 <#assign color = catPropValue.getValue() />
83 </#if>
84
85 <span class="select-${color}" title="${html}">${html}</span>
86 <style>
87 .select-${color} {
88 border: 1px solid transparent;
89 padding: 0.25rem 0.5rem;
90 font-size: 0.775rem;
91 line-height: 1.5;
92 border-radius: 0.2rem;
93 color: #ffffff;
94 background-color: #${color};
95 display: inline-block;
96 font-weight: 400;
97 text-align: center;
98 vertical-align: middle;
99 }
100 </style>
101 </#if>
102 </#list>
103 <#if ultimo != 0>
104 <span class="anio" title="${primero} - ${ultimo}">${primero} - ${ultimo}</span>
105 <#else>
106 <span class="anio" title="${primero}">${primero}</span>
107 </#if>
108 </#if>
109 </div>
110 </#if>
111 </div>
112 </div>
113</div>




