TMB App
La app que se lleva es la app que te lleva.
Con nuestra app porque queremos ofrecerte la mejor experiencia de viaje.
Con TMB App puedes obtener soluciones de transporte público y bicicleta, utilizar la T-mobilitat y hacer todas las consultas que necesites para planificar tus desplazamientos por Barcelona y el área metropolitana. También puedes consultar rápidamente el estado de tus líneas y paradas preferidas y buscar las estaciones y paradas que tengas más cerca con el nuevo escáner ddTag integrado.
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> link.texto1 [in template "20155#20195#647312" at line 44, column 72]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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: #assign descripcion = link.texto1.get... [in template "20155#20195#647312" at line 44, column 49]
----
1<#assign imagesFolder = themeDisplay.getPathThemeImages()>
2
3<#assign entriesMapList = []>
4<#foreach elem in linkFieldSet.getSiblings()>
5 <#if elem.linkFieldSetFieldSet.order?has_content>
6 <#assign currentOrder = elem.linkFieldSetFieldSet.order.getData()>
7 </#if>
8 <#if !currentOrder?has_content || currentOrder == "null">
9 <#assign currentOrder = "99">
10 </#if>
11 <#assign currEntryMap = {"entry" : elem , "order" : currentOrder?number}>
12 <#assign entriesMapList = entriesMapList + [currEntryMap]>
13</#foreach>
14
15<#assign sortedEntriesMapList = entriesMapList?sort_by("order")>
16<#assign sortedEntriesRootElems = []>
17
18<#foreach currEntryMap in sortedEntriesMapList>
19 <#assign sortedEntriesRootElems = sortedEntriesRootElems + [currEntryMap.entry]>
20</#foreach>
21
22<div class="grid__row grid__row--list grey-background" id="${id.getData()}">
23 <div class="full-body__container">
24 <section class="points-advantages" id="reservar">
25 <header class="points-advantages__header">
26 <h2 class="points-advantages__title">
27 ${titol.getData()}</h2>
28 <p class="points-advantages__summary">
29 ${descriptiu.getData()}</p>
30 </header>
31 <#if sortedEntriesRootElems?has_content>
32 <#assign contador = 0>
33 <ul class="points-advantages__items">
34 <#foreach cur_link in sortedEntriesRootElems>
35 <#assign link = cur_link.linkFieldSetFieldSet >
36 <#assign linkTo = "">
37 <#if link.enllac.getData()?has_content>
38 <#assign linkTo = link.enllac.getData()>
39 <#else>
40 <#assign linkTo = link.page.getFriendlyUrl()>
41 </#if>
42
43 <#assign titulo = cur_link.link.getData()>
44 <#assign descripcion = link.texto1.getData()>
45 <#assign imagen = link.Imatge9695FieldSet.Imatge9695.getData()>
46 <#if link.picto?has_content>
47 <#assign picto = link.picto.getData()>
48 </#if>
49 <#if link.imatge?has_content>
50 <#assign alt = link.imatge.Alt9668.getData()>
51 </#if>
52
53 <#if contador%2 == 0>
54 <li class="points-advantages__item el-meu-bus-card">
55 <div class="points-advantages__card">
56 <div class="points-advantages__card-info">
57 <div class="el-meu-bus-card-inline">
58 <#-- Mostrar el icono solo si existe valor -->
59 <#if link.icon?has_content && link.icon.getData()?has_content && link.icon.getData()?trim != "Cap">
60 <span class="icon ${link.icon.getData()}">
61 </span>
62 </#if>
63 <#if linkTo?has_content>
64 <a href="${linkTo}" class="points-advantages__card-link">
65 <h3 class="points-advantages__card-title">
66 ${titulo}</h3>
67 </a>
68 <#else>
69 <h3 class="points-advantages__card-title">
70 ${titulo}</h3>
71 </#if>
72 </div>
73 <p class="points-advantages__card-description">${descripcion}</p>
74 <#if link.titolappleFieldSet.titolappleFieldSetFieldSet.linkapple.getData()??>
75 <div class="el-meu-bus-card-bottom-info mobile-app">
76 <p class="points-advantages__card-description">
77 ${link.description_app.getData()}
78 </p>
79 <#if link.titolappleFieldSet.titolapple.getData()?has_content>
80 <ul class="points-app__links">
81 <li class="points-app__link">
82 <a id="click_app_other" href="${link.titolappleFieldSet.titolappleFieldSetFieldSet.linkapple.getData()}" <#if link.titolappleFieldSet.titleapple?has_content>title="${link.titolappleFieldSet.titleapple.getData()}"</#if> aria-label="${link.titolappleFieldSet.titolapple.getData()!''}" class="customers__buy-online-app-button button button--c customers__buy-online-app-button-analytics-apple" rel="external">
83 <img src="${imagesFolder}/basic/24px/svg/ico-apple-store.svg" alt="App Store">
84 ${link.titolappleFieldSet.titolapple.getData()!''}
85 </a>
86 </li>
87 <li class="points-app__link">
88 <a href="${link.titolgoogleFieldSet.titolgoogleFieldSetFieldSet.linkgoogle.getData()}" <#if link.titolgoogleFieldSet.titlegoogle?has_content>title="${link.titolgoogleFieldSet.titlegoogle.getData()}"</#if> aria-label="${link.titolgoogleFieldSet.titolgoogle.getData()!''}" class="customers__buy-online-app-button button button--c customers__buy-online-app-button-analytics-google" rel="external">
89 <img src="${imagesFolder}/basic/24px/svg/ico-google-play.svg" alt="Google Play">
90 ${link.titolgoogleFieldSet.titolgoogle.getData()!''}
91 </a>
92 </li>
93 </ul>
94 </#if>
95 </div>
96 <#elseif link.phone_description.phone.getData()?has_content>
97 <div class="el-meu-bus-card-bottom-info">
98 <p class="points-advantages__card-description telephone">
99 ${link.phone_description.getData()}</p>
100 <strong>
101 ${link.phone_description.phone.getData()}</strong>
102 </div>
103 <#else>
104 </#if>
105
106 </div>
107 <div class="points-advantages__card-cover" style="background-image: url(${imagen});">
108 <img src="${imagen}" alt="${alt!""}" class="points-advantages__card-image">
109 </div>
110
111 </div>
112 </li>
113 <#else>
114 <li class="points-advantages__item el-meu-bus-card">
115 <div class="points-advantages__card">
116 <div class="points-advantages__card-cover" style="background-image: url(${imagen});">
117 <img src="${imagen}" alt="${alt!""}" class="points-advantages__card-image">
118 </div>
119 <div class="points-advantages__card-info">
120 <div class="el-meu-bus-card-inline">
121 <#-- Mostrar el icono solo si existe valor -->
122 <#if link.icon?has_content && link.icon.getData()?has_content && link.icon.getData()?trim != "Cap">
123 <span class="icon ${link.icon.getData()}">
124 </span>
125 </#if>
126 <#if linkTo?has_content>
127 <a href="${linkTo}" class="points-advantages__card-link">
128 <h3 class="points-advantages__card-title">
129 ${titulo}</h3>
130 </a>
131 <#else>
132 <h3 class="points-advantages__card-title">
133 ${titulo}</h3>
134 </#if>
135 </div>
136 <p class="points-advantages__card-description">
137 ${descripcion}</p>
138 <#if link.titolappleFieldSet.titolappleFieldSetFieldSet.linkapple.getData()?has_content>
139 <div class="el-meu-bus-card-bottom-info mobile-app">
140 <p class="points-advantages__card-description">
141 ${link.description_app.getData()}</p>
142 <#if link.titolappleFieldSet.titolapple.getData()?has_content>
143 <ul class="points-app__links">
144 <li class="points-app__link">
145 <a id="click_app_other" href="${link.titolappleFieldSet.titolappleFieldSetFieldSet.linkapple.getData()}" <#if link.titolappleFieldSet.titleapple?has_content>title="${link.titolappleFieldSet.titleapple.getData()}"</#if> aria-label="${link.titolappleFieldSet.titolapple.getData()!''}" class="customers__buy-online-app-button button button--c customers__buy-online-app-button-analytics-apple" rel="external">
146 <img src="${imagesFolder}/basic/24px/svg/ico-apple-store.svg" alt="App Store">
147 ${link.titolappleFieldSet.titolapple.getData()!''}
148 </a>
149 </li>
150 <li class="points-app__link">
151 <a id="click_app_other" href="${link.titolgoogleFieldSet.titolgoogleFieldSetFieldSet.linkgoogle.getData()}" <#if link.titolgoogleFieldSet.titlegoogle?has_content>title="${link.titolgoogleFieldSet.titlegoogle.getData()}"</#if> aria-label="${link.titolgoogleFieldSet.titolgoogle.getData()!''}" class="customers__buy-online-app-button button button--c customers__buy-online-app-button-analytics-google" rel="external">
152 <img src="${imagesFolder}/basic/24px/svg/ico-google-play.svg" alt="Google Play">
153 ${link.titolgoogleFieldSet.titolgoogle.getData()!''}
154 </a>
155 </li>
156 </ul>
157 </#if>
158 </div>
159 <#elseif link.phone_descriptionFieldSet.phone_descriptionFieldSetFieldSet.phone.getData()?has_content>
160 <div class="el-meu-bus-card-bottom-info">
161 <p class="points-advantages__card-description telephone">
162 ${link.phone_descriptionFieldSet.phone_description.getData()}</p>
163 <strong>
164 ${link.phone_descriptionFieldSet.phone_descriptionFieldSetFieldSet.phone.phone.getData()}</strong>
165 </div>
166 <#else>
167 </#if>
168 </div>
169
170 </div>
171 </li>
172 </#if>
173 <#assign contador = contador + 1>
174 </#foreach>
175
176 </ul>
177 </#if>
178 </section>
179
180
181
182 </div>
183</div>
¡Descubre por qué TMB App es la app que te lleva!
Con la nueva TMB App tienes todo el transporte público en una sola app. Busca nuevos itinerarios y disfruta de más opciones de transporte, ¡también en bici! La app que se lleva es la app que te lleva. ¡Descárgatela!
Cerrar
© OpenStreetMap contributors
