Ficha skill - AndalucíaSkills

04 Mecatrónica
La mecatrónica combina la mecánica, la neumática, los sistemas de control electrónico, la programación, la robótica y el desarrollo de sistemas, y se emplea en el montaje, programación, puesta en marcha, mantenimiento y optimización de los sistemas mecatrónicos presentes en todas las áreas de los sistemas de producción.
Las aplicaciones industriales son múltiples, incluyendo las líneas de embalaje multiproducto, las máquinas para productos enlatados, la maquinaria de elevación y transporte (transportadores automatizados, grúas, máquinas de carga) y los equipos de montaje automático y equipamiento de medición electrónica industrial, entre otros.

Enseñanzas relacionadas:
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> className [in template "20099#20125#61500" at line 163, column 14] ---- 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 className == "com.liferay.journal... [in template "20099#20125#61500" at line 163, column 9] ----
1<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")/>
2<#assign requestContainsCategory = themeDisplay.getURLCurrent()?contains('categories') />
3
4<#assign novedadesPortalUtil = serviceLocator.findService("com.abaco.portales.novedades.service.NovedadesPortalUtil") />
5<#assign categoryIdRequest = paramUtil.getLong(request, "categoryId")>
6<#assign publisherEntriesQuery = novedadesPortalUtil.publisherEntriesQuery(portletPreferences, groupId, categoryIdRequest)>
7<#assign orderedEntries = novedadesPortalUtil.ordenarNovedadesPortal(publisherEntriesQuery)>
8
9<#if orderedEntries?has_content>
10
11 <#assign unionListadoOrdenado = []>
12 <#assign contenidosPaginaActual = []>
13 <#assign numeroDestacadas = 0>
14
15 <#-- Usar el servicio para combinar y ordenar las listas -->
16 <#list orderedEntries as k, v>
17 <#if k == "destacadas">
18 <#assign numeroDestacadas = v?size>
19 </#if>
20 <#assign unionListadoOrdenado = unionListadoOrdenado + v >
21 </#list>
22
23 <#if unionListadoOrdenado?has_content>
24 <#-- Configurar paginación -->
25 <#assign totalItems = unionListadoOrdenado?size />
26 <#assign itemsPerPage = delta?number /> <#-- Número de elementos por página -->
27 <#assign currentPage = paramUtil.getInteger(request, "cur", 1) />
28 <#assign totalPages = ((totalItems + itemsPerPage - 1) / itemsPerPage)?int />
29 <#assign start = (currentPage - 1) * itemsPerPage />
30 <#assign end = start + itemsPerPage />
31
32 <#-- Asegurarse de que end no supere totalItems -->
33 <#if (end > totalItems)>
34 <#assign end = totalItems />
35 </#if>
36
37 <#-- Crear una lista de elementos para la página actual -->
38 <#list (start..end-1) as index>
39 <#if (index < totalItems)>
40 <#assign contenido = unionListadoOrdenado[index] />
41 <#-- Agregar a la lista de la página actual -->
42 <#assign contenidosPaginaActual = contenidosPaginaActual + [contenido] />
43 </#if>
44 </#list>
45 </#if>
46
47
48 <div class="adt-novedades" id="adt-novedades-jda">
49 <#assign conta = 1/>
50 <#list contenidosPaginaActual as curEntry>
51 <#assign renderer = curEntry.getAssetRenderer() className = renderer.getClassName() />
52 <#if className == "com.liferay.journal.model.JournalArticle">
53 <#assign journalArticle = renderer.getArticle()
54 ddmStructureName = journalArticle.getDDMStructure().getName("es_ES")
55 templateKey = ""
56 categories = curEntry.getCategories()
57 />
58
59
60 <#if requestContainsCategory>
61 <#assign validEntry = false />
62 <#assign requestCategoryId = themeDisplay.getURLCurrent()?substring(themeDisplay.getURLCurrent()?last_index_of('/')+1) />
63 <#if requestCategoryId?is_number>
64 <#assign requestCategoryId = requestCategoryId?number />
65 <#list categories as cat>
66 <#if cat.categoryId == requestCategoryId>
67 <#assign validEntry = true />
68 </#if>
69 </#list>
70 <#if !validEntry>
71 <#continue>
72 </#if>
73 </#if>
74
75
76 </#if>
77
78 <#assign viewURL = (!stringUtil.equals(assetLinkBehavior, "showFullContent"))?then(assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry, true), assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry)) />
79 ${request.setAttribute("viewURL", viewURL )}
80 ${request.setAttribute("categories", categories )}
81
82
83 <#-- Procedimiento -->
84 <#if ddmStructureName == "Procedimiento">
85 <#assign templateKey = "944524" /> <#-- Plantilla novedades_procedimientos -->
86 </#if>
87
88 <#-- Contenido web -->
89 <#if ddmStructureName == "Contenido web">
90 <#assign templateKey = "109055"/> <#-- Plantilla novedades_contenido_web-->
91 </#if>
92
93 <#-- Contenido web extendido-->
94 <#if ddmStructureName == "Contenido web extendido">
95 <#assign templateKey = "1243488"/> <#-- Plantilla novedades_contenido_web_extendido-->
96 </#if>
97
98 <#-- Enlace -->
99 <#if ddmStructureName == "Enlace">
100 <#assign templateKey = "4859236"/> <#-- Plantilla novedades_enlace-->
101 </#if>
102
103 <#-- Normativa -->
104 <#if ddmStructureName == "Normativa">
105 <#assign templateKey = "273977"/> <#-- Plantilla novedades_normativa-->
106 </#if>
107
108 <#if conta == 1>
109 <div class="adt-novedades__container">
110 <div class="adt-novedades__first">
111 <div class="card mb-3">
112 <@liferay_journal["journal-article"]
113 articleId=journalArticle.getArticleId()
114 ddmTemplateKey="${templateKey}"
115 showTitle=false
116 groupId=journalArticle.getGroupId()
117 />
118 </div>
119 </div>
120 <#assign conta++/>
121 <#elseif conta < 4>
122 <#if conta ==2>
123 <div class="adt-novedades__second">
124 </#if>
125 <div class="card mb-3">
126 <@liferay_journal["journal-article"]
127 articleId=journalArticle.getArticleId()
128 ddmTemplateKey="${templateKey}"
129 showTitle=false
130 groupId=journalArticle.getGroupId()
131 />
132 </div>
133 <#assign conta++/>
134 <#elseif (conta == 4)>
135 <#-- Cierro contenedor-second(flex) -->
136 </div>
137 <#-- Cierro contenedor(flex) -->
138 </div>
139 <#-- Abro Segundo contenedor(grid) -->
140 <div class="adt-novedades__grid">
141 <div class="card mb-3">
142 <@liferay_journal["journal-article"]
143 articleId=journalArticle.getArticleId()
144 ddmTemplateKey="${templateKey}"
145 showTitle=false
146 groupId=journalArticle.getGroupId()
147 />
148 </div>
149 <#assign conta++/>
150 <#elseif (conta >= 4)>
151 <div class="card mb-3">
152 <@liferay_journal["journal-article"]
153 articleId=journalArticle.getArticleId()
154 ddmTemplateKey="${templateKey}"
155 showTitle=false
156 groupId=journalArticle.getGroupId()
157 />
158 </div>
159 <#assign conta++/>
160 </#if>
161 </#if>
162 </#list>
163 <#if className == "com.liferay.journal.model.JournalArticle">
164 <#if (conta == 2)>
165 <#-- Cierro contenedor(flex) ya que solo hay un valor -->
166 </div>
167 <#elseif (conta == 3)>
168 <#-- Cierro contenedor (flex) y el second ya que solo hay dos valores -->
169 </div>
170 </div>
171 <#elseif (conta >= 4)>
172 <#-- Cierro contenedor(grid) -->
173 </div>
174 </#if>
175 </#if>
176 </div>
177</#if>
178
179<style>
180 .adt-novedades__second .journal-content-article {
181 height: 100%;
182 }
183 .adt-novedades .card .card-container {
184 height: 100%;
185 }
186</style>
Nodo: sv0665:8080