Zum Hauptinhalt gehen

FS_CATALOG context parent als Ebeneninfo (Beanshell)

Kommentare

1 Kommentar

  • Zendesk API User
    Author: philipp_mueller - 1/29/2018 9:58

    Ich habe nun selbst eine Lösung gefunden, aber wirklich befriedigend ist es nicht, weil ich es als kompliziert ansehe, das es keine direkte Möglichkeit gibt, sich die Informationen zu holen.

    Die elementId ist das erste Element aus dem FS_CATALOG Feld, welches ich an den FS_BUTTON als Parameter übergebe.

    // Gibt die Ebenentiefe der aktuellen Sektion zurück
    getSectionDepth(section, elementId, depth) {
    FormData formData = depth == 1 ? section.getFormData() : section.getItem();
      String sectionName = formData.get(language, "st_headline").get();
      SectionTemplateImpl sectionTemplate = section.getTemplate();

    sectionDepth = null;
       if(sectionTemplate.getUid().equals("contentarea")) {
         CatalogImpl elements = formData.get(language, "st_elements").get();
         if(elements.size() > 0) {
          breakforloop;
          for(el : elements) {
           // Element gefunden?
           if(elementId.equals(el.getId())) {
          sectionDepth = depth;
          return sectionDepth;
         } else { // Ansonsten in der Ebene tiefer suchen...
          sectionDepth = getSectionDepth(el, elementId, depth + 1);
          if(sectionDepth != null) {
           break breakforloop;
          }
         }
        }
       }
      }
      return sectionDepth;
    }


    int sectionDepth = 1;

    int sectionId = element.getId();

    // Absatz laden und Ebenentiefe bestimmen
    QueryAgent queryAgent = context.requireSpecialist(QueryAgent.TYPE); 
    Iterable<IDProvider> iterable = queryAgent.answer("fs.id=" + sectionId); 
    Iterator<IDProvider> iterator = iterable.iterator(); 
    if(iterator.hasNext()) {
    IDProvider idProvider = iterator.next();
    FormData formData = idProvider.getFormData();

    // Sektion gefunden?
    if(idProvider != null) {
      sectionDepth = getSectionDepth(idProvider, elementId, sectionDepth);
    }
    }
    // message.append("\nEbenentiefe: " + sectionDepth);

    0

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