Questions & Answers

Bene
I'm new here

CMS_ELSIF in CMS_SET

Hallo zusammen,

beim Fehlermeldungen entfernen, bin ich รผber ein interessantes Detail gestolpert.

Als Fehler angegeben wurde eine mรถgliche Endlosschleife in einer CMS_ELSIF Abfrage (haha). Ohne CMS_.. wurden keine Fehler ausgegeben. Nach einigem Versuchen hab ich dann die if-Abfrage geteilt und seitdem lรคuft das Template ohne Fehlermeldung durch. Mir scheint, als wรผrde hier das umschlieรŸende CMS_SET keine CMS_ELSIF vertragen.

Unten angehรคngt die zwei Code-Fragmente, sollte ich hier etwas gรคnzlich anderes รผbersehen haben, bin ich dankbar fรผr die Aufklรคrung.

Ciao

Benedikt

Funktioniert nicht (funktioniert schon, wirft bei der Generierung allerdings einen Error):

$CMS_SET(setMedia, ltMediaRef.getMedia())$

$CMS_SET(setLinkText)$$CMS_TRIM(level:4)$ 

                $CMS_IF(setMedia.getType() == setMedia.FILE)$

                               $CMS_SET(setFileData, setMedia.getFile(#global.language))$

                               ($CMS_VALUE(setFileData.getExtension().toString.toUpperCase)$)

                $CMS_ELSIF(setMedia.getType() == setMedia.PICTURE)$

                               $CMS_SET(setPictureData, setMedia.getPicture(#global.language).getPictureMetaData(#global.project.originalResolution))$

                               ($CMS_VALUE(setPictureData.getExtension().toString.toUpperCase)$)

                $CMS_END_IF$

$CMS_END_TRIM$$CMS_END_SET$

Fehlermeldung sinngemรครŸ: Achtung Endlosschleife!

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Funktioniert ohne Error-Meldung:

$CMS_SET(setMedia, ltMediaRef.getMedia())$

$CMS_SET(setLinkText)$$CMS_TRIM(level:4)$   

                $CMS_IF(setMedia.getType() == setMedia.FILE)$

                               $CMS_SET(setFileData, setMedia.getFile(#global.language))$

                               ($CMS_VALUE(setFileData.getExtension().toString.toUpperCase)$)

                $CMS_END_IF$

                $CMS_IF(setMedia.getType() == setMedia.PICTURE)$

                               $CMS_SET(setPictureData, setMedia.getPicture(#global.language).getPictureMetaData(#global.project.originalResolution))$

                               ($CMS_VALUE(setPictureData.getExtension().toString.toUpperCase)$)

                $CMS_END_IF$

$CMS_END_TRIM$$CMS_END_SET$

0 Kudos
5 Replies
Peter_Jodeleit
Crownpeak employee

Die "Endlosschleifenerkennung" schlรคgt ab einer gewissen Stack-Tiefe zu. Wahrscheinlich operiert der Code gerade an der Grenze (mรผsste an der Fehlermeldung zu sehen sein - die wird ausgegeben, wenn #global.debugMode auf true gesetzt wird).

Wenn das der Fall ist, kann รผber #global.maxStackSize (default = 50) die maximale Stacktiefe erhรถht werden.

Peter
0 Kudos

Wir haben gerade ein ganz รคhnliches Problem. รœber $CMS_SET(#global.maxStackSize, 100)$ wird das Problem behoben, allerdings frage ich mich, ob es generell unproblematisch ist diesen Wert zu erhรถhen, oder gibt es da etwas zu beachten? Oder gibt es dazu vielleicht Erfahrungen ab welcher Verschachtelungstiefe anders vorgegangen werden muss?

0 Kudos

Im Fall einer Endlosschleife dauert es bei erhรถhtem Wert lรคnger, bis die Erkennung zuschlรคgt. Im normalen Betrieb ergbit sich kein Nachteil durch die Erhรถhung des Wertes.

Peter
0 Kudos
ampersand83
I'm new here

Im normalen Ausgabekanal (HTML) konnten wir das Problem mit den Endless Loop Fehlern durch die Erhรถhung der Stacksize beheben. Im Ausgabekanal fรผr die UX-Bridge bekommen wir die Fehler allerdings nicht weg. Den Inhalt eines HTML Ausgabekanals รผbernehmen wir dabei wie in Re: Inhalte eines Ausgabekanals in anderen รผbernehmen beschrieben in den UX-Bridge Ausgabekanal.

Hier bin ich jetzt langsam echt mit meinem Latein am Ende.

Irgendeine Idee, wieso hier die Erhรถhung der Stack Size nichts bewirkt?

GruรŸ,

Stefan

0 Kudos

Reporte das bitte an unseren Helpdesk, vielen Dank.

Peter
0 Kudos

Type a product name