Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> cur_level2.level3  [in template "20097#20123#62018" at line 109, column 30]

----
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: #if cur_level2.level3.getSiblings()?h...  [in template "20097#20123#62018" at line 109, column 25]
----
1<#assign found = false> 
2<#assign codigoMenu = themeDisplay.getLayout().getExpandoBridge().getAttribute("Codigo Menu")> 
3<#assign navChildsJSON = jsonFactoryUtil.createJSONArray()  /> 
4<#if (codigoMenu?index_of(",") > -1) > 
5  <#assign codigoMenu = codigoMenu?split(",")[0]> 
6</#if> 
7 
8<#if level1.getSiblings()?has_content> 
9	<#list level1.getSiblings() as cur_level1> 
10 
11		<#if codigoMenu?has_content && cur_level1.code1.getData() == codigoMenu> 
12		    <#assign code1 = cur_level1.code1.getData()> 
13		    <#assign found = true> 
14 
15		<#if cur_level1.level2.getSiblings()?has_content && cur_level1.level2.getSiblings()?first.getData()?has_content> 
16        	<#assign navChildsJSON = jsonFactoryUtil.createJSONArray()  /> 
17            <#list cur_level1.level2.getSiblings() as cur_level2> 
18        	    <#if cur_level2.getData() != ""> 
19                    <#assign curLevel2JSON = jsonFactoryUtil.createJSONObject() /> 
20                    <#assign id = cur_level2.code2.getData() /> 
21               		<#assign href = cur_level2.link2.getFriendlyUrl()?replace('/web/guest', '')> 
22                    <#if !href?has_content> 
23                        <#assign href = cur_level2.linkExternoLvl2.getData()> 
24                    </#if> 
25                    <#assign title = cur_level2.getData() /> 
26                    <#assign empty = curLevel2JSON.put("id", id) /> 
27                    <#assign empty = curLevel2JSON.put("href", href) /> 
28                    <#assign empty =  curLevel2JSON.put("title", title) /> 
29 
30                    <#assign empty = navChildsJSON.put(curLevel2JSON) /> 
31        	    </#if> 
32        	</#list> 
33        </#if>             
34 
35		    <#break> 
36		</#if> 
37		 
38		<#if cur_level1.level2.getSiblings()?has_content> 
39        	<#list cur_level1.level2.getSiblings() as cur_level2> 
40        		 
41        		<#if codigoMenu?has_content && cur_level2.code2.getData() == codigoMenu> 
42        		    <#assign code1 = cur_level1.code1.getData()> 
43        		    <#assign code2 = cur_level2.code2.getData()> 
44        		    <#assign found = true> 
45        		    <#break> 
46        		</#if> 
47        		 
48        		<#if cur_level2.level3?has_content && cur_level2.level3.getSiblings()?has_content> 
49                	<#list cur_level2.level3.getSiblings() as cur_level3> 
50                		 
51                		<#if codigoMenu?has_content && cur_level3.code3.getData() == codigoMenu> 
52                		    <#assign code1 = cur_level1.code1.getData()> 
53                		    <#assign code2 = cur_level2.code2.getData()> 
54                		    <#assign code3 = cur_level3.code3.getData()> 
55                		    <#assign found = true> 
56                		    <#break> 
57                		</#if> 
58                		 
59                	</#list> 
60                </#if> 
61        		 
62        		<#if found><#break></#if> 
63        	</#list> 
64        </#if> 
65		 
66		<#if found><#break></#if> 
67	</#list> 
68</#if> 
69 
70<#assign selectedItem = [code1!?string, code2!?string, code3!?string]> 
71 
72<div class="finsa-productos-tabs"> 
73<div class="finsa-productos-tabs__accordion hide-in-mobile"> 
74<#if level1.getSiblings()?has_content> 
75	<#list level1.getSiblings() as cur_level1> 
76	<div class="accordion-item finsa-productos-tabs__accordion-item"> 
77	  <#assign lvl1Link = cur_level1.link1.getFriendlyUrl()?replace('/web/guest', '')> 
78	  <#if !lvl1Link?has_content> 
79		  <#assign lvl1Link = cur_level1.linkExterno.getData()> 
80		</#if> 
81		<div id="${cur_level1.code1.getData()}" class="finsa-productos-tabs__accordion-button <#if !selected(cur_level1.code1)>collapsed<#else>finsa-productos-tabs__active</#if>" data-toggle="collapse" 
82            data-target="#collapse${cur_level1?index}" aria-expanded="${selected(cur_level1.code1)?c}" aria-controls="collapse${cur_level1?index}" onclick="location.href='${lvl1Link}';"> 
83            <a class="nav-item nav-link no-click <#if selected(cur_level1.code1)>active</#if>" id="nav-decorativos-tab" data-toggle="tab" role="tab" aria-controls="nav-decorativos" aria-selected="true"> 
84                ${cur_level1.getData()} 
85            </a> 
86        </div> 
87		 
88		<#if cur_level1.level2.getSiblings()?has_content && cur_level1.level2.getSiblings()?first.getData()?has_content> 
89        	<#list cur_level1.level2.getSiblings() as cur_level2> 
90        	  <#if cur_level2.getData() != ""> 
91        	    <div id="collapse${cur_level1?index}" class="collapse hide-in-mobile <#if selected(cur_level1.code1)>show</#if>" aria-labelledby="productos" data-parent="#accordion"> 
92                <nav class="finsa-productos-tabs__nav finsa-tabs-nav"> 
93                <div class="nav nav-tabs nav-fill" id="nav-tab" role="tablist"> 
94                <div id="accordion${cur_level1?index}" class="accordion-item finsa-productos-tabs__accordion--secondary"> 
95        		<#assign lvl2Link = cur_level2.link2.getFriendlyUrl()?replace('/web/guest', '')> 
96        		<#if !lvl2Link?has_content> 
97		          <#assign lvl2Link = cur_level2.linkExternoLvl2.getData()> 
98		        </#if> 
99        		<div id="${cur_level2.code2.getData()}" class="finsa-productos-tabs__accordion-button--secondary <#if !selected(cur_level2.code2)>collapsed</#if>" data-toggle="collapse" data-target="#collapse${cur_level1?index}-${cur_level2?index}" aria-expanded="${selected(cur_level2.code2)?c}" 
100                    aria-controls="collapse${cur_level1?index}-${cur_level2?index}" onclick="location.href='${lvl2Link}';"> 
101                    <a class="nav-item nav-link no-click <#if selected(cur_level2.code2)><@level2Class /></#if>" id="nav-recubrimiento-tab" data-toggle="tab" role="tab" aria-controls="nav-recubrimiento" 
102                        aria-selected="false"> 
103                        ${cur_level2.getData()} 
104                    </a> 
105                </div> 
106 
107        		 
108        		 
109        		<#if cur_level2.level3.getSiblings()?has_content && cur_level2.level3.getSiblings()?first.getData()?has_content> 
110        		<div id="collapse${cur_level1?index}-${cur_level2?index}" class="collapse hide-in-mobile <#if selected(cur_level2.code2)>show</#if>" aria-labelledby="recubrimiento" 
111                                data-parent="#accordion${cur_level1?index}"> 
112                                <nav class="finsa-tabs-nav--secondary"> 
113                	<#list cur_level2.level3.getSiblings() as cur_level3> 
114                		<#if cur_level3.getData() != ""> 
115                        <div class="nav nav-tabs nav-fill" id="${cur_level3.code3.getData()}" role="tablist"> 
116										 <#assign lvl3Link = cur_level3.link3.getFriendlyUrl()?replace('/web/guest', '')> 
117                     <#if !lvl3Link?has_content> 
118		                   <#assign lvl3Link = cur_level3.linkExternoLvl3.getData()> 
119		                 </#if> 
120                		<a class="nav-item nav-link no-click <#if selected(cur_level3.code3)>active</#if>" id="nav-duo-tab" data-toggle="tab" href="${lvl3Link}" role="tab" aria-controls="nav-duo" aria-selected="false" onclick="location.href='${cur_level3.link3.getFriendlyUrl()?replace('/web/guest', '')}';"> 
121                                            ${cur_level3.getData()} 
122                                        </a> 
123                		 
124                	    </div> 
125                		</#if> 
126                	</#list> 
127                	 
128                	</nav> 
129                	</div> 
130                	 
131                </#if> 
132        		 
133        		</div> 
134                </div> 
135                </nav> 
136        	    </div> 
137        	  </#if> 
138        	</#list> 
139        </#if> 
140         
141	</div>	 
142	</#list> 
143</#if> 
144</div> 
145</div> 
146<script> 
147    codigoMenu = "${codigoMenu}"; 
148    navChildsJSON = $.parseJSON('${navChildsJSON}'); 
149     
150    $(document).ready(function(){ 
151        $('a.nav-item.nav-link').off('click'); 
152        if(navChildsJSON != ""){ 
153            loadMenuMobile(navChildsJSON); 
154
155    }); 
156 
157    Liferay.on('endNavigate', function(event) { 
158        $('a.nav-item.nav-link').off('click'); 
159 
160    }); 
161     
162	loadMenuFromSession(codigoMenu); 
163 
164    
165    function loadMenuMobile(navChildsJSON) { 
166        filterModal = $('.finsa-tabs-structure-right .finsa-tabs__modal .finsa-tabs__modal-list'); 
167        if(filterModal){ 
168            var navChilds = ''; 
169            for (var i in navChildsJSON) { 
170                navChilds += '<a class="nav-item nav-link" id="'+navChildsJSON[i].id+'" href="'+navChildsJSON[i].href+'">'+ 
171                                '<span>'+navChildsJSON[i].title+'</span> ' + 
172                            '</a>'; 
173
174 
175            var navChildsList = '<nav class="finsa-recursos-tabs__nav finsa-tabs-nav">'+ 
176                                '<div class="nav nav-tabs nav-fill selected" id="nav-tab" role="tablist">'+ 
177                                    navChilds + 
178                                '</div>' + 
179                            '</nav>'; 
180 
181            filterModal.append(navChildsList); 
182        }  
183
184 
185    function loadMenuFromSession(codigoMenu) { 
186        if (codigoMenu != "") { 
187            sessionStorage.setItem('codigoMenu', codigoMenu); 
188        } else if (codigoMenu == "" && window.location.href.includes("/w/")) { 
189            codigoMenu = sessionStorage.getItem('codigoMenu'); 
190            if (codigoMenu != undefined && codigoMenu != "") { 
191                currentDiv = $('#' + codigoMenu); 
192                currentLink = $('#' + codigoMenu + " a"); 
193 
194                //first level 
195                currentDiv.addClass("finsa-productos-tabs__active"); 
196                currentDiv.removeClass("collapsed"); 
197                currentDiv.attr("aria-expanded", true); 
198                currentDiv.siblings().addClass('show'); 
199 
200                currentLink.attr("aria-selected", true); 
201                currentLink.addClass("active"); 
202 
203                //second level 
204                parent = currentDiv.closest('.collapse'); 
205                parent.addClass('show'); 
206                parent.siblings().addClass('show'); 
207 
208                parentDiv =  parent.siblings('.finsa-productos-tabs__accordion-button, .finsa-productos-tabs__accordion-button--secondary'); 
209                parentDiv.removeClass("collapsed"); 
210                parentDiv.attr('aria-expanded', true); 
211                parentDiv.children('a').addClass('accordion-selected'); 
212                parentDiv.siblings().addClass('show'); 
213 
214                //third level 
215                ancestor = parentDiv.closest('.collapse'); 
216                ancestor.addClass('show'); 
217                ancestor.siblings().addClass('show'); 
218 
219                ancestorDiv =  ancestor.siblings('.finsa-productos-tabs__accordion-button, .finsa-productos-tabs__accordion-button--secondary'); 
220                ancestorDiv.removeClass("collapsed"); 
221                ancestorDiv.attr('aria-expanded', true); 
222                ancestorDiv.children('a').addClass('accordion-selected'); 
223                ancestorDiv.siblings().addClass('show'); 
224            } else { 
225                currentDiv = $($('.finsa-productos-tabs__accordion-button')[0]); 
226                currentDiv.addClass("finsa-productos-tabs__active"); 
227                currentDiv.removeClass("collapsed"); 
228                currentDiv.attr("aria-expanded", true); 
229                currentDiv.siblings().addClass('show'); 
230 
231                currentDiv.children('a').attr("aria-selected", true); 
232                currentDiv.children('a').addClass("active"); 
233
234
235
236</script> 
237 
238 
239<#-- MACROS Y ESTILOS --> 
240 
241<#function selected code> 
242    <#if selectedItem?seq_contains(code.getData())> 
243        <#return true> 
244    </#if> 
245     
246    <#return false> 
247</#function> 
248 
249<#macro level2Class> 
250    <#if code3?has_content> 
251        accordion-selected 
252    <#else> 
253        active 
254    </#if> 
255</#macro> 

Retail By Finsa: Wir zeigen unser Werksverzeichnis

Die Geschäfte, Restaurants und Einkaufszentren beginnen nach fast drei Monaten Pause wieder zu öffnen. Entdecken Sie 20 Projekte, die mit unseren Materialien entworfen wurden

04-06-2020 Fuente: Finsa - Autor: Finsa

Der Einzelhandel ist einer der am stärksten von der Covid-19-Krise betroffenen Sektoren: Geschäfte, Restaurants und Einkaufszentren wurden geschlossen. Jetzt beginnen diese Einrichtungen wieder zu öffnen, wobei viele von ihnen den neuen Gesundheits- und Sicherheitsmaßnahmen angepasst wurden.

Finsa bietet Architekten, Innenarchitekten und Designern, die im Einzelhandel tätig sind, eine breite Palette von Holzlösungen für ihre Projekte. In dem neuen Einzelhandelsportfolio von Finsa, das hier heruntergeladen werden kann, finden Sie insgesamt 20 Projekte, die zeigen, wie unsere Materialien in Restaurants, Geschäften, Fitnessstudios, Kliniken oder Einkaufszentren eingesetzt werden können. Darüber hinaus können Sie mit unserer breiten Palette an dekorativen Trägern und Oberflächen sowohl eine Luxuseinrichtung als auch einfachere Räume gestalten.

Finsa ofrece a los profesionales de la arquitectura, interiorismo y diseño que trabajan en el sector retail una amplia gama de soluciones en madera para ejecutar sus proyectos. En el nuevo portfolio de retail de Finsa, que se puede descargar aquí mismo, recogemos un total de 20 proyectos que muestran cómo nuestros materiales se pueden utilizar en restaurantes, comercios, gimnasios, clínicas o centros comerciales. Asimismo, nuestra amplia variedad de soportes y superficies decorativas permiten proyectar tanto un establecimiento de lujo como espacios más sencillos.