wiegele
I'm new here

CMS_FUNCTION return value is not empty

Jump to solution

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

0 Kudos
1 Solution

Accepted Solutions
wiegele
I'm new here

Hallo zusammen,

Fehler gefunden, fr_st_desktopFilters.isEmpty() ist falsch muss

fr_st_desktopFilters.toString().isEmpty() sein.

Danke

View solution in original post

0 Kudos
1 Reply
wiegele
I'm new here

Hallo zusammen,

Fehler gefunden, fr_st_desktopFilters.isEmpty() ist falsch muss

fr_st_desktopFilters.toString().isEmpty() sein.

Danke

0 Kudos