Zum Hauptinhalt gehen

.getId() gibt -1 für Data Sources zurück

Kommentare

4 Kommentare

  • Zendesk API User
    Author: Peter_Jodeleit - 7/14/2017 10:30

    Du kannst abhängig vom Typ der eingehenden Referenz eine Fallunterscheidung machen. Bei Content-Referenzen bekommst du über "getReferencedElement" üblicherweise an den Datenquellen-Knoten (wenn es keine Datenquelle für den Datensatz gibt, liefert dies den Knoten für die Tabellen-Vorlage).

    Off Topic: Die zwei "FOR"-Schleifen mit gleicher Laufvariable finde ich sehr verwirrend :smileywink:

    0
  • Zendesk API User
    Author: Bratzell - 7/14/2017 13:09

    Hallo Peter,

    Danke dir ich habs jetzt so gemacht:

    $CMS_TRIM(level:3)$

    $CMS_SET(set_mediastoreRoot, #global.project.userService.getStore(class("de.espirit.firstspirit.access.store.Store$Type").MEDIASTORE, !#global.preview))$

    Refferenzname|Ablageort|Dateigroesse|Seitenrefferenz|CRC

    $CMS_SET(Media, class("de.espirit.firstspirit.access.store.mediastore.Media"))$

    $CMS_FOR(for_media, set_mediastoreRoot.getChildren(Media,true))$

         $CMS_IF(for_media.getType()==Media.FILE)$

              $CMS_SET(set_file, for_media.getFile(#global.language))$

              $CMS_IF(set_file.extension=="pdf")$

                   $CMS_TRIM(level:4)$

                        $CMS_VALUE(for_media.uid)$|

                        $CMS_REF(for_media)$|

                        $CMS_VALUE(set_file.getSize())$|

                        $CMS_FOR(for_media_item, for_media.getIncomingReferences())$

                             $CMS_IF(for_media_item.getId() == -1)$

                                  $CMS_SET(media_value_1, for_media_item.getReferencedElement.getId())$

                                  $CMS_VALUE(media_value_1 + " ")$

                             $CMS_ELSE$

                                  $CMS_SET(media_value_2, for_media_item.getId())$

                                  $CMS_VALUE(#global.root.media_value_2)$

                             $CMS_END_IF$

                        $CMS_END_FOR$|

                        $CMS_VALUE(set_file.getCrc())$

                   $CMS_END_TRIM$

              $CMS_END_IF$

         $CMS_END_IF$

    $CMS_END_FOR$

    $CMS_END_TRIM$

    Grüße

    Artur

    0
  • Zendesk API User
    Author: mbergmann - 7/15/2017 10:44

    Hallo Artur,

    ich glaube, Du brauchst die Fallunterscheidung nicht unbedingt. Es sollte reichen, einfach IMMER die Variante mit .getReferencedElement() zu nehmen.

    Kleiner Hinweis (s. auch Peters Kommentar): Im Fall von Datensätzen bekommst Du soweit ich mich erinnere ggf. nicht die ID des Datensatzes sondern die der Datenquelle.

    Viele Grüße

    Michael

    0
  • Zendesk API User
    Author: Bratzell - 8/4/2017 8:54

    Hallo Michael,

    Danke für eure Hilfe hierzu Michael und Peter.

    Tut mir Leid für die späte Antwort, ich war im Urlaub ;-).

    Ich hab ganze jetzt so gelöst das ich nicht den Seitenpfad genommen hab sondern den Strukturpfad.

    Hier mal der spezifischen Code:

    $CMS_FOR(for_media_item, for_media.getIncomingReferences())$

         $CMS_IF(for_media_item.getId() == -1)$

              $CMS_SET(media_value_1, for_media_item.getReferencedElement.getId())$

              $CMS_VALUE(media_value_1 + " ")$

         $CMS_ELSE$

              $CMS_SET(media_value_2, for_media_item.getReferencedObject())$

              $CMS_SET(media_parent_1, media_value_2.getParent())$

              $CMS_SET(media_parent_2, media_parent_1.getParent())$

              $CMS_FOR(media_site_1, media_parent_2.getIncomingReferences())$

                   $CMS_SET(media_site_2, media_site_1.getReferencedObject())$

                   $CMS_REF(media_site_2)$

              $CMS_END_FOR$

         $CMS_END_IF$

    $CMS_END_FOR$

    Mit freundlichen Grüßen

    Artur

    0

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.