Cabecera-Home

Deskribapena

Deskribapena

Euskal Herriko Unibertsitateko (UPV/EHU) SoC4sensing Unibertsitate-Enpresa Katedraren helburua da diseinu mikroelektronikoaren arloan gure eskualdean adierazgarrienak diren produkzio-sektoreetara bideratutako proiektuei aurre egiteko gai diren profesionalen prestakuntza bultzatzea.

Zergatik SoC4sensing katedra?

Jarduera ekonomiko berria sortzeko, Euskal Autonomia Erkidegoan ezagutza sakona duten industria-sektoreetarako elementu bereizgarriak dituzten gailu erdieroale berrietan oinarrituta.

Separador Noticias-HOME

Eduki publikatzailea

Specialised training in the analysis and development of software structures for SoPC semiconductor devices

Experts Eneko Montero and José Luis Unibaso, founders of BYTEK smart solutions, S.L., will deliver a specialised module on software architectures for SoPC and SoC devices during the second semester of the 2025/26 academic year as part of the Master’s Degree in Advanced Electronic Systems. This training complements the ASIC design courses and seminars delivered in the 2025/26 academic year.

Lehenengo argitaratze data: 2026/03/16

This activity forms part of the training initiatives promoted by the PERTE Chip SoC4sensing TSI-069100-2023-004 Chair, a project funded by the Secretary of State for Telecommunications and Digital Infrastructure and by the European Union-NextGenerationEU.

Eduki publikatzailea

Patronatu

Ikerlan

Ikerlan ikerketa zentroa MONDRAGON Korporazioko eta Basque Research and Technology Alliance (BRTA) kooperatibako kidea da. 1974an sortu zen, eta ezagutzaren transferentzian eta enpresei balio lehiakorra ematean oinarritzen da.
IKERLANek, sistema txertatu kritikoei buruzko ikerketan parte-hartze aktiboa duen euskal zentro teknologiko gisa, funtsezko zeregina bete behar du eskualdeko mikroelektronikako estrategian, bai orokorrean, bai proiektu honetan.

GAIA (Basque Microelecronis Hub)

GAIA elkartea erreferentea da Euskadi.net-en eskaintza mikroelektronikoan, eta 40 urte inguruko esperientzia du hura sustatzearekin eta koordinatzearekin lotutako proiektu eta eragiketetan.

Eremu mikroelektronikoa zeharkako eta diziplina anitzeko ezagutza-eremua da, eta eskualdeko geografia ekonomikoan sakabanatuta dauden askotariko erakundeak biltzen ditu. Mikroelektronikako espezialitatea duten erakundeen eta zentroen kopuru handi batek, besteak beste, energian, makina-erremintan edo osasunean espezialista diren beste Klusterren Erakunde Dinamizatzaile batzuek egiten duten jardueratik jarduten du. Aurrekoaren zati batean, Basque Microelectronics Hub-ek (BMH) osatzen du GAIAren eta gainerako KEDen jarduera, GAIAtik sortzen den ekosistema gisa, behar eta aukera mikroelektronikoei erantzuteko zentro komun, zeharkako, ireki eta nazioarteko batetik.

System-on-Chip engineering S.L. (SoCe S.L.)

SoCe 2010ean sortutako Bilboko enpresa bat da, APERT ikerketa-taldeak bultzatua. SoCe aditua da komunikazio kritikoetarako eta goi-mailako prestazioetarako soluzioak garatzen eta saltzen.
Ethernet Determinista komunikazioetarako teknologia propioa garatzen du, eta erabilgarritasun handikoa industria-eremuan, energian, aeroespazioan eta defentsan aplikazioetarako. SoPC-FPGA teknologiari buruzko ezagutza sakona du. SoCek bi hurbilketa ditu merkatura: alde batetik, hornitzaile teknologiko gisa egiten du, SoPC-FPGA sistemetarako IP soluzioak lizentziatuz, eta, bestetik, komunikazioetarako azken ekipoak saltzen ditu sektore industrialean, defentsan eta aeroespazialean, besteak beste, Relyum markatik abiatuta. Merkatuko bereizketa teknologiko horri esker, 45 herrialde baino gehiagotan egin ahal izan dira salmentak.
SoCek etengabe hedatzen ari diren 25 profesional baino gehiagoko plantilla oso espezializatua du, eta bere plan estrategikoa mikroelektronikaren sektorean jarduera ekonomiko gehiago hedatzea da, garatzen dituen diferentzial teknologikoetan oinarrituta.

Eduki publikatzailea

Aholku Batzordea

Armando Astarloa

SoC4sensing Katedraren zuzendaria

ikusi profila

Jesús Lázaro Arroteguí

Teknologia Elektronikoko Departamentuko zuzendaria

Ikusi profila

Koldobika Basterrechea Oyarzabal

SEAV Masterraren koordinatzailea

Ikusi profila

José Angel Flores Bravo

SoC4sensing Katedraren koordinatzailea

Ikusi profila

Eduki publikatzailea

Talde laguntzailea

Jon Andreu Larrañaga. Ikusi profila

Aitzol Zuloaga Izaguirre. Ikusi profila

Jaime Jiménez Verde. Ikusi profila

José Ignacio Garate Añibarro. Ikusi profila

Victor Enrique Martinez Santos. View profile

Óscar Mata Carballeira. Ikusi profila

Leire Magüira Urtubi. Ikusi profila

Carlos Cuadrado Viana. Ikusi profila

Unai Bidarte Peraita. Ikusi profila

Maria Victoria Martinez Gonzalez. View profile

José Ángel Araujo Parra. Ikusi profila

Sara Alonso Salazar. View profile

Javier Echanove Arias. View profile

Eduki publikatzailea

Dibulgazioa

Errorea gertatu da txantiloia prozesatzerakoan.
The following has evaluated to null or missing:
==> description  [in template "10112#522485#1324421" at line 274, column 15]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if description != ""  [in template "10112#522485#1324421" at line 274, column 9]
----
1<#-- GENERAL--> 
2<#assign cTxtArticle			= languageUtil.get( locale, "article" ) > 
3<#assign cTxtAutoria			= languageUtil.get( locale, "ehu.authors" ) > 
4<#assign cTxtDoi				= languageUtil.get( locale, "ehu.doi" ) > 
5<#assign cTxtDoiTitle			= languageUtil.get( locale, "ehu.digital-object-identifier" ) > 
6<#assign cTxtNewWindow			= languageUtil.get( locale, "opens-new-window" ) > 
7<#assign cTxtPhoto				= languageUtil.get( locale, "ehu.photo" ) > 
8<#assign cTxtPublishing			= languageUtil.get( locale, "publishing" ) > 
9 
10<#assign cUrlDoiOrg				= "https://doi.org/" > 
11<#assign scopeId = themeDisplay.scopeGroupId> 
12<#assign isCampusa = (themeDisplay.getTheme().getContextPath() == "/o/upv-ehu-campusa-theme") > 
13<#assign isGlobal = (themeDisplay.getTheme().getContextPath() == "/o/upv-ehu-global-theme") > 
14<#assign journalLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
15<#if .vars['reserved-article-id']?has_content> 
16	<#assign articleId = .vars['reserved-article-id'] >  
17<#else> 
18	<#assign articleId = "">  
19</#if> 
20 
21<#if !isGlobal > 
22	<#assign articleClass		= "new" > 
23	<#assign preTitleClass		= "pretitle" > 
24	<#assign titleClass			= "new-title" > 
25	<#assign subTitleClass		= "subtitle" > 
26	<#assign entryClass			= "entry" > 
27	<#assign descriptionClass	= "description" > 
28	<#assign bibliographyClass	= "bibliographic-reference" > 
29	<#assign headerTag			= "div" > 
30	<#assign headerBloqueTag	= "p" > 
31	<#assign htmlHeaderTagClass	= ' class="content-header"' > 
32<#else> 
33	<#assign articleClass		= "new-detail" > 
34	<#assign preTitleClass		= "new-detail__pretitle" > 
35	<#assign titleClass			= "new-detail__title" > 
36	<#assign subTitleClass		= "new-detail__subtitle" > 
37	<#assign entryClass			= "new-detail__body__entry" > 
38	<#assign descriptionClass	= "new-detail__body__description" > 
39	<#assign bibliographyClass	= "new-detail__bibliographic-reference" > 
40	<#assign headerTag			= "header" > 
41	<#assign headerBloqueTag	= "div" > 
42	<#assign htmlHeaderTagClass	= "" > 
43</#if> 
44 
45<#assign entGeneralData = ehugeneraldataFieldSet > 
46 
47<#-- HTML--> 
48<article class="${ articleClass }"> 
49	<#-- PRETITLE, TITLE, SUBTITLE --> 
50	<#assign preTitle = ""> 
51	<#if entGeneralData.ehupretitle?? && entGeneralData.ehupretitle.getData()?? && entGeneralData.ehupretitle.getData()?has_content> 
52		<#assign preTitle = entGeneralData.ehupretitle.getData()>	 
53	</#if> 
54	 
55	<#assign title = ""> 
56	<#if entGeneralData.ehunewtitle?? && entGeneralData.ehunewtitle.getData()?? && entGeneralData.ehunewtitle.getData()?has_content> 
57		<#assign title = entGeneralData.ehunewtitle.getData()> 
58	</#if> 
59	 
60	<#assign subTitle = ""> 
61	<#if entGeneralData.ehunewsubtitle?? && entGeneralData.ehunewsubtitle.getData()?? && entGeneralData.ehunewsubtitle.getData()?has_content> 
62		<#assign subTitle = entGeneralData.ehunewsubtitle.getData()> 
63	</#if> 
64	<${ headerTag }${ htmlHeaderTagClass }> 
65		<#if preTitle != "" > 
66			<${ headerBloqueTag } class="${ preTitleClass }">${ preTitle }</${ headerBloqueTag }> 
67		</#if> 
68		<#if title != "" > 
69			<h1 class="${ titleClass }">${ title }</h1>    
70		</#if> 
71		<#if subTitle != "" > 
72			<${ headerBloqueTag } class="${ subTitleClass }">${ subTitle }</${ headerBloqueTag }> 
73		</#if> 
74	</${ headerTag }> 
75 
76	<#if !isGlobal > 
77		<div class="content-content"> 
78	</#if> 
79	<#if isGlobal > 
80		<div class="new-detail__info-date-share"> 
81	</#if> 
82 
83	<#-- CAMPUSA VOCABULARY --> 
84	<#assign vocabularyName = "campusa" > 
85	<#assign tag_init = "<ul></ul>" > 
86	<#assign categories = tag_init > 
87	<@upvlibs.formatVocabularyCategoriesProperties vocabularyName=vocabularyName /> 
88	<#assign categories = upvlibs.categoriesListStr > 
89	 
90	<#if  categories != tag_init  > 
91		<div class="campusa-category">${ categories }</div> 
92	</#if> 
93 
94	<#assign articlePublicationDate = .vars['reserved-article-display-date'].data!"" > 
95	<#if isGlobal > 
96		 
97		<#if articlePublicationDate?? && articlePublicationDate != "" > 
98			<#assign publicationDateStr = upvlibs.getPublicationDate(articlePublicationDate)  > 
99		 
100			<div class="new-detail__info-date-share__date"> 
101				<p class="publication_date"> 
102					<strong class="text"> <@liferay.language key="ehu.first-publication-date" />:</strong> 
103					 
104					<span class="date">${ publicationDateStr }</span> 
105					 
106				</p> 
107			</div> 
108		</#if>	 
109	<#else> 
110		 
111		<#if articlePublicationDate?? && articlePublicationDate != "" > 
112			<#assign publicationDateStr = upvlibs.getPublicationDate(articlePublicationDate)  > 
113			 
114				<p class="publication_date"> 
115					<strong class="text"> <@liferay.language key="ehu.first-publication-date" />:</strong> 
116					<span class="date">${ publicationDateStr }</span> 
117				</p> 
118			 
119		</#if> 
120	</#if> 
121 
122 
123 
124	<#-- REDES SOCIALES -->	 
125		<!-- Si está marcado el check de redes sociales las pintamos --> 
126		<#if entGeneralData.ehusocialbookmarks?? && entGeneralData.ehusocialbookmarks.getData()?has_content && entGeneralData.ehusocialbookmarks.getData()=="true" >		 
127			<#assign classRS = "share-social-bar__item" >			 
128			<#assign urlEnCurso = themeDisplay.getURLPortal() + themeDisplay.getURLCurrent() > 
129			<#-- SHARE SOCIAL BAR --> 
130			<div class="share-social-bar"> 
131				<a href="https://www.facebook.com/share.php?u=${urlEnCurso?replace(' ','%20')}&amp;t=www.ehu.eus" target="_blank" title='<@liferay.language key="ehu.social-bookmark.facebook" />' class="${ classRS } svg-icon"> 
132					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M80 299.3V512H196V299.3h86.5l18-97.8H196V166.9c0-51.7 20.3-71.5 72.7-71.5c16.3 0 29.4 .4 37 1.2V7.9C291.4 4 256.4 0 236.2 0C129.3 0 80 50.5 80 159.4v42.1H14v97.8H80z"/></svg> 
133					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.facebook" /> - ${ cTxtNewWindow }</span> 
134				</a> 
135				<a href="https://bsky.app/intent/compose?text=${urlEnCurso?replace(' ','%20')}%20-%20www.ehu.eus%20" target="_blank" title='<@liferay.language key="ehu.social-bookmark.bluesky" />' class="${ classRS } svg-icon"> 
136					<svg height="16" viewBox="0 0 512 512" width="16" xmlns="http://www.w3.org/2000/svg"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2c42.1-31.6 110.3-56 110.3 21.8c0 15.5-8.9 130.5-14.1 149.2C478.2 298 412 314.6 353.1 304.5c102.9 17.5 129.1 75.5 72.5 133.5c-107.4 110.2-154.3-27.6-166.3-62.9l0 0c-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8l0 0c-12 35.3-59 173.1-166.3 62.9c-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1C10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg> 
137					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.bluesky" /> - ${ cTxtNewWindow }</span> 
138				</a> 
139				<a href="https://www.linkedin.com/shareArticle?mini=true&amp;url=${urlEnCurso?replace(' ','%20')}&amp;title=${title?replace(' ','%20')}&amp;summary=" target="_blank" title='<@liferay.language key="ehu.social-bookmark.linkedin" />' class="${ classRS } svg-icon"> 
140					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M100.3 448H7.4V148.9h92.9zM53.8 108.1C24.1 108.1 0 83.5 0 53.8a53.8 53.8 0 0 1 107.6 0c0 29.7-24.1 54.3-53.8 54.3zM447.9 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448z"/></svg> 
141					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.linkedin" /> - ${ cTxtNewWindow }</span> 
142				</a> 
143				<a href="whatsapp://send?text=${ urlEnCurso }" data-action="share/whatsapp/share" target="_blank" class="${ classRS } svg-icon" title='<@liferay.language key="ehu.social-bookmark.whatsapp" />'> 
144					<svg class="svg-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"/></svg>  
145					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.whatsapp" /> - ${ cTxtNewWindow }</span> 
146				</a> 
147				<a href="https://t.me/share/url?url=${ urlEnCurso }&text=${ title }" target="_blank" class="${ classRS } svg-icon" title='<@liferay.language key="ehu.social-bookmark.telegram" />'> 
148					<svg class="svg-telegram" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M248 8C111 8 0 119 0 256S111 504 248 504 496 393 496 256 385 8 248 8zM363 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5q-3.3 .7-104.6 69.1-14.8 10.2-26.9 9.9c-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3q.8-6.7 18.5-13.7 108.4-47.2 144.6-62.3c68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9a10.5 10.5 0 0 1 3.5 6.7A43.8 43.8 0 0 1 363 176.7z"/></svg>  
149					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.telegram" /> - ${ cTxtNewWindow }</span> 
150				</a> 
151				<a href="mailto:?subject=${title?replace(' ','%20')}&amp;body=%20-%20${urlEnCurso?replace(' ','%20')}" target="_blank" title='<@liferay.language key="ehu.send-email" />' class="${ classRS } svg-icon"> 
152					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"/></svg> 
153					<span class="sr-only"><@liferay.language key="ehu.send-email" /> - ${ cTxtNewWindow }</span> 
154				</a> 
155				<a href="javascript:void(0)" onclick="copyCurrentUrl()" title='<@liferay.language key="copy-link" />' class="${ classRS } svg-icon"> 
156					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg> 
157					<span class="sr-only"><@liferay.language key="copy-link" /> - ${ cTxtNewWindow }</span> 
158				</a> 
159			</div>			 
160		</#if>	 
161 
162	<#if isGlobal > 
163		</div> <#-- class="new-detail__info-date-share" --> 
164		<div class="new-detail__body"> 
165	</#if> 
166 
167	<#-- IMAGE --> 
168	<#assign entImage = entGeneralData.ehunewimageFieldSet > 
169	<#assign imageSrc = "" > 
170	<#if entImage.ehunewimage?? &&  entImage.ehunewimage.getData()?? && entImage.ehunewimage.getData()?has_content> 
171		<#assign imageSrc =  entImage.ehunewimage.getData()> 
172	</#if> 
173	<#if imageSrc != "" > 
174	 
175		<#assign imageAltText = ""> 
176		<#if  entImage.ehunewimagealt?? &&  entImage.ehunewimagealt.getData()?? &&  entImage.ehunewimagealt.getData()?has_content> 
177			<#assign imageAltText = entImage.ehunewimagealt.getData()> 
178		</#if> 
179		 
180		<#assign imageFootText = ""> 
181		<#if entImage.ehunewimagefoot?? &&  entImage.ehunewimagefoot.getData()?? &&  entImage.ehunewimagefoot.getData()?has_content  > 
182			<#assign imageFootText = entImage.ehunewimagefoot.getData() > 
183		</#if> 
184 
185		<#assign imageAuthorText = ""> 
186		<#if entImage.ehunewimageauthor?? &&  entImage.ehunewimageauthor.getData()?? &&  entImage.ehunewimageauthor.getData()?has_content> 
187			<#assign imageAuthorText = entImage.ehunewimageauthor.getData() > 
188		</#if> 
189		 
190		<#assign imageAlign = ""> 
191		<#if entImage.ehuimagedisposition?? && entImage.ehuimagedisposition.getData()?? && entImage.ehuimagedisposition.getData()?has_content> 
192			<#assign imageAlign =  entImage.ehuimagedisposition.getData()> 
193		</#if> 
194		 
195		<#assign imageUrl = "" > 
196		<#if entImage.ehunewimageurl?? && entImage.ehunewimageurl.getData()?? && entImage.ehunewimageurl.getData()?has_content > 
197			<#assign imageUrl = entImage.ehunewimageurl.getData()> 
198		</#if> 
199		 
200	 
201		<#assign imageUrlTitle = "" > 
202		<#assign imageUrlNewTab = true > 
203		<#assign imageClass = "img-main" > 
204 
205		<#-- Pasamos la imagen de la noticia directamente al og:image para que no haya problemas al compartirla 
206			 en redes sociales (Trello 273 - Trello 637) -->	 
207		<@liferay_util["html-top"]> 
208			<meta property="og:image" content="${ portalUtil.getAbsoluteURL( request, imageSrc ) }"> 
209		</@> 
210		<#if !isGlobal && entImage.ehunewimageurl??> 
211			<@upvlibs.imageAuthorSection image=imageSrc altText=imageAltText footText=imageFootText imageAuthor=imageAuthorText 
212				imageDisposition=imageAlign elemImageUrl=entImage.ehunewimageurl imageUrlTitle=imageUrlTitle imageUrlNewTab=imageUrlNewTab imgClass=imageClass /> 
213		<#else> 
214			 
215			<#if imageUrl != ""> 
216				<a href="${ imageUrl }" target="_blank"> 
217			</#if> 
218			<div class="new-detail__body__main-image ${ imageAlign }"> 
219			<img src="${ upvlibs.getImageURL(imageSrc) }" alt="${ imageAltText }" class="${ imageClass }"/>  
220			 
221				<#if imageFootText != "" || imageAuthorText != "" > 
222					<div class="main-image__footer"> 
223						<#if imageFootText == "" > 
224							<#assign txtPhoto = "" > 
225						<#else> 
226							<#assign txtPhoto = imageFootText > 
227						</#if> 
228						<#if imageAuthorText != "" > 
229							<#if imageFootText == "" > 
230								<#assign aux = "" > 
231							<#else> 
232								<#assign aux = " | " > 
233							</#if> 
234							<#assign txtPhoto = txtPhoto + aux + cTxtPhoto + ": " + imageAuthorText > 
235						</#if> 
236						<#if imageAlign == "" > 
237								<#assign classImageFootText = "center" > 
238						<#else> 
239								<#assign classImageFootText = imageAlign > 
240						</#if> 
241						<p class="${ classImageFootText }">${ txtPhoto }</p>					 
242				   </div> 
243				</#if>				 
244		  	 </div> 
245		   <#if imageUrl != ""> 
246				</a> 
247			</#if> 
248		</#if> 
249	<#else> 
250		<#-- Si la imagen no tiene imagen metemos como imagen para redes sociales el logo de la universidad 
251			 proporcionado por la oficina de comunicación (Trello 565 - Trello 637) -->	 
252		<@liferay_util["html-top"]> 
253				<meta property="og:image" content="https://www.ehu.eus/documents/522485/1339603/avatar.jpg"> 
254		</@> 
255	</#if> 
256 
257	<#-- ENTRADILLA --> 
258	<#-- Desde la Oficina de Comunicacion piden para Campusa que la entradilla vaya despues de la imagen 
259		 Se hace el cambio para todos --> 
260	<#assign entradilla = ""> 
261	<#if entGeneralData.ehunewentradilla?? &&  entGeneralData.ehunewentradilla.getData()?? && entGeneralData.ehunewentradilla.getData()?has_content> 
262		<#assign entradilla = entGeneralData.ehunewentradilla.getData() > 
263	</#if> 
264	<#if entradilla != "" > 
265		<div class="${ entryClass }"> 
266			<p>${entradilla}</p> 
267		</div> 
268	</#if> 
269 
270	<#-- DESCRIPTION --> 
271	<#if entGeneralData.ehunewtext?? &&  entGeneralData.ehunewtext.getData()?? && entGeneralData.ehunewtext.getData()?has_content > 
272		<#assign description = entGeneralData.ehunewtext.getData()> 
273	</#if> 
274	<#if  description != "" > 
275		<div class="${ descriptionClass }"> 
276				${ description } 
277		</div> 
278	</#if> 
279 
280	<#if isGlobal > 
281		<#-- IMAGE GALLERY --> 
282		<div class="new-detail__body__image-gallery"> 
283			<#if ehuimagegalleryFieldSet?? > 
284				<#if ehuimagegalleryFieldSet.ehuslideFieldSet??> 
285					<@upvlibs.imageGallerySection ehuimagegalleryFieldSet.ehuslideFieldSet articleId 4 /> 
286				</#if> 
287			</#if>				 
288		</div> 
289	</#if> 
290	<#if isGlobal > 
291		</div> <#-- class="new-detail__body" --> 
292	</#if> 
293	 
294	<#assign entMoreInfo = ehumoreinfoFieldSet > 
295	<#if entMoreInfo?? > 
296		<#-- DOCUMENTS -->		 
297		<#if entMoreInfo.ehunewdocumentFieldSet?? > 
298			<@upvlibs.writeHtmlForDocumentsNew documents=entMoreInfo.ehunewdocumentFieldSet nivel=2 encabezado="document" campo="ehunewdocument" titulo="ehunewdocumenttitle" tipo=2 adicional=0 /> 
299		</#if> 
300		 
301		<#-- LINKS -->	 
302		<#if entMoreInfo.ehunewurlFieldSet??> 
303			<#assign encabezado="ehu.web-address"> 
304			<#if !isGlobal > 
305				<#assign encabezado="link"> 
306			</#if> 
307				<@upvlibs.writeHtmlForLinksNew links=entMoreInfo.ehunewurlFieldSet nivel=2 encabezado=encabezado campo="ehunewurl" titulo="ehunewurltitle" newTab="" tipo=2 adicional=0 />	 
308		</#if> 
309	</#if> 
310	 
311	<#-- REFERENCE INFO --> 
312	<#-- Bibliografía --> 
313	<#assign entBibliography = ehunewbibliographicreferenceFieldSet > 
314	<#assign hayBiblioArticles = getterUtil.getBoolean("false")> 
315	<#if entBibliography?? && entBibliography.getSiblings()??>				 
316		<@upvlibs.validarLista lista=entBibliography campo="ehubibliographicreferencearticle" /> 
317		<#assign hayBiblioArticles = upvlibs.valida />				    
318		 
319	</#if>	 
320	<#if hayBiblioArticles > 
321		<div class="${ bibliographyClass }"> 
322			<#if !isGlobal > 
323				<#assign htmlIconBibliography = '<i class="icon-book"></i>' > 
324			<#else> 
325				<#assign htmlIconBibliography = ""  > 
326			</#if> 
327			 
328			<h2>${ htmlIconBibliography }<@liferay.language key="ehu.bibliographic-reference" /></h2> 
329			<#if !isGlobal > 
330				<ul> 
331			<#else> 
332				<ul class="list-unstyled new-detail__bibliographic-reference__item"> 
333			</#if> 
334			<#if !isGlobal > 
335				<#assign htmlTxtArticle = "" > 
336				<#assign htmlTxtPublication = "" > 
337				<#assign htmlTxtAutoria = "" > 
338				<#assign htmlTagBiblio = "span" > 
339			<#else> 
340				<#assign htmlTxtArticle = "<strong>" + cTxtArticle + ":" + "</strong>" > 
341				<#assign htmlTxtPublication = "<strong>" + cTxtPublishing + ":" + "</strong>" > 
342				<#assign htmlTxtAutoria = "<strong>" + cTxtAutoria + ":" + "</strong>" > 
343				<#assign htmlTagBiblio = "p" > 
344			</#if> 
345			<#if !isGlobal > 
346				<#assign htmlTxtDoi = '<abbr title="' + cTxtDoiTitle + '">' + cTxtDoi + '</abbr>: ' > 
347			<#else> 
348				<#assign htmlTxtDoi = '<abbr title="' + cTxtDoiTitle + '">' + "<strong>" + cTxtDoi + "</strong>" + '</abbr>: ' > 
349			</#if> 
350			<#list entBibliography.getSiblings() as elemEntBibliography > 
351				<#if elemEntBibliography.ehubibliographicreferencearticle?is_hash > 
352					<#assign aux = elemEntBibliography.ehubibliographicreferencearticle.getData() > 
353				<#else> 
354					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferencearticle ) > 
355				</#if> 
356				<#if aux?has_content && aux != ""> 
357					<#assign biblioArticle = aux> 
358				<#else> 
359					<#assign biblioArticle = ""> 
360				</#if> 
361				<#if elemEntBibliography.ehubibliographicreferencepublication?is_hash > 
362					<#assign aux = elemEntBibliography.ehubibliographicreferencepublication.getData() > 
363				<#else> 
364					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferencepublication ) > 
365				</#if> 
366				<#if aux?has_content && aux != ""> 
367					<#assign biblioPublication = aux> 
368				<#else> 
369					<#assign biblioPublication = ""> 
370				</#if> 
371				<#if biblioArticle == "" ||  biblioPublication == "" >	<#continue> </#if> 
372				 
373				<#if elemEntBibliography.ehubibliographicreferenceauthors?is_hash > 
374					<#assign aux = elemEntBibliography.ehubibliographicreferenceauthors.getData() > 
375				<#else> 
376					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferenceauthors ) > 
377				</#if> 
378				<#if aux?has_content && aux != ""> 
379					<#assign biblioAuthors = aux> 
380				<#else> 
381					<#assign biblioAuthors = ""> 
382				</#if> 
383				<#if elemEntBibliography.ehubibliographicreferencedoi?is_hash > 
384					<#assign aux = elemEntBibliography.ehubibliographicreferencedoi.getData() > 
385				<#else> 
386					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferencedoi ) > 
387				</#if> 
388				<#if aux?has_content && aux != ""> 
389					<#assign biblioDoi = aux> 
390				<#else>	 
391					<#assign biblioDoi = ""> 
392				</#if> 
393				<#if  biblioAuthors != "" > 
394					<li> 
395						<${ htmlTagBiblio } class="authors">${ htmlTxtAutoria } ${ biblioAuthors }</${ htmlTagBiblio }> 
396					</li> 
397				</#if> 
398				<#if biblioArticle != "" > 
399					<#if biblioDoi == "" > 
400						<#assign htmlBiblioArticle = biblioArticle > 
401					<#else> 
402						<#assign htmlBiblioArticle = '<a target="_blank" href="' + cUrlDoiOrg + biblioDoi + '">' + biblioArticle + '</a>' > 
403					</#if> 
404					<li> 
405						<${ htmlTagBiblio } class="article">${ htmlTxtArticle } ${ htmlBiblioArticle }</${ htmlTagBiblio }> 
406					</li> 
407				</#if> 
408				<#if biblioPublication != "" > 
409					<li> 
410						<${ htmlTagBiblio } class="publication">${ htmlTxtPublication } ${ biblioPublication }</${ htmlTagBiblio }> 
411					</li> 
412				</#if> 
413				<#if biblioDoi != "" > 
414					<li> 
415						<${ htmlTagBiblio } class="doi">${ htmlTxtDoi } ${ biblioDoi }</${ htmlTagBiblio }> 
416					</li> 
417				</#if> 
418 
419			</#list> 
420			 
421			</ul> 
422			 
423		</div> <#-- class="${ bibliographyClass }" --> 
424	</#if> 
425 
426	<#if !isGlobal > 
427		<#-- IMAGE GALLERY --> 
428		<#if ehuimagegalleryFieldSet?? > 
429			<#if ehuimagegalleryFieldSet.ehuslideFieldSet??> 
430				<@upvlibs.imageGallerySection ehuimagegalleryFieldSet.ehuslideFieldSet articleId 4 /> 
431			</#if> 
432		</#if> 
433		</div> <#-- class="content-content" --> 
434 
435		<#-- LAST MODIFICATION DATE --> 
436		<#assign showLastModifDate = getterUtil.getBoolean( "false")> 
437		<#if entGeneralData.ehulastmodificationdate?? && entGeneralData.ehulastmodificationdate.getData()?? && entGeneralData.ehulastmodificationdate.getData()?has_content> 
438			<#assign showLastModifDate = getterUtil.getBoolean(entGeneralData.ehulastmodificationdate.getData()) > 
439		</#if> 
440		<#if showLastModifDate > 
441			<div class="content-footer"> 
442				<#assign articleModifiedDate = .vars['reserved-article-modified-date'].data!"" > 
443				 
444				<#assign modifiedDateStr = upvlibs.getModifiedDate(articleModifiedDate)  > 
445				 
446				<#if modifiedDateStr != "" > 
447					<p class="modification_date"> 
448						<strong class="text"> <@liferay.language key="ehu.last-modification-date" />:</strong> 
449						<span class="date">${ modifiedDateStr }</span> 
450					</p> 
451				</#if> 
452			</div> 
453		</#if> 
454	</#if> 
455 
456</article> 
457 
458 
459<#-- Script para copiar al portapapeles la URL actual --> 
460 
461<script> 
462function copyCurrentUrl() { 
463    const successMessage = '<@liferay.language key="copied-link-to-the-clipboard" />'; 
464    const errorMessage = '<@liferay.language key="element-cannot-be-copied" />'; 
465 
466    if (navigator.clipboard && window.isSecureContext) { 
467        navigator.clipboard.writeText(window.location.href) 
468            .then(() => alert(successMessage)) 
469            .catch(() => alert(errorMessage)); 
470    } else { 
471        const textArea = document.createElement("textarea"); 
472        textArea.value = window.location.href; 
473        document.body.appendChild(textArea); 
474        textArea.focus(); 
475        textArea.select(); 
476        try { 
477            const successful = document.execCommand('copy'); 
478            alert(successful ? successMessage : errorMessage); 
479        } catch (err) { 
480            alert(errorMessage); 
481        } 
482        document.body.removeChild(textArea); 
483    } 
484} 
485</script> 

Workshop on Graphene | Chip SoC4Sensing Chair

On December 15, we had the pleasure of hosting the first Workshop on Graphene, held at the Bilbao School of Engineering of the University of the Basque Country (EHU), and organized by the Chip SoC4Sensing Chair – Hands on Semiconductors.

Lehenengo argitaratze data: 2025/12/23

The workshop was structured into two complementary parts:

  1. Graphene sensor design: Presented by Juan Manuel Gómez Pérez and Alba Centeno Pérez from Graphenea, who addressed the principles, challenges, and opportunities in the design of graphene-based sensors, with a practical and application-oriented focus.
  2. Emerging 2D materials and functional inks: Delivered by David Estrada, Monet Sawyer, and Hailey B. from the Micron School of Materials Science and Engineering at Boise State University, focusing on new two-dimensional materials and the development of 2D inks for electronic and sensing applications.

This workshop highlighted the enormous potential of graphene and two-dimensional materials as enabling technologies for the next generation of semiconductor devices, particularly in advanced sensing applications, flexible electronics, and integration with SoC architectures.

Likewise, the event served as a strategic forum for dialogue among universities, industry, and international research centers, giving rise to new synergies and collaborative research lines around the design, fabrication, and characterization of devices based on 2D materials. From the Chip SoC4Sensing Chair – Hands on Semiconductors, we will continue to promote initiatives of this kind that strengthen the semiconductor and technology ecosystem, fostering knowledge transfer and the development of high-impact joint projects.

Ikerketa

Errorea gertatu da txantiloia prozesatzerakoan.
The following has evaluated to null or missing:
==> description  [in template "10112#522485#1324421" at line 274, column 15]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if description != ""  [in template "10112#522485#1324421" at line 274, column 9]
----
1<#-- GENERAL--> 
2<#assign cTxtArticle			= languageUtil.get( locale, "article" ) > 
3<#assign cTxtAutoria			= languageUtil.get( locale, "ehu.authors" ) > 
4<#assign cTxtDoi				= languageUtil.get( locale, "ehu.doi" ) > 
5<#assign cTxtDoiTitle			= languageUtil.get( locale, "ehu.digital-object-identifier" ) > 
6<#assign cTxtNewWindow			= languageUtil.get( locale, "opens-new-window" ) > 
7<#assign cTxtPhoto				= languageUtil.get( locale, "ehu.photo" ) > 
8<#assign cTxtPublishing			= languageUtil.get( locale, "publishing" ) > 
9 
10<#assign cUrlDoiOrg				= "https://doi.org/" > 
11<#assign scopeId = themeDisplay.scopeGroupId> 
12<#assign isCampusa = (themeDisplay.getTheme().getContextPath() == "/o/upv-ehu-campusa-theme") > 
13<#assign isGlobal = (themeDisplay.getTheme().getContextPath() == "/o/upv-ehu-global-theme") > 
14<#assign journalLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
15<#if .vars['reserved-article-id']?has_content> 
16	<#assign articleId = .vars['reserved-article-id'] >  
17<#else> 
18	<#assign articleId = "">  
19</#if> 
20 
21<#if !isGlobal > 
22	<#assign articleClass		= "new" > 
23	<#assign preTitleClass		= "pretitle" > 
24	<#assign titleClass			= "new-title" > 
25	<#assign subTitleClass		= "subtitle" > 
26	<#assign entryClass			= "entry" > 
27	<#assign descriptionClass	= "description" > 
28	<#assign bibliographyClass	= "bibliographic-reference" > 
29	<#assign headerTag			= "div" > 
30	<#assign headerBloqueTag	= "p" > 
31	<#assign htmlHeaderTagClass	= ' class="content-header"' > 
32<#else> 
33	<#assign articleClass		= "new-detail" > 
34	<#assign preTitleClass		= "new-detail__pretitle" > 
35	<#assign titleClass			= "new-detail__title" > 
36	<#assign subTitleClass		= "new-detail__subtitle" > 
37	<#assign entryClass			= "new-detail__body__entry" > 
38	<#assign descriptionClass	= "new-detail__body__description" > 
39	<#assign bibliographyClass	= "new-detail__bibliographic-reference" > 
40	<#assign headerTag			= "header" > 
41	<#assign headerBloqueTag	= "div" > 
42	<#assign htmlHeaderTagClass	= "" > 
43</#if> 
44 
45<#assign entGeneralData = ehugeneraldataFieldSet > 
46 
47<#-- HTML--> 
48<article class="${ articleClass }"> 
49	<#-- PRETITLE, TITLE, SUBTITLE --> 
50	<#assign preTitle = ""> 
51	<#if entGeneralData.ehupretitle?? && entGeneralData.ehupretitle.getData()?? && entGeneralData.ehupretitle.getData()?has_content> 
52		<#assign preTitle = entGeneralData.ehupretitle.getData()>	 
53	</#if> 
54	 
55	<#assign title = ""> 
56	<#if entGeneralData.ehunewtitle?? && entGeneralData.ehunewtitle.getData()?? && entGeneralData.ehunewtitle.getData()?has_content> 
57		<#assign title = entGeneralData.ehunewtitle.getData()> 
58	</#if> 
59	 
60	<#assign subTitle = ""> 
61	<#if entGeneralData.ehunewsubtitle?? && entGeneralData.ehunewsubtitle.getData()?? && entGeneralData.ehunewsubtitle.getData()?has_content> 
62		<#assign subTitle = entGeneralData.ehunewsubtitle.getData()> 
63	</#if> 
64	<${ headerTag }${ htmlHeaderTagClass }> 
65		<#if preTitle != "" > 
66			<${ headerBloqueTag } class="${ preTitleClass }">${ preTitle }</${ headerBloqueTag }> 
67		</#if> 
68		<#if title != "" > 
69			<h1 class="${ titleClass }">${ title }</h1>    
70		</#if> 
71		<#if subTitle != "" > 
72			<${ headerBloqueTag } class="${ subTitleClass }">${ subTitle }</${ headerBloqueTag }> 
73		</#if> 
74	</${ headerTag }> 
75 
76	<#if !isGlobal > 
77		<div class="content-content"> 
78	</#if> 
79	<#if isGlobal > 
80		<div class="new-detail__info-date-share"> 
81	</#if> 
82 
83	<#-- CAMPUSA VOCABULARY --> 
84	<#assign vocabularyName = "campusa" > 
85	<#assign tag_init = "<ul></ul>" > 
86	<#assign categories = tag_init > 
87	<@upvlibs.formatVocabularyCategoriesProperties vocabularyName=vocabularyName /> 
88	<#assign categories = upvlibs.categoriesListStr > 
89	 
90	<#if  categories != tag_init  > 
91		<div class="campusa-category">${ categories }</div> 
92	</#if> 
93 
94	<#assign articlePublicationDate = .vars['reserved-article-display-date'].data!"" > 
95	<#if isGlobal > 
96		 
97		<#if articlePublicationDate?? && articlePublicationDate != "" > 
98			<#assign publicationDateStr = upvlibs.getPublicationDate(articlePublicationDate)  > 
99		 
100			<div class="new-detail__info-date-share__date"> 
101				<p class="publication_date"> 
102					<strong class="text"> <@liferay.language key="ehu.first-publication-date" />:</strong> 
103					 
104					<span class="date">${ publicationDateStr }</span> 
105					 
106				</p> 
107			</div> 
108		</#if>	 
109	<#else> 
110		 
111		<#if articlePublicationDate?? && articlePublicationDate != "" > 
112			<#assign publicationDateStr = upvlibs.getPublicationDate(articlePublicationDate)  > 
113			 
114				<p class="publication_date"> 
115					<strong class="text"> <@liferay.language key="ehu.first-publication-date" />:</strong> 
116					<span class="date">${ publicationDateStr }</span> 
117				</p> 
118			 
119		</#if> 
120	</#if> 
121 
122 
123 
124	<#-- REDES SOCIALES -->	 
125		<!-- Si está marcado el check de redes sociales las pintamos --> 
126		<#if entGeneralData.ehusocialbookmarks?? && entGeneralData.ehusocialbookmarks.getData()?has_content && entGeneralData.ehusocialbookmarks.getData()=="true" >		 
127			<#assign classRS = "share-social-bar__item" >			 
128			<#assign urlEnCurso = themeDisplay.getURLPortal() + themeDisplay.getURLCurrent() > 
129			<#-- SHARE SOCIAL BAR --> 
130			<div class="share-social-bar"> 
131				<a href="https://www.facebook.com/share.php?u=${urlEnCurso?replace(' ','%20')}&amp;t=www.ehu.eus" target="_blank" title='<@liferay.language key="ehu.social-bookmark.facebook" />' class="${ classRS } svg-icon"> 
132					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M80 299.3V512H196V299.3h86.5l18-97.8H196V166.9c0-51.7 20.3-71.5 72.7-71.5c16.3 0 29.4 .4 37 1.2V7.9C291.4 4 256.4 0 236.2 0C129.3 0 80 50.5 80 159.4v42.1H14v97.8H80z"/></svg> 
133					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.facebook" /> - ${ cTxtNewWindow }</span> 
134				</a> 
135				<a href="https://bsky.app/intent/compose?text=${urlEnCurso?replace(' ','%20')}%20-%20www.ehu.eus%20" target="_blank" title='<@liferay.language key="ehu.social-bookmark.bluesky" />' class="${ classRS } svg-icon"> 
136					<svg height="16" viewBox="0 0 512 512" width="16" xmlns="http://www.w3.org/2000/svg"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2c42.1-31.6 110.3-56 110.3 21.8c0 15.5-8.9 130.5-14.1 149.2C478.2 298 412 314.6 353.1 304.5c102.9 17.5 129.1 75.5 72.5 133.5c-107.4 110.2-154.3-27.6-166.3-62.9l0 0c-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8l0 0c-12 35.3-59 173.1-166.3 62.9c-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1C10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg> 
137					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.bluesky" /> - ${ cTxtNewWindow }</span> 
138				</a> 
139				<a href="https://www.linkedin.com/shareArticle?mini=true&amp;url=${urlEnCurso?replace(' ','%20')}&amp;title=${title?replace(' ','%20')}&amp;summary=" target="_blank" title='<@liferay.language key="ehu.social-bookmark.linkedin" />' class="${ classRS } svg-icon"> 
140					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M100.3 448H7.4V148.9h92.9zM53.8 108.1C24.1 108.1 0 83.5 0 53.8a53.8 53.8 0 0 1 107.6 0c0 29.7-24.1 54.3-53.8 54.3zM447.9 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448z"/></svg> 
141					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.linkedin" /> - ${ cTxtNewWindow }</span> 
142				</a> 
143				<a href="whatsapp://send?text=${ urlEnCurso }" data-action="share/whatsapp/share" target="_blank" class="${ classRS } svg-icon" title='<@liferay.language key="ehu.social-bookmark.whatsapp" />'> 
144					<svg class="svg-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"/></svg>  
145					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.whatsapp" /> - ${ cTxtNewWindow }</span> 
146				</a> 
147				<a href="https://t.me/share/url?url=${ urlEnCurso }&text=${ title }" target="_blank" class="${ classRS } svg-icon" title='<@liferay.language key="ehu.social-bookmark.telegram" />'> 
148					<svg class="svg-telegram" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M248 8C111 8 0 119 0 256S111 504 248 504 496 393 496 256 385 8 248 8zM363 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5q-3.3 .7-104.6 69.1-14.8 10.2-26.9 9.9c-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3q.8-6.7 18.5-13.7 108.4-47.2 144.6-62.3c68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9a10.5 10.5 0 0 1 3.5 6.7A43.8 43.8 0 0 1 363 176.7z"/></svg>  
149					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.telegram" /> - ${ cTxtNewWindow }</span> 
150				</a> 
151				<a href="mailto:?subject=${title?replace(' ','%20')}&amp;body=%20-%20${urlEnCurso?replace(' ','%20')}" target="_blank" title='<@liferay.language key="ehu.send-email" />' class="${ classRS } svg-icon"> 
152					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"/></svg> 
153					<span class="sr-only"><@liferay.language key="ehu.send-email" /> - ${ cTxtNewWindow }</span> 
154				</a> 
155				<a href="javascript:void(0)" onclick="copyCurrentUrl()" title='<@liferay.language key="copy-link" />' class="${ classRS } svg-icon"> 
156					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg> 
157					<span class="sr-only"><@liferay.language key="copy-link" /> - ${ cTxtNewWindow }</span> 
158				</a> 
159			</div>			 
160		</#if>	 
161 
162	<#if isGlobal > 
163		</div> <#-- class="new-detail__info-date-share" --> 
164		<div class="new-detail__body"> 
165	</#if> 
166 
167	<#-- IMAGE --> 
168	<#assign entImage = entGeneralData.ehunewimageFieldSet > 
169	<#assign imageSrc = "" > 
170	<#if entImage.ehunewimage?? &&  entImage.ehunewimage.getData()?? && entImage.ehunewimage.getData()?has_content> 
171		<#assign imageSrc =  entImage.ehunewimage.getData()> 
172	</#if> 
173	<#if imageSrc != "" > 
174	 
175		<#assign imageAltText = ""> 
176		<#if  entImage.ehunewimagealt?? &&  entImage.ehunewimagealt.getData()?? &&  entImage.ehunewimagealt.getData()?has_content> 
177			<#assign imageAltText = entImage.ehunewimagealt.getData()> 
178		</#if> 
179		 
180		<#assign imageFootText = ""> 
181		<#if entImage.ehunewimagefoot?? &&  entImage.ehunewimagefoot.getData()?? &&  entImage.ehunewimagefoot.getData()?has_content  > 
182			<#assign imageFootText = entImage.ehunewimagefoot.getData() > 
183		</#if> 
184 
185		<#assign imageAuthorText = ""> 
186		<#if entImage.ehunewimageauthor?? &&  entImage.ehunewimageauthor.getData()?? &&  entImage.ehunewimageauthor.getData()?has_content> 
187			<#assign imageAuthorText = entImage.ehunewimageauthor.getData() > 
188		</#if> 
189		 
190		<#assign imageAlign = ""> 
191		<#if entImage.ehuimagedisposition?? && entImage.ehuimagedisposition.getData()?? && entImage.ehuimagedisposition.getData()?has_content> 
192			<#assign imageAlign =  entImage.ehuimagedisposition.getData()> 
193		</#if> 
194		 
195		<#assign imageUrl = "" > 
196		<#if entImage.ehunewimageurl?? && entImage.ehunewimageurl.getData()?? && entImage.ehunewimageurl.getData()?has_content > 
197			<#assign imageUrl = entImage.ehunewimageurl.getData()> 
198		</#if> 
199		 
200	 
201		<#assign imageUrlTitle = "" > 
202		<#assign imageUrlNewTab = true > 
203		<#assign imageClass = "img-main" > 
204 
205		<#-- Pasamos la imagen de la noticia directamente al og:image para que no haya problemas al compartirla 
206			 en redes sociales (Trello 273 - Trello 637) -->	 
207		<@liferay_util["html-top"]> 
208			<meta property="og:image" content="${ portalUtil.getAbsoluteURL( request, imageSrc ) }"> 
209		</@> 
210		<#if !isGlobal && entImage.ehunewimageurl??> 
211			<@upvlibs.imageAuthorSection image=imageSrc altText=imageAltText footText=imageFootText imageAuthor=imageAuthorText 
212				imageDisposition=imageAlign elemImageUrl=entImage.ehunewimageurl imageUrlTitle=imageUrlTitle imageUrlNewTab=imageUrlNewTab imgClass=imageClass /> 
213		<#else> 
214			 
215			<#if imageUrl != ""> 
216				<a href="${ imageUrl }" target="_blank"> 
217			</#if> 
218			<div class="new-detail__body__main-image ${ imageAlign }"> 
219			<img src="${ upvlibs.getImageURL(imageSrc) }" alt="${ imageAltText }" class="${ imageClass }"/>  
220			 
221				<#if imageFootText != "" || imageAuthorText != "" > 
222					<div class="main-image__footer"> 
223						<#if imageFootText == "" > 
224							<#assign txtPhoto = "" > 
225						<#else> 
226							<#assign txtPhoto = imageFootText > 
227						</#if> 
228						<#if imageAuthorText != "" > 
229							<#if imageFootText == "" > 
230								<#assign aux = "" > 
231							<#else> 
232								<#assign aux = " | " > 
233							</#if> 
234							<#assign txtPhoto = txtPhoto + aux + cTxtPhoto + ": " + imageAuthorText > 
235						</#if> 
236						<#if imageAlign == "" > 
237								<#assign classImageFootText = "center" > 
238						<#else> 
239								<#assign classImageFootText = imageAlign > 
240						</#if> 
241						<p class="${ classImageFootText }">${ txtPhoto }</p>					 
242				   </div> 
243				</#if>				 
244		  	 </div> 
245		   <#if imageUrl != ""> 
246				</a> 
247			</#if> 
248		</#if> 
249	<#else> 
250		<#-- Si la imagen no tiene imagen metemos como imagen para redes sociales el logo de la universidad 
251			 proporcionado por la oficina de comunicación (Trello 565 - Trello 637) -->	 
252		<@liferay_util["html-top"]> 
253				<meta property="og:image" content="https://www.ehu.eus/documents/522485/1339603/avatar.jpg"> 
254		</@> 
255	</#if> 
256 
257	<#-- ENTRADILLA --> 
258	<#-- Desde la Oficina de Comunicacion piden para Campusa que la entradilla vaya despues de la imagen 
259		 Se hace el cambio para todos --> 
260	<#assign entradilla = ""> 
261	<#if entGeneralData.ehunewentradilla?? &&  entGeneralData.ehunewentradilla.getData()?? && entGeneralData.ehunewentradilla.getData()?has_content> 
262		<#assign entradilla = entGeneralData.ehunewentradilla.getData() > 
263	</#if> 
264	<#if entradilla != "" > 
265		<div class="${ entryClass }"> 
266			<p>${entradilla}</p> 
267		</div> 
268	</#if> 
269 
270	<#-- DESCRIPTION --> 
271	<#if entGeneralData.ehunewtext?? &&  entGeneralData.ehunewtext.getData()?? && entGeneralData.ehunewtext.getData()?has_content > 
272		<#assign description = entGeneralData.ehunewtext.getData()> 
273	</#if> 
274	<#if  description != "" > 
275		<div class="${ descriptionClass }"> 
276				${ description } 
277		</div> 
278	</#if> 
279 
280	<#if isGlobal > 
281		<#-- IMAGE GALLERY --> 
282		<div class="new-detail__body__image-gallery"> 
283			<#if ehuimagegalleryFieldSet?? > 
284				<#if ehuimagegalleryFieldSet.ehuslideFieldSet??> 
285					<@upvlibs.imageGallerySection ehuimagegalleryFieldSet.ehuslideFieldSet articleId 4 /> 
286				</#if> 
287			</#if>				 
288		</div> 
289	</#if> 
290	<#if isGlobal > 
291		</div> <#-- class="new-detail__body" --> 
292	</#if> 
293	 
294	<#assign entMoreInfo = ehumoreinfoFieldSet > 
295	<#if entMoreInfo?? > 
296		<#-- DOCUMENTS -->		 
297		<#if entMoreInfo.ehunewdocumentFieldSet?? > 
298			<@upvlibs.writeHtmlForDocumentsNew documents=entMoreInfo.ehunewdocumentFieldSet nivel=2 encabezado="document" campo="ehunewdocument" titulo="ehunewdocumenttitle" tipo=2 adicional=0 /> 
299		</#if> 
300		 
301		<#-- LINKS -->	 
302		<#if entMoreInfo.ehunewurlFieldSet??> 
303			<#assign encabezado="ehu.web-address"> 
304			<#if !isGlobal > 
305				<#assign encabezado="link"> 
306			</#if> 
307				<@upvlibs.writeHtmlForLinksNew links=entMoreInfo.ehunewurlFieldSet nivel=2 encabezado=encabezado campo="ehunewurl" titulo="ehunewurltitle" newTab="" tipo=2 adicional=0 />	 
308		</#if> 
309	</#if> 
310	 
311	<#-- REFERENCE INFO --> 
312	<#-- Bibliografía --> 
313	<#assign entBibliography = ehunewbibliographicreferenceFieldSet > 
314	<#assign hayBiblioArticles = getterUtil.getBoolean("false")> 
315	<#if entBibliography?? && entBibliography.getSiblings()??>				 
316		<@upvlibs.validarLista lista=entBibliography campo="ehubibliographicreferencearticle" /> 
317		<#assign hayBiblioArticles = upvlibs.valida />				    
318		 
319	</#if>	 
320	<#if hayBiblioArticles > 
321		<div class="${ bibliographyClass }"> 
322			<#if !isGlobal > 
323				<#assign htmlIconBibliography = '<i class="icon-book"></i>' > 
324			<#else> 
325				<#assign htmlIconBibliography = ""  > 
326			</#if> 
327			 
328			<h2>${ htmlIconBibliography }<@liferay.language key="ehu.bibliographic-reference" /></h2> 
329			<#if !isGlobal > 
330				<ul> 
331			<#else> 
332				<ul class="list-unstyled new-detail__bibliographic-reference__item"> 
333			</#if> 
334			<#if !isGlobal > 
335				<#assign htmlTxtArticle = "" > 
336				<#assign htmlTxtPublication = "" > 
337				<#assign htmlTxtAutoria = "" > 
338				<#assign htmlTagBiblio = "span" > 
339			<#else> 
340				<#assign htmlTxtArticle = "<strong>" + cTxtArticle + ":" + "</strong>" > 
341				<#assign htmlTxtPublication = "<strong>" + cTxtPublishing + ":" + "</strong>" > 
342				<#assign htmlTxtAutoria = "<strong>" + cTxtAutoria + ":" + "</strong>" > 
343				<#assign htmlTagBiblio = "p" > 
344			</#if> 
345			<#if !isGlobal > 
346				<#assign htmlTxtDoi = '<abbr title="' + cTxtDoiTitle + '">' + cTxtDoi + '</abbr>: ' > 
347			<#else> 
348				<#assign htmlTxtDoi = '<abbr title="' + cTxtDoiTitle + '">' + "<strong>" + cTxtDoi + "</strong>" + '</abbr>: ' > 
349			</#if> 
350			<#list entBibliography.getSiblings() as elemEntBibliography > 
351				<#if elemEntBibliography.ehubibliographicreferencearticle?is_hash > 
352					<#assign aux = elemEntBibliography.ehubibliographicreferencearticle.getData() > 
353				<#else> 
354					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferencearticle ) > 
355				</#if> 
356				<#if aux?has_content && aux != ""> 
357					<#assign biblioArticle = aux> 
358				<#else> 
359					<#assign biblioArticle = ""> 
360				</#if> 
361				<#if elemEntBibliography.ehubibliographicreferencepublication?is_hash > 
362					<#assign aux = elemEntBibliography.ehubibliographicreferencepublication.getData() > 
363				<#else> 
364					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferencepublication ) > 
365				</#if> 
366				<#if aux?has_content && aux != ""> 
367					<#assign biblioPublication = aux> 
368				<#else> 
369					<#assign biblioPublication = ""> 
370				</#if> 
371				<#if biblioArticle == "" ||  biblioPublication == "" >	<#continue> </#if> 
372				 
373				<#if elemEntBibliography.ehubibliographicreferenceauthors?is_hash > 
374					<#assign aux = elemEntBibliography.ehubibliographicreferenceauthors.getData() > 
375				<#else> 
376					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferenceauthors ) > 
377				</#if> 
378				<#if aux?has_content && aux != ""> 
379					<#assign biblioAuthors = aux> 
380				<#else> 
381					<#assign biblioAuthors = ""> 
382				</#if> 
383				<#if elemEntBibliography.ehubibliographicreferencedoi?is_hash > 
384					<#assign aux = elemEntBibliography.ehubibliographicreferencedoi.getData() > 
385				<#else> 
386					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferencedoi ) > 
387				</#if> 
388				<#if aux?has_content && aux != ""> 
389					<#assign biblioDoi = aux> 
390				<#else>	 
391					<#assign biblioDoi = ""> 
392				</#if> 
393				<#if  biblioAuthors != "" > 
394					<li> 
395						<${ htmlTagBiblio } class="authors">${ htmlTxtAutoria } ${ biblioAuthors }</${ htmlTagBiblio }> 
396					</li> 
397				</#if> 
398				<#if biblioArticle != "" > 
399					<#if biblioDoi == "" > 
400						<#assign htmlBiblioArticle = biblioArticle > 
401					<#else> 
402						<#assign htmlBiblioArticle = '<a target="_blank" href="' + cUrlDoiOrg + biblioDoi + '">' + biblioArticle + '</a>' > 
403					</#if> 
404					<li> 
405						<${ htmlTagBiblio } class="article">${ htmlTxtArticle } ${ htmlBiblioArticle }</${ htmlTagBiblio }> 
406					</li> 
407				</#if> 
408				<#if biblioPublication != "" > 
409					<li> 
410						<${ htmlTagBiblio } class="publication">${ htmlTxtPublication } ${ biblioPublication }</${ htmlTagBiblio }> 
411					</li> 
412				</#if> 
413				<#if biblioDoi != "" > 
414					<li> 
415						<${ htmlTagBiblio } class="doi">${ htmlTxtDoi } ${ biblioDoi }</${ htmlTagBiblio }> 
416					</li> 
417				</#if> 
418 
419			</#list> 
420			 
421			</ul> 
422			 
423		</div> <#-- class="${ bibliographyClass }" --> 
424	</#if> 
425 
426	<#if !isGlobal > 
427		<#-- IMAGE GALLERY --> 
428		<#if ehuimagegalleryFieldSet?? > 
429			<#if ehuimagegalleryFieldSet.ehuslideFieldSet??> 
430				<@upvlibs.imageGallerySection ehuimagegalleryFieldSet.ehuslideFieldSet articleId 4 /> 
431			</#if> 
432		</#if> 
433		</div> <#-- class="content-content" --> 
434 
435		<#-- LAST MODIFICATION DATE --> 
436		<#assign showLastModifDate = getterUtil.getBoolean( "false")> 
437		<#if entGeneralData.ehulastmodificationdate?? && entGeneralData.ehulastmodificationdate.getData()?? && entGeneralData.ehulastmodificationdate.getData()?has_content> 
438			<#assign showLastModifDate = getterUtil.getBoolean(entGeneralData.ehulastmodificationdate.getData()) > 
439		</#if> 
440		<#if showLastModifDate > 
441			<div class="content-footer"> 
442				<#assign articleModifiedDate = .vars['reserved-article-modified-date'].data!"" > 
443				 
444				<#assign modifiedDateStr = upvlibs.getModifiedDate(articleModifiedDate)  > 
445				 
446				<#if modifiedDateStr != "" > 
447					<p class="modification_date"> 
448						<strong class="text"> <@liferay.language key="ehu.last-modification-date" />:</strong> 
449						<span class="date">${ modifiedDateStr }</span> 
450					</p> 
451				</#if> 
452			</div> 
453		</#if> 
454	</#if> 
455 
456</article> 
457 
458 
459<#-- Script para copiar al portapapeles la URL actual --> 
460 
461<script> 
462function copyCurrentUrl() { 
463    const successMessage = '<@liferay.language key="copied-link-to-the-clipboard" />'; 
464    const errorMessage = '<@liferay.language key="element-cannot-be-copied" />'; 
465 
466    if (navigator.clipboard && window.isSecureContext) { 
467        navigator.clipboard.writeText(window.location.href) 
468            .then(() => alert(successMessage)) 
469            .catch(() => alert(errorMessage)); 
470    } else { 
471        const textArea = document.createElement("textarea"); 
472        textArea.value = window.location.href; 
473        document.body.appendChild(textArea); 
474        textArea.focus(); 
475        textArea.select(); 
476        try { 
477            const successful = document.execCommand('copy'); 
478            alert(successful ? successMessage : errorMessage); 
479        } catch (err) { 
480            alert(errorMessage); 
481        } 
482        document.body.removeChild(textArea); 
483    } 
484} 
485</script> 

Workshop on Graphene | Chip SoC4Sensing Chair

On December 15, we had the pleasure of hosting the first Workshop on Graphene, held at the Bilbao School of Engineering of the University of the Basque Country (EHU), and organized by the Chip SoC4Sensing Chair – Hands on Semiconductors.

Lehenengo argitaratze data: 2025/12/23

The workshop was structured into two complementary parts:

  1. Graphene sensor design: Presented by Juan Manuel Gómez Pérez and Alba Centeno Pérez from Graphenea, who addressed the principles, challenges, and opportunities in the design of graphene-based sensors, with a practical and application-oriented focus.
  2. Emerging 2D materials and functional inks: Delivered by David Estrada, Monet Sawyer, and Hailey B. from the Micron School of Materials Science and Engineering at Boise State University, focusing on new two-dimensional materials and the development of 2D inks for electronic and sensing applications.

This workshop highlighted the enormous potential of graphene and two-dimensional materials as enabling technologies for the next generation of semiconductor devices, particularly in advanced sensing applications, flexible electronics, and integration with SoC architectures.

Likewise, the event served as a strategic forum for dialogue among universities, industry, and international research centers, giving rise to new synergies and collaborative research lines around the design, fabrication, and characterization of devices based on 2D materials. From the Chip SoC4Sensing Chair – Hands on Semiconductors, we will continue to promote initiatives of this kind that strengthen the semiconductor and technology ecosystem, fostering knowledge transfer and the development of high-impact joint projects.

Prestakuntza

Errorea gertatu da txantiloia prozesatzerakoan.
The following has evaluated to null or missing:
==> description  [in template "10112#522485#1324421" at line 274, column 15]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if description != ""  [in template "10112#522485#1324421" at line 274, column 9]
----
1<#-- GENERAL--> 
2<#assign cTxtArticle			= languageUtil.get( locale, "article" ) > 
3<#assign cTxtAutoria			= languageUtil.get( locale, "ehu.authors" ) > 
4<#assign cTxtDoi				= languageUtil.get( locale, "ehu.doi" ) > 
5<#assign cTxtDoiTitle			= languageUtil.get( locale, "ehu.digital-object-identifier" ) > 
6<#assign cTxtNewWindow			= languageUtil.get( locale, "opens-new-window" ) > 
7<#assign cTxtPhoto				= languageUtil.get( locale, "ehu.photo" ) > 
8<#assign cTxtPublishing			= languageUtil.get( locale, "publishing" ) > 
9 
10<#assign cUrlDoiOrg				= "https://doi.org/" > 
11<#assign scopeId = themeDisplay.scopeGroupId> 
12<#assign isCampusa = (themeDisplay.getTheme().getContextPath() == "/o/upv-ehu-campusa-theme") > 
13<#assign isGlobal = (themeDisplay.getTheme().getContextPath() == "/o/upv-ehu-global-theme") > 
14<#assign journalLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
15<#if .vars['reserved-article-id']?has_content> 
16	<#assign articleId = .vars['reserved-article-id'] >  
17<#else> 
18	<#assign articleId = "">  
19</#if> 
20 
21<#if !isGlobal > 
22	<#assign articleClass		= "new" > 
23	<#assign preTitleClass		= "pretitle" > 
24	<#assign titleClass			= "new-title" > 
25	<#assign subTitleClass		= "subtitle" > 
26	<#assign entryClass			= "entry" > 
27	<#assign descriptionClass	= "description" > 
28	<#assign bibliographyClass	= "bibliographic-reference" > 
29	<#assign headerTag			= "div" > 
30	<#assign headerBloqueTag	= "p" > 
31	<#assign htmlHeaderTagClass	= ' class="content-header"' > 
32<#else> 
33	<#assign articleClass		= "new-detail" > 
34	<#assign preTitleClass		= "new-detail__pretitle" > 
35	<#assign titleClass			= "new-detail__title" > 
36	<#assign subTitleClass		= "new-detail__subtitle" > 
37	<#assign entryClass			= "new-detail__body__entry" > 
38	<#assign descriptionClass	= "new-detail__body__description" > 
39	<#assign bibliographyClass	= "new-detail__bibliographic-reference" > 
40	<#assign headerTag			= "header" > 
41	<#assign headerBloqueTag	= "div" > 
42	<#assign htmlHeaderTagClass	= "" > 
43</#if> 
44 
45<#assign entGeneralData = ehugeneraldataFieldSet > 
46 
47<#-- HTML--> 
48<article class="${ articleClass }"> 
49	<#-- PRETITLE, TITLE, SUBTITLE --> 
50	<#assign preTitle = ""> 
51	<#if entGeneralData.ehupretitle?? && entGeneralData.ehupretitle.getData()?? && entGeneralData.ehupretitle.getData()?has_content> 
52		<#assign preTitle = entGeneralData.ehupretitle.getData()>	 
53	</#if> 
54	 
55	<#assign title = ""> 
56	<#if entGeneralData.ehunewtitle?? && entGeneralData.ehunewtitle.getData()?? && entGeneralData.ehunewtitle.getData()?has_content> 
57		<#assign title = entGeneralData.ehunewtitle.getData()> 
58	</#if> 
59	 
60	<#assign subTitle = ""> 
61	<#if entGeneralData.ehunewsubtitle?? && entGeneralData.ehunewsubtitle.getData()?? && entGeneralData.ehunewsubtitle.getData()?has_content> 
62		<#assign subTitle = entGeneralData.ehunewsubtitle.getData()> 
63	</#if> 
64	<${ headerTag }${ htmlHeaderTagClass }> 
65		<#if preTitle != "" > 
66			<${ headerBloqueTag } class="${ preTitleClass }">${ preTitle }</${ headerBloqueTag }> 
67		</#if> 
68		<#if title != "" > 
69			<h1 class="${ titleClass }">${ title }</h1>    
70		</#if> 
71		<#if subTitle != "" > 
72			<${ headerBloqueTag } class="${ subTitleClass }">${ subTitle }</${ headerBloqueTag }> 
73		</#if> 
74	</${ headerTag }> 
75 
76	<#if !isGlobal > 
77		<div class="content-content"> 
78	</#if> 
79	<#if isGlobal > 
80		<div class="new-detail__info-date-share"> 
81	</#if> 
82 
83	<#-- CAMPUSA VOCABULARY --> 
84	<#assign vocabularyName = "campusa" > 
85	<#assign tag_init = "<ul></ul>" > 
86	<#assign categories = tag_init > 
87	<@upvlibs.formatVocabularyCategoriesProperties vocabularyName=vocabularyName /> 
88	<#assign categories = upvlibs.categoriesListStr > 
89	 
90	<#if  categories != tag_init  > 
91		<div class="campusa-category">${ categories }</div> 
92	</#if> 
93 
94	<#assign articlePublicationDate = .vars['reserved-article-display-date'].data!"" > 
95	<#if isGlobal > 
96		 
97		<#if articlePublicationDate?? && articlePublicationDate != "" > 
98			<#assign publicationDateStr = upvlibs.getPublicationDate(articlePublicationDate)  > 
99		 
100			<div class="new-detail__info-date-share__date"> 
101				<p class="publication_date"> 
102					<strong class="text"> <@liferay.language key="ehu.first-publication-date" />:</strong> 
103					 
104					<span class="date">${ publicationDateStr }</span> 
105					 
106				</p> 
107			</div> 
108		</#if>	 
109	<#else> 
110		 
111		<#if articlePublicationDate?? && articlePublicationDate != "" > 
112			<#assign publicationDateStr = upvlibs.getPublicationDate(articlePublicationDate)  > 
113			 
114				<p class="publication_date"> 
115					<strong class="text"> <@liferay.language key="ehu.first-publication-date" />:</strong> 
116					<span class="date">${ publicationDateStr }</span> 
117				</p> 
118			 
119		</#if> 
120	</#if> 
121 
122 
123 
124	<#-- REDES SOCIALES -->	 
125		<!-- Si está marcado el check de redes sociales las pintamos --> 
126		<#if entGeneralData.ehusocialbookmarks?? && entGeneralData.ehusocialbookmarks.getData()?has_content && entGeneralData.ehusocialbookmarks.getData()=="true" >		 
127			<#assign classRS = "share-social-bar__item" >			 
128			<#assign urlEnCurso = themeDisplay.getURLPortal() + themeDisplay.getURLCurrent() > 
129			<#-- SHARE SOCIAL BAR --> 
130			<div class="share-social-bar"> 
131				<a href="https://www.facebook.com/share.php?u=${urlEnCurso?replace(' ','%20')}&amp;t=www.ehu.eus" target="_blank" title='<@liferay.language key="ehu.social-bookmark.facebook" />' class="${ classRS } svg-icon"> 
132					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M80 299.3V512H196V299.3h86.5l18-97.8H196V166.9c0-51.7 20.3-71.5 72.7-71.5c16.3 0 29.4 .4 37 1.2V7.9C291.4 4 256.4 0 236.2 0C129.3 0 80 50.5 80 159.4v42.1H14v97.8H80z"/></svg> 
133					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.facebook" /> - ${ cTxtNewWindow }</span> 
134				</a> 
135				<a href="https://bsky.app/intent/compose?text=${urlEnCurso?replace(' ','%20')}%20-%20www.ehu.eus%20" target="_blank" title='<@liferay.language key="ehu.social-bookmark.bluesky" />' class="${ classRS } svg-icon"> 
136					<svg height="16" viewBox="0 0 512 512" width="16" xmlns="http://www.w3.org/2000/svg"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2c42.1-31.6 110.3-56 110.3 21.8c0 15.5-8.9 130.5-14.1 149.2C478.2 298 412 314.6 353.1 304.5c102.9 17.5 129.1 75.5 72.5 133.5c-107.4 110.2-154.3-27.6-166.3-62.9l0 0c-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8l0 0c-12 35.3-59 173.1-166.3 62.9c-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1C10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg> 
137					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.bluesky" /> - ${ cTxtNewWindow }</span> 
138				</a> 
139				<a href="https://www.linkedin.com/shareArticle?mini=true&amp;url=${urlEnCurso?replace(' ','%20')}&amp;title=${title?replace(' ','%20')}&amp;summary=" target="_blank" title='<@liferay.language key="ehu.social-bookmark.linkedin" />' class="${ classRS } svg-icon"> 
140					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M100.3 448H7.4V148.9h92.9zM53.8 108.1C24.1 108.1 0 83.5 0 53.8a53.8 53.8 0 0 1 107.6 0c0 29.7-24.1 54.3-53.8 54.3zM447.9 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448z"/></svg> 
141					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.linkedin" /> - ${ cTxtNewWindow }</span> 
142				</a> 
143				<a href="whatsapp://send?text=${ urlEnCurso }" data-action="share/whatsapp/share" target="_blank" class="${ classRS } svg-icon" title='<@liferay.language key="ehu.social-bookmark.whatsapp" />'> 
144					<svg class="svg-whatsapp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"/></svg>  
145					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.whatsapp" /> - ${ cTxtNewWindow }</span> 
146				</a> 
147				<a href="https://t.me/share/url?url=${ urlEnCurso }&text=${ title }" target="_blank" class="${ classRS } svg-icon" title='<@liferay.language key="ehu.social-bookmark.telegram" />'> 
148					<svg class="svg-telegram" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M248 8C111 8 0 119 0 256S111 504 248 504 496 393 496 256 385 8 248 8zM363 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5q-3.3 .7-104.6 69.1-14.8 10.2-26.9 9.9c-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3q.8-6.7 18.5-13.7 108.4-47.2 144.6-62.3c68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9a10.5 10.5 0 0 1 3.5 6.7A43.8 43.8 0 0 1 363 176.7z"/></svg>  
149					<span class="sr-only"><@liferay.language key="ehu.social-bookmark.telegram" /> - ${ cTxtNewWindow }</span> 
150				</a> 
151				<a href="mailto:?subject=${title?replace(' ','%20')}&amp;body=%20-%20${urlEnCurso?replace(' ','%20')}" target="_blank" title='<@liferay.language key="ehu.send-email" />' class="${ classRS } svg-icon"> 
152					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"/></svg> 
153					<span class="sr-only"><@liferay.language key="ehu.send-email" /> - ${ cTxtNewWindow }</span> 
154				</a> 
155				<a href="javascript:void(0)" onclick="copyCurrentUrl()" title='<@liferay.language key="copy-link" />' class="${ classRS } svg-icon"> 
156					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg> 
157					<span class="sr-only"><@liferay.language key="copy-link" /> - ${ cTxtNewWindow }</span> 
158				</a> 
159			</div>			 
160		</#if>	 
161 
162	<#if isGlobal > 
163		</div> <#-- class="new-detail__info-date-share" --> 
164		<div class="new-detail__body"> 
165	</#if> 
166 
167	<#-- IMAGE --> 
168	<#assign entImage = entGeneralData.ehunewimageFieldSet > 
169	<#assign imageSrc = "" > 
170	<#if entImage.ehunewimage?? &&  entImage.ehunewimage.getData()?? && entImage.ehunewimage.getData()?has_content> 
171		<#assign imageSrc =  entImage.ehunewimage.getData()> 
172	</#if> 
173	<#if imageSrc != "" > 
174	 
175		<#assign imageAltText = ""> 
176		<#if  entImage.ehunewimagealt?? &&  entImage.ehunewimagealt.getData()?? &&  entImage.ehunewimagealt.getData()?has_content> 
177			<#assign imageAltText = entImage.ehunewimagealt.getData()> 
178		</#if> 
179		 
180		<#assign imageFootText = ""> 
181		<#if entImage.ehunewimagefoot?? &&  entImage.ehunewimagefoot.getData()?? &&  entImage.ehunewimagefoot.getData()?has_content  > 
182			<#assign imageFootText = entImage.ehunewimagefoot.getData() > 
183		</#if> 
184 
185		<#assign imageAuthorText = ""> 
186		<#if entImage.ehunewimageauthor?? &&  entImage.ehunewimageauthor.getData()?? &&  entImage.ehunewimageauthor.getData()?has_content> 
187			<#assign imageAuthorText = entImage.ehunewimageauthor.getData() > 
188		</#if> 
189		 
190		<#assign imageAlign = ""> 
191		<#if entImage.ehuimagedisposition?? && entImage.ehuimagedisposition.getData()?? && entImage.ehuimagedisposition.getData()?has_content> 
192			<#assign imageAlign =  entImage.ehuimagedisposition.getData()> 
193		</#if> 
194		 
195		<#assign imageUrl = "" > 
196		<#if entImage.ehunewimageurl?? && entImage.ehunewimageurl.getData()?? && entImage.ehunewimageurl.getData()?has_content > 
197			<#assign imageUrl = entImage.ehunewimageurl.getData()> 
198		</#if> 
199		 
200	 
201		<#assign imageUrlTitle = "" > 
202		<#assign imageUrlNewTab = true > 
203		<#assign imageClass = "img-main" > 
204 
205		<#-- Pasamos la imagen de la noticia directamente al og:image para que no haya problemas al compartirla 
206			 en redes sociales (Trello 273 - Trello 637) -->	 
207		<@liferay_util["html-top"]> 
208			<meta property="og:image" content="${ portalUtil.getAbsoluteURL( request, imageSrc ) }"> 
209		</@> 
210		<#if !isGlobal && entImage.ehunewimageurl??> 
211			<@upvlibs.imageAuthorSection image=imageSrc altText=imageAltText footText=imageFootText imageAuthor=imageAuthorText 
212				imageDisposition=imageAlign elemImageUrl=entImage.ehunewimageurl imageUrlTitle=imageUrlTitle imageUrlNewTab=imageUrlNewTab imgClass=imageClass /> 
213		<#else> 
214			 
215			<#if imageUrl != ""> 
216				<a href="${ imageUrl }" target="_blank"> 
217			</#if> 
218			<div class="new-detail__body__main-image ${ imageAlign }"> 
219			<img src="${ upvlibs.getImageURL(imageSrc) }" alt="${ imageAltText }" class="${ imageClass }"/>  
220			 
221				<#if imageFootText != "" || imageAuthorText != "" > 
222					<div class="main-image__footer"> 
223						<#if imageFootText == "" > 
224							<#assign txtPhoto = "" > 
225						<#else> 
226							<#assign txtPhoto = imageFootText > 
227						</#if> 
228						<#if imageAuthorText != "" > 
229							<#if imageFootText == "" > 
230								<#assign aux = "" > 
231							<#else> 
232								<#assign aux = " | " > 
233							</#if> 
234							<#assign txtPhoto = txtPhoto + aux + cTxtPhoto + ": " + imageAuthorText > 
235						</#if> 
236						<#if imageAlign == "" > 
237								<#assign classImageFootText = "center" > 
238						<#else> 
239								<#assign classImageFootText = imageAlign > 
240						</#if> 
241						<p class="${ classImageFootText }">${ txtPhoto }</p>					 
242				   </div> 
243				</#if>				 
244		  	 </div> 
245		   <#if imageUrl != ""> 
246				</a> 
247			</#if> 
248		</#if> 
249	<#else> 
250		<#-- Si la imagen no tiene imagen metemos como imagen para redes sociales el logo de la universidad 
251			 proporcionado por la oficina de comunicación (Trello 565 - Trello 637) -->	 
252		<@liferay_util["html-top"]> 
253				<meta property="og:image" content="https://www.ehu.eus/documents/522485/1339603/avatar.jpg"> 
254		</@> 
255	</#if> 
256 
257	<#-- ENTRADILLA --> 
258	<#-- Desde la Oficina de Comunicacion piden para Campusa que la entradilla vaya despues de la imagen 
259		 Se hace el cambio para todos --> 
260	<#assign entradilla = ""> 
261	<#if entGeneralData.ehunewentradilla?? &&  entGeneralData.ehunewentradilla.getData()?? && entGeneralData.ehunewentradilla.getData()?has_content> 
262		<#assign entradilla = entGeneralData.ehunewentradilla.getData() > 
263	</#if> 
264	<#if entradilla != "" > 
265		<div class="${ entryClass }"> 
266			<p>${entradilla}</p> 
267		</div> 
268	</#if> 
269 
270	<#-- DESCRIPTION --> 
271	<#if entGeneralData.ehunewtext?? &&  entGeneralData.ehunewtext.getData()?? && entGeneralData.ehunewtext.getData()?has_content > 
272		<#assign description = entGeneralData.ehunewtext.getData()> 
273	</#if> 
274	<#if  description != "" > 
275		<div class="${ descriptionClass }"> 
276				${ description } 
277		</div> 
278	</#if> 
279 
280	<#if isGlobal > 
281		<#-- IMAGE GALLERY --> 
282		<div class="new-detail__body__image-gallery"> 
283			<#if ehuimagegalleryFieldSet?? > 
284				<#if ehuimagegalleryFieldSet.ehuslideFieldSet??> 
285					<@upvlibs.imageGallerySection ehuimagegalleryFieldSet.ehuslideFieldSet articleId 4 /> 
286				</#if> 
287			</#if>				 
288		</div> 
289	</#if> 
290	<#if isGlobal > 
291		</div> <#-- class="new-detail__body" --> 
292	</#if> 
293	 
294	<#assign entMoreInfo = ehumoreinfoFieldSet > 
295	<#if entMoreInfo?? > 
296		<#-- DOCUMENTS -->		 
297		<#if entMoreInfo.ehunewdocumentFieldSet?? > 
298			<@upvlibs.writeHtmlForDocumentsNew documents=entMoreInfo.ehunewdocumentFieldSet nivel=2 encabezado="document" campo="ehunewdocument" titulo="ehunewdocumenttitle" tipo=2 adicional=0 /> 
299		</#if> 
300		 
301		<#-- LINKS -->	 
302		<#if entMoreInfo.ehunewurlFieldSet??> 
303			<#assign encabezado="ehu.web-address"> 
304			<#if !isGlobal > 
305				<#assign encabezado="link"> 
306			</#if> 
307				<@upvlibs.writeHtmlForLinksNew links=entMoreInfo.ehunewurlFieldSet nivel=2 encabezado=encabezado campo="ehunewurl" titulo="ehunewurltitle" newTab="" tipo=2 adicional=0 />	 
308		</#if> 
309	</#if> 
310	 
311	<#-- REFERENCE INFO --> 
312	<#-- Bibliografía --> 
313	<#assign entBibliography = ehunewbibliographicreferenceFieldSet > 
314	<#assign hayBiblioArticles = getterUtil.getBoolean("false")> 
315	<#if entBibliography?? && entBibliography.getSiblings()??>				 
316		<@upvlibs.validarLista lista=entBibliography campo="ehubibliographicreferencearticle" /> 
317		<#assign hayBiblioArticles = upvlibs.valida />				    
318		 
319	</#if>	 
320	<#if hayBiblioArticles > 
321		<div class="${ bibliographyClass }"> 
322			<#if !isGlobal > 
323				<#assign htmlIconBibliography = '<i class="icon-book"></i>' > 
324			<#else> 
325				<#assign htmlIconBibliography = ""  > 
326			</#if> 
327			 
328			<h2>${ htmlIconBibliography }<@liferay.language key="ehu.bibliographic-reference" /></h2> 
329			<#if !isGlobal > 
330				<ul> 
331			<#else> 
332				<ul class="list-unstyled new-detail__bibliographic-reference__item"> 
333			</#if> 
334			<#if !isGlobal > 
335				<#assign htmlTxtArticle = "" > 
336				<#assign htmlTxtPublication = "" > 
337				<#assign htmlTxtAutoria = "" > 
338				<#assign htmlTagBiblio = "span" > 
339			<#else> 
340				<#assign htmlTxtArticle = "<strong>" + cTxtArticle + ":" + "</strong>" > 
341				<#assign htmlTxtPublication = "<strong>" + cTxtPublishing + ":" + "</strong>" > 
342				<#assign htmlTxtAutoria = "<strong>" + cTxtAutoria + ":" + "</strong>" > 
343				<#assign htmlTagBiblio = "p" > 
344			</#if> 
345			<#if !isGlobal > 
346				<#assign htmlTxtDoi = '<abbr title="' + cTxtDoiTitle + '">' + cTxtDoi + '</abbr>: ' > 
347			<#else> 
348				<#assign htmlTxtDoi = '<abbr title="' + cTxtDoiTitle + '">' + "<strong>" + cTxtDoi + "</strong>" + '</abbr>: ' > 
349			</#if> 
350			<#list entBibliography.getSiblings() as elemEntBibliography > 
351				<#if elemEntBibliography.ehubibliographicreferencearticle?is_hash > 
352					<#assign aux = elemEntBibliography.ehubibliographicreferencearticle.getData() > 
353				<#else> 
354					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferencearticle ) > 
355				</#if> 
356				<#if aux?has_content && aux != ""> 
357					<#assign biblioArticle = aux> 
358				<#else> 
359					<#assign biblioArticle = ""> 
360				</#if> 
361				<#if elemEntBibliography.ehubibliographicreferencepublication?is_hash > 
362					<#assign aux = elemEntBibliography.ehubibliographicreferencepublication.getData() > 
363				<#else> 
364					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferencepublication ) > 
365				</#if> 
366				<#if aux?has_content && aux != ""> 
367					<#assign biblioPublication = aux> 
368				<#else> 
369					<#assign biblioPublication = ""> 
370				</#if> 
371				<#if biblioArticle == "" ||  biblioPublication == "" >	<#continue> </#if> 
372				 
373				<#if elemEntBibliography.ehubibliographicreferenceauthors?is_hash > 
374					<#assign aux = elemEntBibliography.ehubibliographicreferenceauthors.getData() > 
375				<#else> 
376					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferenceauthors ) > 
377				</#if> 
378				<#if aux?has_content && aux != ""> 
379					<#assign biblioAuthors = aux> 
380				<#else> 
381					<#assign biblioAuthors = ""> 
382				</#if> 
383				<#if elemEntBibliography.ehubibliographicreferencedoi?is_hash > 
384					<#assign aux = elemEntBibliography.ehubibliographicreferencedoi.getData() > 
385				<#else> 
386					<#assign aux = getterUtil.getString( elemEntBibliography.ehubibliographicreferencedoi ) > 
387				</#if> 
388				<#if aux?has_content && aux != ""> 
389					<#assign biblioDoi = aux> 
390				<#else>	 
391					<#assign biblioDoi = ""> 
392				</#if> 
393				<#if  biblioAuthors != "" > 
394					<li> 
395						<${ htmlTagBiblio } class="authors">${ htmlTxtAutoria } ${ biblioAuthors }</${ htmlTagBiblio }> 
396					</li> 
397				</#if> 
398				<#if biblioArticle != "" > 
399					<#if biblioDoi == "" > 
400						<#assign htmlBiblioArticle = biblioArticle > 
401					<#else> 
402						<#assign htmlBiblioArticle = '<a target="_blank" href="' + cUrlDoiOrg + biblioDoi + '">' + biblioArticle + '</a>' > 
403					</#if> 
404					<li> 
405						<${ htmlTagBiblio } class="article">${ htmlTxtArticle } ${ htmlBiblioArticle }</${ htmlTagBiblio }> 
406					</li> 
407				</#if> 
408				<#if biblioPublication != "" > 
409					<li> 
410						<${ htmlTagBiblio } class="publication">${ htmlTxtPublication } ${ biblioPublication }</${ htmlTagBiblio }> 
411					</li> 
412				</#if> 
413				<#if biblioDoi != "" > 
414					<li> 
415						<${ htmlTagBiblio } class="doi">${ htmlTxtDoi } ${ biblioDoi }</${ htmlTagBiblio }> 
416					</li> 
417				</#if> 
418 
419			</#list> 
420			 
421			</ul> 
422			 
423		</div> <#-- class="${ bibliographyClass }" --> 
424	</#if> 
425 
426	<#if !isGlobal > 
427		<#-- IMAGE GALLERY --> 
428		<#if ehuimagegalleryFieldSet?? > 
429			<#if ehuimagegalleryFieldSet.ehuslideFieldSet??> 
430				<@upvlibs.imageGallerySection ehuimagegalleryFieldSet.ehuslideFieldSet articleId 4 /> 
431			</#if> 
432		</#if> 
433		</div> <#-- class="content-content" --> 
434 
435		<#-- LAST MODIFICATION DATE --> 
436		<#assign showLastModifDate = getterUtil.getBoolean( "false")> 
437		<#if entGeneralData.ehulastmodificationdate?? && entGeneralData.ehulastmodificationdate.getData()?? && entGeneralData.ehulastmodificationdate.getData()?has_content> 
438			<#assign showLastModifDate = getterUtil.getBoolean(entGeneralData.ehulastmodificationdate.getData()) > 
439		</#if> 
440		<#if showLastModifDate > 
441			<div class="content-footer"> 
442				<#assign articleModifiedDate = .vars['reserved-article-modified-date'].data!"" > 
443				 
444				<#assign modifiedDateStr = upvlibs.getModifiedDate(articleModifiedDate)  > 
445				 
446				<#if modifiedDateStr != "" > 
447					<p class="modification_date"> 
448						<strong class="text"> <@liferay.language key="ehu.last-modification-date" />:</strong> 
449						<span class="date">${ modifiedDateStr }</span> 
450					</p> 
451				</#if> 
452			</div> 
453		</#if> 
454	</#if> 
455 
456</article> 
457 
458 
459<#-- Script para copiar al portapapeles la URL actual --> 
460 
461<script> 
462function copyCurrentUrl() { 
463    const successMessage = '<@liferay.language key="copied-link-to-the-clipboard" />'; 
464    const errorMessage = '<@liferay.language key="element-cannot-be-copied" />'; 
465 
466    if (navigator.clipboard && window.isSecureContext) { 
467        navigator.clipboard.writeText(window.location.href) 
468            .then(() => alert(successMessage)) 
469            .catch(() => alert(errorMessage)); 
470    } else { 
471        const textArea = document.createElement("textarea"); 
472        textArea.value = window.location.href; 
473        document.body.appendChild(textArea); 
474        textArea.focus(); 
475        textArea.select(); 
476        try { 
477            const successful = document.execCommand('copy'); 
478            alert(successful ? successMessage : errorMessage); 
479        } catch (err) { 
480            alert(errorMessage); 
481        } 
482        document.body.removeChild(textArea); 
483    } 
484} 
485</script> 

Eduki publikatzailea

Finantzatzailea

Plan de Recuperación, Transformación y Resiliencia-Financiado por la Unión Europea-NextGenerationEU. Proyecto financiado por Secretaría de Estado de Telecomunicaciones e Infraestructuras Digitales