Mostrando 20 de 418 Resultados

Calendario Carta de España 2026

Imagen por defecto

El calendario digital de la revista Carta de España para el año 2026 se presenta en formato descargable y recoge fotografías de los artículos elaborados por los colaboradores de la revista durante los meses del año anterior, que versan sobre temas característicos de la ciudadanía española en el exterior: españoles por el mundo, migraciones, cultura y sociedad, pueblos y memoria gráfica, entre otros.

El calendario incluye un elemento interactivo que invita a los lectores a volver a disfrutar de los reportajes. Para ello, debajo de cada fotografía encontrarás el link correspondiente.

Guía de la ciudadanía española en el exterior

Imagen por defecto

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.

Guía del Retorno

Imagen por defecto

La Guía del Retorno es un instrumento para acompañar e informar a la ciudadanía que se encuentra en el exterior y que quiere retornar a España o ya ha retornado a nuestro país. Es un documento de carácter informativo que recoge los trámites necesarios antes, durante y después del retorno, así como otra información de carácter complementario que puede ser de utilidad para la ciudadanía en este proceso.

Palancas para la Inclusión: Recomendaciones del Laboratorio de Políticas de Inclusión en base a la Evidencia Científica

Imagen por defecto

Este informe ha sido realizado por la Secretaría General de Inclusión (SGI) del Ministerio de Inclusión, Seguridad Social y Migraciones (MISSM) en el marco del Laboratorio de Políticas de Inclusión. El objetivo del Laboratorio ha sido impulsar una estrategia para el fomento de la inclusión mediante proyectos piloto de innovación social. Estos proyectos se evaluaron conforme a los estándares de rigor científico y usando la metodología de ensayo controlado aleatorizado (Randomized Controlled Trial, o RCT por sus siglas en inglés).

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):
==> 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> 

III Premio Memoria de la Emigración Española

Con este III Premio Memoria de la Emigración Española se consolida una iniciativa conjunta entre la Universidad y el Gobierno de España cuyo fin último es la recuperación de testimonios de compatriotas que, en un pasado más o menos próximo a nuestro presente, tomaron la decisión de emigrar fuera de nuestro país.

A ello ha contribuido la gran participación en la primera convocatoria, pero, sobre todo, el convencimiento de que la tarea de recuperación de estos testimonios apenas ha comenzado; de hecho, en puridad, siempre será una tarea inacabada, como es de entender que siempre habrá españoles y españolas que emigren.

Este libro forma parte de los resultados de la Catedra de Población, Vinculación y Desarrollo de la UNED de Zamora y del proyecto El asociacionismo de la emigración española en América a partir de la década de 1960: los casos de La Habana, Buenos Aires y Caracas. Proyecto PID2021-123160NB-I00 financiado por MCIN / AEI y por FEDER “Una manera de hacer Europa”.

Declaración del Foro para la Integración Social de los Inmigrantes (FISI) sobre el Día Internacional del Migrante

Imagen por defecto

Declaración del 18 de diciembre de 2025. 

Declaraciones 2025

Plena Inclusión - Proyecto de Empleo Personalizado para la Inclusión Social de Personas con Discapacidad Intelectual

Imagen por defecto

Este informe ha sido realizado por la Secretaría General de Inclusión (SGI) del Ministerio de Inclusión, Seguridad Social y Migraciones (MISSM) en el marco del Laboratorio de Políticas de Inclusión. El objetivo del Laboratorio ha sido impulsar una estrategia para el fomento de la inclusión mediante proyectos piloto de innovación social. Estos proyectos se evaluaron conforme a los estándares de rigor científico y usando la metodología de ensayo controlado aleatorizado (Randomized Controlled Trial, o RCT por sus siglas en inglés).

Este proyecto desarrolló un modelo de empleo personalizado caracterizado por una intensa interacción y acompañamiento del personal de apoyo con las personas con discapacidad intelectual y del desarrollo para que pudieran integrarse en el mercado de trabajo y mejorar su inclusión social y su bienestar.
Varias revisiones de intervenciones de empleo personalizado de colocación y apoyo individual han encontrado resultados positivos. En este tipo de intervención especialistas en empleo y/o atención a la salud mental ayudan a personas con discapacidad intelectual y/o del desarrollo a obtener empleos competitivos y, al mismo tiempo, proporcionan apoyo de salud mental.

Fundación “la Caixa” – Espacios Infantiles: 0-3. Proyecto de Apoyo a la Primera Infancia para Familias en Situación de Vulnerabilidad

Imagen por defecto

Este informe ha sido realizado por la Secretaría General de Inclusión (SGI) del Ministerio de Inclusión, Seguridad Social y Migraciones (MISSM) en el marco del Laboratorio de Políticas de Inclusión. El objetivo del Laboratorio ha sido impulsar una estrategia para el fomento de la inclusión mediante proyectos piloto de innovación social. Estos proyectos se evaluaron conforme a los estándares de rigor científico y usando la metodología de ensayo controlado aleatorizado (Randomized Controlled Trial, o RCT por sus siglas en inglés).

Este estudio evaluó una formación para el empoderamiento de familias socioeconómicamente vulnerables con menores en edades de 0 a 3 en competencias parentales. El objetivo de los “Talleres familiares 0-3” fue desarrollar las competencias parentales desde el paradigma de la parentalidad positiva con énfasis en el cuidado, crianza y apoyo educativo, empoderar a madres y padres de infancia 0-3 mediante el fortalecimiento de habilidades sociales y el apoyo a procesos de inserción laboral y social y evaluar los efectos de los “Talleres familiares 0-3” en la reducción de la vulnerabilidad social de las familias y el incremento de las competencias parentales.
Esta formación se impartió en los “Espacios Infantiles: 0-3”, como parte de un modelo global de acompañamiento socioeconómico, laboral y educativo implementadas por las entidades participantes y miembros del programa CaixaProinfancia y se desarrolló según el modelo de intervención del programa (valoración social, diseño de planes de trabajo, prestación de servicios, seguimiento y evaluación, contando siempre con la adhesión voluntaria y el compromiso de las familias).

Fundación CEPAIM – + que Emple-A. Proyecto de Acompañamiento Social a Mujeres Migrantes en la Región de Murcia

Imagen por defecto

Este informe ha sido realizado por la Secretaría General de Inclusión (SGI) del Ministerio de Inclusión, Seguridad Social y Migraciones (MISSM) en el marco del Laboratorio de Políticas de Inclusión. El objetivo del Laboratorio ha sido impulsar una estrategia para el fomento de la inclusión mediante proyectos piloto de innovación social. Estos proyectos se evaluaron conforme a los estándares de rigor científico y usando la metodología de ensayo controlado aleatorizado (Randomized Controlled Trial, o RCT por sus siglas en inglés).

La intervención consistió en la realización de itinerarios de inclusión, compuestos por talleres de integración y formación digital y por un acompañamiento personalizado, enfocados a mejorar la situación de inclusión social de las mujeres migrantes y las familias lideradas por ellas en la Región de Murcia.
Mediante la evaluación de impacto de estos itinerarios personalizados, se buscó comprender en qué medida la recepción de este tipo de servicios fortalecía la inclusión social y el bienestar psicológico de las personas participantes a través de su fortalecimiento de las competencias digitales, un mayor acceso al IMV y el mejor conocimiento de su entorno.

 

Ayuntamiento de Sevilla: VENTE – Proyecto contra el absentismo escolar para menores en situación de vulnerabilidad

Imagen por defecto

Este informe ha sido realizado por la Secretaría General de Inclusión (SGI) del Ministerio de Inclusión, Seguridad Social y Migraciones (MISSM) en el marco del Laboratorio de Políticas de Inclusión. El objetivo del Laboratorio ha sido impulsar una estrategia para el fomento de la inclusión mediante proyectos piloto de innovación social. Estos proyectos se evaluaron conforme a los estándares de rigor científico y usando la metodología de ensayo controlado aleatorizado (Randomized Controlled Trial, o RCT por sus siglas en inglés).

El proyecto implementó y evaluó un programa de asesoramiento educativo y psicosocial para menores de edad absentistas o en riesgo de absentismo. El proyecto buscaba mejorar el nivel de asistencia y rendimiento escolar, y fortalecer aspectos concretos relacionados con la inteligencia emocional de los participantes.

 

Ilegal Employment of Third-Country Nationals: 2017-2022 Situation Analysis

Imagen por defecto

This EMN informs includes an up-to-date analysis of key legislative and policy frameworks and practices to prevent, identify and tackle the illegal employment of third-country nationals, including beneficiaries of temporary protection (BoTP). It also provides examples of challenges and good practices.

The study classifies third-country nationals engaged in illegal employment into three main groups: those legally residing but working undeclared; those legally residing but violating the terms of their residence or work permit; and those irregularly staying and working in the country. It also considers cases of illegal self-employment, notably in platform work, which can fit into any of these categories.

Empleo ilegal de nacionales de terceros países: análisis de la situación 2017-2022

Imagen por defecto

Este informe de la REM incluye un análisis actualizado de los marcos legislativos y de políticas clave y las prácticas para prevenir, identificar y abordar el empleo ilegal de nacionales de terceros países, incluidos los beneficiarios de protección temporal (BoTP). También ofrece ejemplos de desafíos y buenas prácticas.

El estudio clasifica a los nacionales de terceros países que trabajan ilegalmente en tres grupos principales: los que residen legalmente pero trabajan sin declarar; los que residen legalmente pero violan los términos de su permiso de residencia o trabajo; y los que permanecen y trabajan irregularmente en el país. También considera los casos de trabajo por cuenta propia ilegal, en particular en plataformas digitales, que pueden encajar en cualquiera de estas categorías.

Application of the Temporary Protection Directive: Challengues and good practices in 2023

Imagen por defecto

To provide up-to-date information and avoid dupli­cation with earlier publications from the EMN and other sources, this study provides an overview of developments, challenges and good practices, focusing on specific un­der-researched topics of interest for national and European policymakers. The study’s geographical scope includes 25 EMN Member Countries.

The main objectives of the study are:

To present the state of play as of 1 July 2023 and key trends in terms of the numbers of BoTP in EMN Member Countries up to 1 July 2023.

To provide insights into the legal status and registration of BoTP in EMN Member Countries, including when transitioning to different types and forms of residence or protection.

To explore a number of key issues related to mobility and movement of beneficiaries, including when trav­elling to other Member States, outside the EU or going back to Ukraine.

To provide examples of challenges and good practices from EMN Member Countries in providing access to the rights granted under the TPD.

To provide an overview of policies and measures in place in EMN Member Countries to ensure support for unaccompanied minors, children arriving accompanied by a guardian, and other vulnerable groups.

Aplicación de la directiva de Protección Temporal: Retos y buenas prácticas en 2023

Imagen por defecto

Para proporcionar información actualizada y evitar que esta se duplique debido a las publicaciones anteriores de la REM y a otras fuentes, este estudio ofrece una visión general de los avances, retos y buenas prácticas, centrándose en temas de interés para los responsables políticos nacionales y europeos. El a ámbito geográfico del estudio incluye 25 Estados miembros de la REM.

Los principales objetivos del estudio son:

Presentar la situación a 1 de julio de 2023 y las tendencias clave en términos del número de los beneficiarios de protección temporal en los Estados miembros de la REM hasta el 1 de julio de 2023.

Proporcionar información sobre el estado legal y el registro de los beneficiarios de protección temporal en los Estados miembros de la REM, incluso cuando estos cambien a diferentes tipos y formas de residencia o protección.

Analizar una serie de cuestiones clave que están relacionadas con la movilidad y el movimiento de los beneficiarios, en particular a otros Estados miembros, fuera de la UE o de vuelta a Ucrania.

Proporcionar ejemplos de los retos y las buenas prácticas de los Estados miembros de la REM para proporcionar acceso a los derechos que otorga la Directiva de Protección Temporal.

Ofrecer una visión general de las políticas y medidas en los Estados miembros de la REM para garantizar el apoyo a los menores no acompañados, niños a los que les acompaña un tutor y otros grupos vulnerables.

Asylum and Migration Overview 2024

Imagen por defecto

The Overview Migration and Asylum 2024 of the Spanish National Contact Point for the European Migration Network (EMN) presents the main developments on migration.

2024 was characterised by continued geopolitical instability in the EU neighbourhood and beyond, with mul­tiple overlapping crises shaping migration dynamics. Rus­sia’s ongoing war of aggression against Ukraine remained a driver of displacement. In response, in June 2024, the Council of the EU decided to extend temporary protection until 4 March 2026. In the Middle East and across various parts of Africa, several concurrent developments result­ed in regional volatility and displacement, including the escalating conflict in Gaza and rising tensions between Israel and Hezbollah, the instability in north-east Syria involving Turkish and Kurdish forces, the fall of the Assad regime, Sudan’s escalating civil war, and military coups in West Africa.

2024 was also marked by major reforms of EU migra­tion and asylum policy. On 11 June 2024, the Pact was adopted, setting out comprehensive new rules to reform and strengthen the EU’s migration management and asylum system. Set to apply from June 2026, the Pact represents a commitment to balance responsibility and solidarity across EU Member States and reinforce the EU’s ability to manage migration flows more fairly and effec­tively. It focuses on asylum processes, forced and irregular migration, crisis management and promoting safe and legal pathways, as well as introducing a return border procedure.

The European Migration Migration Network also publishes a separate statistical review, i.e, key figures on immigration in 2023.

Informe de Migración y Asilo de 2024

Imagen por defecto

El Informe sobre Migración y Asilo 2024 del Punto Nacional de Contacto español para la Red Europea de Migración (REM) presenta los principales avances en materia de migración.

El año 2024 se caracterizó por una continua inestabilidad geopolítica en los países vecinos de la UE y más allá, con múltiples crisis superpuestas que configuraron la dinámica migratoria. La continua guerra de agresión de Rusia contra Ucrania siguió siendo un factor de desplazamiento. En respuesta, en junio de 2024, el Consejo de la UE decidió prorrogar la protección temporal hasta el 4 de marzo de 2026. En Oriente Medio y en diversas partes de África, varios acontecimientos simultáneos provocaron volatilidad y desplazamientos regionales, incluyendo la escalada del conflicto en Gaza y el aumento de las tensiones entre Israel y Hezbolá, la inestabilidad en el noreste de Siria con la participación de fuerzas turcas y kurdas, la caída del régimen de Asad, la escalada de la guerra civil en Sudán y los golpes militares en África Occidental.

El año 2024 también estuvo marcado por importantes reformas en la política de migración y asilo de la UE. El 11 de junio de 2024 se adoptó el Pacto, que establece nuevas normas integrales para reformar y fortalecer el sistema de gestión de la migración y asilo de la UE. Con entrada en vigor prevista para junio de 2026, el Pacto representa un compromiso para equilibrar la responsabilidad y la solidaridad entre los Estados miembros de la UE y reforzar la capacidad de la UE para gestionar los flujos migratorios de forma más justa y eficaz. Se centra en los procesos de asilo, la migración forzosa e irregular, la gestión de crisis y la promoción de vías seguras y legales, además de introducir un procedimiento fronterizo de retorno.

La Red Europea de Migración también publica un análisis estadístico independiente, es decir, cifras clave sobre la inmigración en 2023.

Declaración del Foro para la Integración Social de los Inmigrantes (FISI) sobre el Día Internacional para la Tolerancia

Imagen por defecto

Declaración del 14 de noviembre de 2025. 

Declaraciones 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):
==> 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> 
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):
==> 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> 
Categoría
Categoría