Loading ...
Benvenuti a Taranto
Watch the videos

learn

Community at the Center

Access to training courses, orientation programs for young people, online membership at the Acclavio Civic Library, conferences and many other initiatives aimed at expanding the boundaries of knowledge

 

discover more

move

Accessibility and Connection

Move efficiently in Taranto! Discover cycling routes, geolocate the nearest scooter or search for the fastest route to reach your destination. Do you have an electric car? Find out where to recharge it!

discover more

see

Culture and Tourism

All the historical and cultural heritage just a click away! Visit Taranto from a drone, discover virtual tours and tourist routes, book online visits and tickets for museums and theaters.do you want to jump into the past? Discover the magic of 3d reconstructions!

discover more

inhabit

Culture of Living

Knowing how the city evolves is important! Discover the redevelopment projects, concession and lease calls. Do you need to request a change of residence or an electoral card? Do it from your smartphone!

discover more

work

Innovation and Business

Seize the investment opportunities by consulting the active calls! In this section you can discover the main innovation initiatives and express interest in participating. What are you waiting for? Take a tour and find out more

discover more

five ways to experience Taranto

Culture and Tourism

All the historical and cultural heritage just a click away! Visit Taranto from a drone, discover virtual tours and tourist routes, book online visits and tickets for museums and theaters.do you want to jump into the past? Discover the magic of 3d reconstructions!

discover more

Accessibility and Connection

Move efficiently in Taranto! Discover cycling routes, geolocate the nearest scooter or search for the fastest route to reach your destination. Do you have an electric car? Find out where to recharge it!

discover more

Culture of Living

Knowing how the city evolves is important! Discover the redevelopment projects, concession and lease calls. Do you need to request a change of residence or an electoral card? Do it from your smartphone!

discover more

Innovation and Businesses

Seize the investment opportunities by consulting the active calls! In this section you can discover the main innovation initiatives and express interest in participating. What are you waiting for? Take a tour and find out more

discover more

Community at the Center

Access to training courses, orientation programs for young people, online membership at the Acclavio Civic Library, conferences and many other initiatives aimed at expanding the boundaries of knowledge

discover more

what to do these days

An error occurred while processing the template.
The following has evaluated to null or missing:
==> startDates  [in template "20097#20123#886009" at line 54, column 12]

----
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: #list startDates as sd  [in template "20097#20123#886009" at line 54, column 5]
----
1<#assign eventiTemplateId = "TARANTO-TIMELINE-CAROUSEL-EVENTI-ITEM-TEMPLATE"> 
2 
3<#if entries?has_content> 
4<div id="tt-event-carousel"> 
5  <div class="container max-container-1410"> 
6 
7    <div id="tt-event-carousel-content-evh" class="tt-event-carousel-content"> 
8         
9        <#assign apDisplayContext = renderRequest.getAttribute("ASSET_PUBLISHER_DISPLAY_CONTEXT") /> 
10        <#assign order = apDisplayContext.getOrderByColumn1() /> 
11        <#assign startDates = [] /> 
12        <#assign priorities = [] /> 
13                      
14	    <#list entries as curEntry> 
15	        <#assign 
16	            assetRenderer = curEntry.getAssetRenderer() 
17	            journalArticle = assetRenderer.getAssetObject()     
18	            priority = curEntry.getPriority() 
19	        /> 
20	         
21	        <#assign  
22	            document = saxReaderUtil.read(journalArticle.getContent()) 
23                rootElement = document.getRootElement() 
24                xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='endDate']") 
25                endDate = getterUtil.getString(xPathSelector.selectSingleNode(rootElement).getStringValue()) 
26                xPathSelector2 = saxReaderUtil.createXPath("dynamic-element[@name='startDate']") 
27                startDate = getterUtil.getString(xPathSelector2.selectSingleNode(rootElement).getStringValue()) 
28            /> 
29             
30            <#assign startDate_DateObj = dateUtil.parseDate("yyyy-MM-dd", startDate, locale)> 
31             
32                <@liferay_journal["journal-article"] 
33                    articleId=journalArticle.getArticleId() 
34                    ddmTemplateKey=eventiTemplateId 
35                    groupId=journalArticle.getGroupId() 
36                /> 
37             
38            <#assign startDates = startDates + [startDate_DateObj?datetime?string('yyyy-MM-dd')] /> 
39            <#assign priorities = priorities + [priority] /> 
40	                                
41	     </#list> 
42    </div><#-- /#tt-event-carousel-content-evh --> 
43 
44  </div><#-- /.container --> 
45</div><#-- /#tt-event-carousel --> 
46</#if> 
47 
48<script> 
49 
50 
51  jQuery(document).ready(function() { 
52       
53    var startDatesJS = []; 
54    <#list startDates as sd> 
55        startDatesJS.push(new Date('${sd}')); 
56    </#list> 
57     
58    var prioritiesJS = []; 
59    <#list priorities as p> 
60        prioritiesJS.push(${p}); 
61    </#list> 
62     
63    for(var i = 0; i < prioritiesJS.length; i++){ 
64        $('.tt-event-carousel-item').eq(i).addClass('priority' + prioritiesJS[i]); 
65    } 
66 
67    jQuery('#wrapper').css('overflow','hidden'); 
68     
69    var fixIds = function() { 
70      jQuery('#tt-event-carousel-content-evh .slick-slide').removeClass('slick-active-01 slick-active-02 slick-active-03');         
71      var activeSlides = $('#tt-event-carousel-content-evh .slick-slide.slick-active'); 
72      activeSlides.each(function( index ) { 
73        if (index>2){return false;} 
74        jQuery(this).addClass('slick-active-0'+(index+1)); 
75      }); 
76    } 
77 
78    var fixFocus = function(theTarget, currentSlide, nextSlide) { 
79      if (nextSlide > currentSlide){ 
80        $(theTarget).find("button.slick-prev.slick-arrow").focus(); 
81      } else if (nextSlide < currentSlide) { 
82        $(theTarget).find("button.slick-next.slick-arrow").focus(); 
83      } 
84    } 
85 
86    var _previouSlide; 
87 
88    jQuery('#tt-event-carousel-content-evh').on('init', function(event, slick) { 
89      fixIds(); 
90      _previouSlide = 0; 
91      accFeature.fixSlickAcc("<@liferay.language key='previous'/>", "<@liferay.language key='next'/>"); 
92    }); 
93     
94    <#if order?contains("modifiedDate")> 
95     
96    var elem = $('#tt-event-carousel-content-evh .journal-content-article').sort(sortMe); 
97    $('#tt-event-carousel-content-evh').prepend(elem); 
98 
99    function sortMe(a, b) { 
100        var classA = $(a).find('.tt-event-carousel-item').attr('class').split("startDate-")[1]; 
101        var classB = $(b).find('.tt-event-carousel-item').attr('class').split("startDate-")[1]; 
102        var classPriorityA = $(a).find('.tt-event-carousel-item').attr('class').split("priority")[1]; 
103        var classPriorityB = $(b).find('.tt-event-carousel-item').attr('class').split("priority")[1]; 
104        var startA = classA.substring(0,10); 
105        var startB = classB.substring(0,10); 
106        var priorityA = classPriorityA.substring(0,1); 
107        var priorityB = classPriorityB.substring(0,1); 
108        var splitA = startA.split('-'); 
109        var splitB = startB.split('-'); 
110         
111        var dateA = new Date(splitA[1] + '-' + splitA[0] + '-' + splitA[2]); 
112        var dateB = new Date(splitB[1] + '-' + splitB[0] + '-' + splitB[2]); 
113         
114        if(priorityA < priorityB){ 
115            return 1; 
116        }else if(priorityA > priorityB){ 
117            return -1; 
118        }else if(priorityA === priorityB){ 
119            if(dateA < dateB){ 
120                return 1; 
121            }else if(dateA > dateB){ 
122                return -1; 
123            }else if(dateA.getTime() === dateB.getTime()){ 
124                return 0; 
125            } 
126        } 
127    } 
128     
129    </#if> 
130     
131    var theSlick = jQuery('#tt-event-carousel-content-evh').slick({ 
132      slidesToShow: 3, 
133      slidesToScroll: 3, 
134      autoplay: false, 
135      dots: true, 
136      arrows: true, 
137      infinite: false, 
138      responsive: [ 
139        { 
140          breakpoint: 1200, 
141          settings: { 
142            slidesToShow: 2, 
143            slidesToScroll: 2, 
144            dots: false 
145          } 
146        }, 
147        { 
148          breakpoint: 768, 
149          settings: { 
150            slidesToShow: 1, 
151            slidesToScroll: 1, 
152            dots: false 
153          } 
154        } 
155      ] 
156    }); 
157 
158    theSlick.on("afterChange", function(event, slick, currentSlide) { 
159      fixIds(); 
160      fixFocus(event.target, _previouSlide, currentSlide); 
161      accFeature.fixSlickAcc("<@liferay.language key='previous'/>", "<@liferay.language key='next'/>"); 
162    }); 
163 
164    theSlick.on('beforeChange', function (event, slick, currentSlide, nextSlide) { 
165      _previouSlide = currentSlide; 
166    }); 
167     
168 
169  }); 
170 
171</script> 

in evidence

  • Welcome

    Welcome to the Taranto Ecosystem! The tourist portal of the Municipality of Taranto dedicated to all users who wish to get to know the city better from multiple perspectives. Aren't you from around here?

    info point Discover the tourist routes

    Interact

    In this section you have access to the multifunctional telematic counter of the Municipality of Taranto. Discover the online services dedicated to citizens and businesses or simply make a virtual appointment (remotely) with the Municipality.

    access the Online Services

discover taranto from a drone

news and information

not to be missed

from social networks