Aller au contenu principal

Label und Entries einer Combobox auslesen

Commentaires

7 commentaires

  • Zendesk API User
    Author: hoebbel - 4/8/2021 11:10

    Hallo Gabriele,

    das ist zu kompliziert gedacht.

    Nimm einfach

    $CMS_VALUE(st_filter0.label(#global.language))$

    Viele Grüße,

    Holger

    0
  • Zendesk API User
    Author: mbergmann - 4/8/2021 11:18

    Hallo Gabriele,

    eigentlich sollte das recht einfach sein:

    $CMS_VALUE(st_filter0.getLabel(#global.language))$

    bzw. sicherheitshalber

    $CMS_VALUE(st_filter0.getLabel(#global.language).convert2)$

    Hintergrund: Der Wert einer Combobox ist ja eine Option. Erkennbar ist das immer im grauen Kasten rechts oben bei "zu den Methoden":

    Der Link "Option" führt auf die "komprimierte" Doku zu Option, wo Du dann auch die Methode .getLabel(language) findest:

    Alternativer Weg: Im "richtigen" ApiDoc zur Option findet man zwar "direkt" am Interface keine Methoden zu Labels, es erbt allerdings vom Interface Label   

    Das hat dann genau diese zwei .getLabel(...)-Methoden - inklusive ein bisschen Erklärungstext zum Fallback-Verhalten.

    Viele Grüße

    Michael

    0
  • Zendesk API User
    Author: reger - 4/8/2021 11:25

    Hallo und Danke für eure Antworten!
    Ich vergaß zu erwähnen, dass die Combobox innerhalb eines FS_CATALOG zur Verfügung gestellt wird, d.h. ich befinde mich außerhalb der eigentlichen Vorlage und wollte über ein Render-Template arbeiten, BEVOR die Sections aus dem FS_CATALOG abgearbeitet werden. Aber vielleicht ist das ja doch zu kompliziert gedacht. Übrigens ist in meiner Doku getLabel als deprecated gekennzeichnet....

    Viele Grüße
    Gabriele Reger

    0
  • Zendesk API User
    Author: hoebbel - 4/8/2021 14:27

    Hallo Gabriele,

    Du willst also mit Templatemitteln das Label einer CMS_INPUT_COMBOBOX ausgeben, die sich in einem Absatz in einem FS_CATALOG befindet. Nehmen wir an, die CATALOG Eingabekomponente ist do definiert:

      <FS_CATALOG name="pt_catalog">

        <LANGINFOS>

          <LANGINFO lang="*" label="catalog"/>

        </LANGINFOS>

        <TEMPLATES type="section"/>

      </FS_CATALOG>

    und die COMBOBOX ist die aus dem ursprünglichen Post.

    Dann müsste das so klappen:

    $CMS_FOR(for_card,pt_catalog)$

    $CMS_VALUE(for_card.item.st_filter0.label(#global.language))$

    $CMS_END_FOR$

    Ich hoffe, dass Dir das weiterhilft.

    Viele Grüße,

    Holger

    0
  • Zendesk API User
    Author: reger - 4/9/2021 6:46

    Hallo Holger,

    vielen Dank für deine Mühe!.

    Es ist aber tatsächlich so, dass ich auf diesem Weg alle gesetzten Werte auslese und nicht die reine Information aus dem Label. D.h. ein Wert, der innerhalb des FS_CATALOG nicht ausgewählt ist, den bekomme ich auf über diese Methode auch nicht. Außerdem werden natürlich auch Werte mehrfach geliefert, aber das kann man ja abfangen.

    Wahrscheinlich kann ich auch damit weiter arbeiten, aber m.E. sollte es ja auch möglich sein, einfach die reine Information aus dem Aufbau der Eingabekomponente zu verarbeiten. Irgendwo muss diese Info doch stehen bzw. verarbeitbar sein.

    Viele Grüße
    Gabriele Reger

    0
  • Zendesk API User
    Author: hoebbel - 4/9/2021 7:19

    Guten Morgen Gabriele,

    ich fürchte, dann habe ich Dich missverstanden.

    Du meinst also so etwas:

    $CMS_SET(ST,#global.userService.getStore(class("de.espirit.firstspirit.access.store.Store$Type").TEMPLATESTORE,false).getSectionTemplates().getTemplate("NAME DES SECTIONTEMPLATES"))$

    $CMS_FOR(for_entry,ST.getGomProvider().findEditor("st_filter0").getEntries())$

    $CMS_FOR(for_langInfo,for_entry.getLangInfos())$

      $CMS_VALUE(for_langInfo.getLabel())$<br>

    $CMS_END_FOR$

    $CMS_END_FOR$

    Das sollte bei Dir dann

    Ein-Zähler-Messung

    Zwei-Zähler-Messung

    ausgeben.

    Die innere Schleife (über die lang-infos) wird gebraucht, da es ja für jede Sprache eine eigene Beschriftung geben kann. Für die Ausgabe des values braucht man die nicht, da reicht ein $CMS_VALUE(for_entry.getValue())$

    Hinweis: Du musst über das Template und die dortige GOM Definition gehen, um alle Auswahlmöglichkeiten zu bekommen. Im Absatz selber sind nur die ausgewählten Einträge gespeichert.

    Da Du das Template ja bereits kennst, kannst Du dir das direkt holen. Ansonsten müsstest Du über die Einträge des FS_CATALOG iterieren und dir von dort jeweils das template holen. Dann musst Du aber wiederum wissen, wie die gesuchte Eingabekomponente in dem jeweiligen Template heißt...

    Viele Grüße,

    Holger

    0
  • Zendesk API User
    Author: reger - 4/9/2021 8:45

    Das war's. Danke Holger für deine Mühe!

    0

Vous devez vous connecter pour laisser un commentaire.