News Agenda

Calendario

Introduzione agenda

Uno spazio in costante aggiornamento per raccontare l'impegno dei componenti del Consiglio Nazionale Geometri e Geometri Laureati: audizioni parlamentari, incontri istituzionali, tavoli tecnici, presentazioni e attività svolte nei contesti di riferimento della professione, da UNI alla Rete Professioni Tecniche.

Asset Publisher

A L'Aquila la "Giornata del Geometra"

An error occurred while processing the template.
Java method "jdk.proxy183.$Proxy1326.getArticle(long, String)" threw an exception when invoked on jdk.proxy183.$Proxy1326 object "com.liferay.journal.service.impl.JournalArticleServiceImpl@9b773a1"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign article = journalArticleLocal...  [in template "20115#20151#303091" at line 50, column 41]
----
1<!-- DETTAGLIO NEWS SINGOLA --> 
2 
3<#-- RECUPERO DATI --> 
4 
5 <#-- assign dataPub = .vars['reserved-article-display-date'].data /  Fix. il campo non esiste piu --> 
6  
7    <#-- Save the original page locale for later --> 
8	<#assign originalLocale = .locale> 
9    <#-- Set the page locale to the portals default locale --> 
10	<#setting locale = localeUtil.getDefault()> 
11 
12  <#-- Parse the date to a date object --> 
13	<#-- assign dataPub = dataPub?datetime("EEE, d MMM yyyy HH:mm:ss Z") --> 
14 
15  <#-- Set the page locale back to the original page locale --> 
16	<#-- Set the page locale back to the original page locale --> 
17	<#setting locale = originalLocale> 
18	<#assign currentUrl = themeDisplay.getURLCurrent()/> 
19    <#assign splitUrl = currentUrl?split("?") /> 
20    <#assign cleanedUrl = splitUrl[0] /> 
21    <#assign portalUrl = themeDisplay.getPortalURL() /> 
22 
23 
24<#-- FINE RECUPERO DATI --> 
25 
26 
27 
28<main class="cng"> 
29  <section class="section  mt-5"> 
30        <div class="container"> 
31           
32<#assign DataNotizia_Data = getterUtil.getString(Ttiolo.DataNotizia.getData())> 
33 
34 
35  <div class="customTab col-lg-8" style="margin-top:0; padding-top: 0"> <!-- prima colonna --> 
36    <div class="subtitle mb-3" style="display: flex; justify-content: space-between; flex-wrap: wrap;"> 
37	 
38	<!-- 
39	<p class="mb-3"> 
40	--> 
41                     
42				 
43			<!-- DA PROVARE DOPO RIAVVIO --> 
44					<#assign AssetEntryLocalServiceUtil = objectUtil("com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil") /> 
45					 
46					<#-- assign assetService = serviceLocator.findService("com.liferay.portlet.asset.service.AssetTagLocalService")  --> 
47					 
48					<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleService") /> 
49					 
50					<#assign article = journalArticleLocalService.getArticle(getterUtil.getLong(scopeGroupId), .vars['reserved-article-id'].data)> 
51 
52<#assign resourcePrimKey = article.getResourcePrimKey() /> 
53    
54   <#assign entry = AssetEntryLocalServiceUtil.getEntry("com.liferay.journal.model.JournalArticle", resourcePrimKey) /> 
55 
56<#assign tagName = "" /> 
57<#if entry?? && entry.getTags()?size != 0 > 
58<#assign tags = entry.getTags() />			 
59  <#list tags as tag> 
60 
61		<#assign tagName = tag.getName() /> 
62		 
63		 
64		 
65</#list>		 
66</#if>			 
67			 
68 
69					 
70					 
71					 
72				 
73					<#if NomeTag??> 
74						${NomeTag.getData()} 
75					<#else> 
76					 
77						<#if tagName?upper_case == "NEWS"> 
78					 
79							 
80							<a href="/notizie"  style="text-decoration: none;" class="btn-secondary tag-news mr-2">NOTIZIE 
81							 
82						<#else> 
83							 
84							<#if tagName?upper_case == "VIDEO"> 
85							 
86								<a href="/video-gallery" style="text-decoration: none;" class="btn-secondary tag-news  mr-2">VIDEO GALLERY 
87								 
88							<#else> 
89								<#if tagName?upper_case == "COMUNICATI STAMPA"> 
90									<a href="/comunicati-stampa" style="text-decoration: none;" class="btn-secondary tag-news mr-2"> COMUNICATI STAMPA 
91								</#if> 
92								 
93							</#if> 
94						 
95						</#if> 
96					</#if> 
97					 
98					</a> 
99               
100<!-- 
101			  </p>   
102	--> 
103	 
104	 
105	<#if validator.isNotNull(DataNotizia_Data)> 
106	<#assign DataNotizia_DateObj = dateUtil.parseDate("yyyy-MM-dd", DataNotizia_Data, locale)> 
107 
108	${dateUtil.getDate(DataNotizia_DateObj, "dd/MM/yyyy", locale)} 
109 
110	 
111	<#-- #else> 
112	${dataPub?string["dd/MM/yyyy"]} --> 
113	</#if> 
114	 
115	<div class="social-icons float-right"> 
116    <a href="https://www.facebook.com/sharer/sharer.php?u=${portalUrl}${currentUrl}" target="_blank" > 
117        <!-- i class="fab fa-facebook-square"></i --> 
118        <@clay["icon"] symbol="social-facebook" /> 
119    </a> 
120    <a href="https://twitter.com/intent/tweet?url=${portalUrl}${cleanedUrl}&text=${Ttiolo.getData()}" target="_blank"> 
121        <!-- i class="fab fa-twitter-square"></i --> 
122        <@clay["icon"] symbol="twitter-x" /> 
123    </a> 
124</div> 
125	 
126	 
127	<!-- condividi toolbar --> 
128	<!-- div class="addthis_inline_share_toolbox float-right" --> 
129	    
130	  <!-- PEZZOTTO AL MOMENTO COPIO IL TESTO DEL DIV CHE DOVREBBE ESSERE CREATO RUN_TIME 
131	    
132	  <div id="atstbx" class="at-resp-share-element at-style-responsive addthis-smartlayers addthis-animated at4-show"  
133		 aria-labelledby="at-c8f47a8a-9dac-43c9-b98c-ba4e0c3b5b20" role="region"> 
134		  <span id="at-c8f47a8a-9dac-43c9-b98c-ba4e0c3b5b20" class="at4-visually-hidden">AddThis Sharing Buttons</span> 
135			<div class="at-share-btn-elements"> 
136			  <a role="button" tabindex="0" class="at-icon-wrapper at-share-btn at-svc-facebook" style="background-color: orange; border-radius: 4px;"><span class="at4-visually-hidden">Share to Facebook</span><span class="at-icon-wrapper" style="line-height: 16px; height: 16px; width: 16px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" version="1.1" role="img" aria-labelledby="at-svg-facebook-1" class="at-icon at-icon-facebook" style="fill: rgb(255, 255, 255); width: 16px; height: 16px;"><title id="at-svg-facebook-1">Facebook</title><g><path d="M22 5.16c-.406-.054-1.806-.16-3.43-.16-3.4 0-5.733 1.825-5.733 5.17v2.882H9v3.913h3.837V27h4.604V16.965h3.823l.587-3.913h-4.41v-2.5c0-1.123.347-1.903 2.198-1.903H22V5.16z" fill-rule="evenodd"></path></g></svg></span></a> 
137			  <a role="button" tabindex="0" class="at-icon-wrapper at-share-btn at-svc-twitter" style="background-color: orange; border-radius: 4px;"><span class="at4-visually-hidden">Share to Twitter</span><span class="at-icon-wrapper" style="line-height: 16px; height: 16px; width: 16px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" version="1.1" role="img" aria-labelledby="at-svg-twitter-2" class="at-icon at-icon-twitter" style="fill: rgb(255, 255, 255); width: 16px; height: 16px;"><title id="at-svg-twitter-2">Twitter</title><g><path d="M27.996 10.116c-.81.36-1.68.602-2.592.71a4.526 4.526 0 0 0 1.984-2.496 9.037 9.037 0 0 1-2.866 1.095 4.513 4.513 0 0 0-7.69 4.116 12.81 12.81 0 0 1-9.3-4.715 4.49 4.49 0 0 0-.612 2.27 4.51 4.51 0 0 0 2.008 3.755 4.495 4.495 0 0 1-2.044-.564v.057a4.515 4.515 0 0 0 3.62 4.425 4.52 4.52 0 0 1-2.04.077 4.517 4.517 0 0 0 4.217 3.134 9.055 9.055 0 0 1-5.604 1.93A9.18 9.18 0 0 1 6 23.85a12.773 12.773 0 0 0 6.918 2.027c8.3 0 12.84-6.876 12.84-12.84 0-.195-.005-.39-.014-.583a9.172 9.172 0 0 0 2.252-2.336" fill-rule="evenodd"></path></g></svg></span></a> 
138				<a role="button" tabindex="0" class="at-icon-wrapper at-share-btn at-svc-compact" style="background-color: orange; border-radius: 4px;"><span class="at4-visually-hidden">Share to Più...</span><span class="at-icon-wrapper" style="line-height: 16px; height: 16px; width: 16px;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" version="1.1" role="img" aria-labelledby="at-svg-addthis-3" class="at-icon at-icon-addthis" style="fill: rgb(255, 255, 255); width: 16px; height: 16px;"><title id="at-svg-addthis-3">AddThis</title><g><path d="M18 14V8h-4v6H8v4h6v6h4v-6h6v-4h-6z" fill-rule="evenodd"></path></g></svg></span></a> 
139			</div> 
140		</div> 
141	    
142	   FINE PEZZOTTO --> 
143	      
144	 <!-- /div --> 
145 
146</div>  
147 
148	 
149	 <h1 class="title" >${Ttiolo.getData()}</h1> 
150 
151 
152 
153 
154 <#if tagName?? && tagName?upper_case != "VIDEO"> 
155 <#if Ttiolo.Foto.getData()?? && Ttiolo.Foto.getData() != ""> 
156	<img class="mb-4 img-fluid" data-fileentryid="${Ttiolo.Foto.getAttribute("fileEntryId")}" alt="${Ttiolo.Foto.getAttribute("alt")}" src="${Ttiolo.Foto.getData()}"   style="width: 100% !important; border-radius: 8px;width: inherit" /> 
157 
158 </#if> 
159</#if> 
160 
161<#if Ttiolo.LinkVideo?? && Ttiolo.LinkVideo.getData() != ""> 
162 <p class="text-center"> 
163                <iframe src="${Ttiolo.LinkVideo.getData()}" width="700px" height="394px" frameborder="0"  
164                allowfullscreen></iframe> 
165              </p> 
166			   
167</#if>			   
168 
169 
170 
171${Ttiolo.Contenuto.getData()} 
172 
173 
174  </div> <!-- chiusura prima colonna --> 
175   
176  
177 </div> 
178 </section> 
179  
180 </main> 
181 
182 
183 
184 
185<#-- CSS PER NASCONDERE IL TITOLO DEL WEB CONTENT --> 
186<style type="text/css"> 
187.header-title{display: none;} 
188.asset-title.d-inline{ display: none !important; } 
189 
190/* modifico */ 
191 
192.asset-full-content { 
193    display: block; 
194	/*border: 1px solid red;*/ 
195
196 
197.mainHeader { 
198  padding: 120px 0 80px; 
199
200 
201 
202<#-- DIV PER IL BANNER SOPRA --> 
203   <div class="mainHeader header05"> 
204        <div class="container"> 
205          <div class="mainHeader-inner"> 
206            <h3>News &amp; Media</h3> 
207            <h1>Notizie ed eventi</h1> 
208          </div> 
209        </div> 
210      </div> 
211<#-- FINE DIV PER BANNER --> 
212 
213 
214<#-- =================== PARTI GENERICHE ======================== --> 
215 
216<#--  
217<textarea style="height: 800px; width: 500px;"> 
218${docTotale}  
219 
220</textarea> 
221--> 
222 
223<#-- ===================	PER RECUPERARE IL JSON DELLA STRUTTURA =================== 
224<#assign  structureKey = DDMStructureLocalService.getStructure(134816) /> 
225 
226 <h1>${structureKey}</h1> --> 
227 
228 
229<#-- =================== FINE PARTI GENERICHE =================== --> 
230 
231 
232<#-- =================== INIZIO PARTE NEWS LOOP  =================== --> 
233 
234 <main class=""> 
235      <section class="section"> 
236        <div class="container"> 
237 
238<#if entries?has_content> 
239	 
240	<#assign idxLoop = 0 /> 
241	 
242	<#list entries as curEntry> <#-- INIZIO LOOP (indici 0-based)--> 
243 
244 
245<#assign idxLoop = curEntry?index /> 
246 
247<#if idxLoop % 4 == 0 > 
248 
249<#if idxLoop != 0> <#-- se non è il primo gruppo di 4 elementi chiudo il precedente --> 
250</div> 
251</#if> 
252 
253<#-- inizio il nuovo gruppo --> 
254<div class="row mb-5"> 
255</#if> 
256 
257 
258<#-- A GRUPPI DI 4 ELEMENTI DELLA LISTA DEVO GENERARE LA STRUTTURA <div class="row mb-5"> --> 
259 
260<#assign newsTitle = curEntry.getTitle(locale) /> 
261<#assign newsSummary = curEntry.getSummary(locale) /> 
262<#assign dataPub = curEntry.getModifiedDate() /> <#-- getPublishDate non esiste --> 
263 
264 
265 
266<#assign renderer = curEntry.getAssetRenderer() /> 
267<#assign Article = renderer.getArticle() /> 
268<#assign smallImageID = Article.getSmallImageId() /> 
269<#if smallImageID??> 
270<#assign  smallImageURL = "/image/image_gallery?img_id=${smallImageID}" /> 
271<#else> 
272<#assign  smallImageURL = Article.getSmallImageURL() /> 
273</#if> 
274 
275<#assign  viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) /> 
276<#assign viewURLAsset = renderer.getURLViewInContext(renderRequest, renderResponse, viewURL)  /> 
277 
278 
279 
280<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
281<#assign DDMStructureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService") > 
282<#assign article = journalArticleLocalService.getLatestArticle(Article.resourcePrimKey) /> 
283<#assign docTotale = article.getContentByLocale(localeUtil.toLanguageId(localeUtil.getDefault())) /> 
284<#assign doc = saxReaderUtil.read(article.getContentByLocale(localeUtil.toLanguageId(localeUtil.getDefault()))) /> 
285 
286<#-- INIZIO LETTURA CAMPI --> 
287<#assign rootElement = doc.getRootElement() /> 
288<#assign  news = rootElement.selectNodes("/Ttiolo") /> 
289 
290<#assign titoloNodePath = saxReaderUtil.createXPath("dynamic-element[@name='Ttiolo']") /> 
291<#assign titoloNode = titoloNodePath.selectSingleNode(rootElement) /> 
292 
293<#assign xPathSelector = saxReaderUtil.createXPath("dynamic-content")  /> 
294<#assign titoloVal = xPathSelector.selectSingleNode(titoloNode).getStringValue() /> 
295 
296<#assign xPathData = saxReaderUtil.createXPath("dynamic-element[@name='DataNotizia']/dynamic-content")  /> 
297<#assign dataNotizia = xPathData.selectSingleNode(titoloNode).getStringValue() /> 
298 
299<#assign xPathAbstract = saxReaderUtil.createXPath("dynamic-element[@name='Abstract']/dynamic-content")  /> 
300<#assign abstract = xPathAbstract.selectSingleNode(titoloNode).getStringValue() /> 
301 
302<#assign xPathFoto = saxReaderUtil.createXPath("dynamic-element[@name='Foto']/dynamic-content")  /> 
303<#assign fotoLink = xPathFoto.selectSingleNode(titoloNode).getStringValue() /> 
304 
305 
306<#-- ========== COSTRUZIONE HTML SINGOLA NEWS ==================== --> 
307 
308<!-- 
309<h2 style="color:red">${viewURL}</h2> 
310<h2 style="color:green">${viewURLAsset}</h2> 
311 
312?replace('wm9stv169C42','WBh1QsINxArE') 
313--> 
314 
315 
316 
317 
318 <div class="col-lg-3 col-12"> 
319              <a href="${viewURLAsset}" class="news-card card"> 
320                <div class="img-box"> 
321                   
322				  <#if fotoLink?? && fotoLink != ""> 
323						<img src="${fotoLink}" alt=""> 
324				  </#if> 
325				  
326                </div> 
327                 
328              </a> 
329			  
330                  
331				<#if fotoLink?? && fotoLink != ""> 
332					<h5 class="titolinews mt-4">${titoloVal}</h5>    
333				<#else> 
334					<a href="${viewURLAsset}" class="news-card card"><h5 class="titolinews mt-4">${titoloVal}</h5>  </a> 
335				</#if> 
336				    
337                 <#if dataNotizia?? && dataNotizia?has_content> 
338				   <#assign someDate = dataNotizia?date.xs> 
339					<p class="subtitle" style="color: dimgray">${someDate?string["dd/MM/yyyy"]}</p>      
340				</#if>     
341 
342 
343				 
344 </div> 
345 
346 
347 
348 
349 
350<#-- =================== FINE COSTRUZIONE SINGOLA News ======================= --> 
351 
352 
353<#-- FINE --> 
354 
355	 
356 
357 
358 
359 
360 
361	</#list> <#-- FINE LOOP --> 
362	 
363<#-- se l'ultimo indice generato è mod 4 allora vuol dire che il penultimo,quello del ciclo non è multiplo di quattro 
364per cui va chiuso l'ultimo div aperto  -->	 
365<#if idxLoop %4 == 0>  
366</div> 
367</#if> 
368	 
369	 
370	 
371	 
372</#if> 
373<#-- FINE  NEWS LOOP --> 
374 
375   </div> <#-- chiusura div.container --> 
376      </section> 
377 </main> 
378 
379 
380 
381 
382 
383<#-- CSS PER NASCONDERE IL TITOLO DEL WEB CONTENT --> 
384<style type="text/css"> 
385 
386.tag-news:hover{ 
387  text-decoration: none; 
388
389 
390.cng h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { 
391  font-weight: 500; 
392
393 
394 
395.portlet-title-text{display: none;} 
396 
397 
398.news-card { 
399  display:flow-root;  
400  font-size: 22px; 
401  background: transparent; 
402  text-align: center; 
403  font-weight: 700; 
404  line-height: 1.1; 
405  padding: 0; 
406  color: var(--black); 
407  -webkit-transition: background 200ms; 
408  -moz-transition: background 200ms; 
409  -ms-transition: background 200ms; 
410  -o-transition: background 200ms; 
411  transition: background 200ms; 
412
413 
414.news-card:hover { 
415  background: #fff; 
416  text-decoration: none; 
417  color: var(--black); 
418  -webkit-transition: background 200ms; 
419  -moz-transition: background 200ms; 
420  -ms-transition: background 200ms; 
421  -o-transition: background 200ms; 
422  transition: background 200ms; 
423
424 
425.news-card .card-img { 
426  width: 70px; 
427  height: 70px; 
428  margin: 0; 
429  display: flex; 
430  align-items: center; 
431  justify-content: center; 
432    float: left; 
433
434 
435.news-card img { 
436    border-radius: 8px; 
437
438 
439.news-card p { 
440  margin-bottom: 0; 
441  margin-top: 1rem; 
442  font-size: 1.1rem;     
443 
444
445 
446.titolinews 
447
448  font-size: 1.0rem; 
449    font-weight: 600; 
450 
451
452 
453 
454.tag-news 
455
456border-radius: 5px; 
457padding: 5px; 
458background-color: var(--blue); 
459font-size: 12px; 
460text-decoration: none; 
461
462 
463 
464/***** END  CARD NEWS *****/ 
465 
466h2, section{ 
467margin-top: 0; 
468
469 
470 
471 
472span.header-back-to, a.header-back-to { 
473	display: none !important; 
474
475 
476 
477  <#if themeDisplay.isSignedIn() > 
478   
479.h2{ 
480display: inline; 
481z-index: 300000; 
482
483<#else> 
484 
485/* per nascondere pulsante di ritorno all'elenco delle news/video */ 
486.h2{ 
487display: none; 
488display: inline; 
489
490 
491 
492</#if> 
493 
494 
495</style> 
496<#assign js_folder = themeDisplay.getPathThemeImages() + "/../js" /> 
497 
498<div id="testDiv"></div> 
499<script> 
500 
501Liferay.Portlet.ready( 
502 
503	/* 
504	This function gets loaded after each and every portlet on the page. 
505 
506	portletId: the current portlet's id 
507	node: the Alloy Node object of the current portlet 
508	*/ 
509 
510	function(portletId, node) { 
511	 
512	//alert('portlet id: ' + portletId + ' node: ' + node); 
513	 
514
515); 
516 
517 
518</script> 
519 
520 
521	<!-- script type="text/javascript" 
522src = "https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5faeb58eadfcda74" 
523>	</script -->