Search the FirstSpirit Knowledge Base
Hallo zusammen,
folgende Function soll Metadaten aus einem Absatz lesen.
<CMS_FUNCTION name="define" resultname="fr_st_desktopFilters">
<CMS_CDATA_PARAM name="source">
<![CDATA[$CMS_IF(#global.section.hasMeta)$$CMS_VALUE(#global.section.meta("cs_desktop_filter").map(x ->"\""+ x.value.refName + "\"").toString(","))$$CMS_END_IF$]]>
</CMS_CDATA_PARAM>
</CMS_FUNCTION>
Für mein JSP Tag möchte ich dann folgendes zusammen bauen.
if ( $CMS_IF(!fr_st_desktopFilters.isEmpty())$$CMS_VALUE(set_isDesktopMatching.toString())$$CMS_END_IF$ $CMS_VALUE(set_and.toString())$ $CMS_IF(!fr_st_permissions.isEmpty())$ $CMS_VALUE(set_hasPermission.toString())$ $CMS_END_IF$ )
desktopFilters ist empty = $CMS_VALUE(fr_st_desktopFilters.isEmpty())$
desktopFiltersText = -$CMS_VALUE(fr_st_desktopFilters)$-
haspermission ist empty = $CMS_VALUE(fr_st_permissions.isEmpty())$
haspermissionText = -$CMS_VALUE(fr_st_permissions)$-
Meine Ausgabe dazu sieht wie folgt aus.
if ( ( isDesktopMatching( aliasName, new String[] { } )) && ( hasPermission( userRoleNames, new String[] { "Berechtigung1","Berechtigung2" } )) ) {
Als Kontrolle gebe ich noch folgendes aus.
desktopFilters ist empty = false --->aus meiner Sicht falsch
desktopFiltersText = -- --->aus meiner Sicht Richtig aber scheinbar nicht Empty
haspermission ist empty = false --->aus meiner Sicht Richtig
haspermissionText = -"Berechtigung1","Berechtigung2"- --->aus meiner Sicht Richtig
Wie man in der Kontrolle sehen kann, ist beim Desktop empty = false aber der Text ist leer. Zwischen den Minuszeichen steht nichts.
Ich hätte jetzt erwartet das folgendes raus geschrieben wird.
if ( ( hasPermission( userRoleNames, new String[] { "Berechtigung1","Berechtigung2" } )) ) {
Der Teil sollte verschwinden.
( isDesktopMatching( aliasName, new String[] { } )) &&
Wo mache ich den Fehler?
Sinn und Zweck des ganzen sind unnötige Java Statements zu eleminieren.
Gibt es keinen Desktop, raus mit der Bedingung, gibt es keine Permissions, dann auch raus damit, sind Beide leer dann den ganzen Block überspringen.
Warum liefert die Fuction fr_st_desktopFilters kein IsEmpty=true?
Danke fürs lesen.
Server-Version: 5.0.606.65744
Hallo zusammen,
Fehler gefunden, fr_st_desktopFilters.isEmpty() ist falsch muss
fr_st_desktopFilters.toString().isEmpty() sein.
Danke
Hallo zusammen,
Fehler gefunden, fr_st_desktopFilters.isEmpty() ist falsch muss
fr_st_desktopFilters.toString().isEmpty() sein.
Danke