chriwi
Occasional Observer

Wie greife ich über FormData auf Werte einer Verweisvorlage zu?

Folgende Formularwerte sind definiert:

<CMS_INPUT_TEXT name="st_id" hFill="yes" maxInputLength="512" singleLine="no" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="YouTube ID"/>

    </LANGINFOS>

  </CMS_INPUT_TEXT>

<CMS_INPUT_LINK name="st_endcard_link" allowEmpty="yes" hFill="yes" useLanguages="no">

      <LANGINFOS>

        <LANGINFO lang="*" label="Endcard Link"/>

      </LANGINFOS>

      <LINKEDITORS>

        <LINKEDITOR name="lt_intern_yt_endcard"/>

        <LINKEDITOR name="lt_extern_yt_endcard"/>

      </LINKEDITORS>

    </CMS_INPUT_LINK>

Und in lt_intern_yt_endcard gibt es die Formularvariable:

<FS_REFERENCE name="lt_link" allowEmpty="yes" hFill="yes" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="Interner Verweis"/>

    </LANGINFOS>

    <PROJECTS>

      <LOCAL name=".">

        <SOURCES>

          <FOLDER name="root" store="sitestore"/>

        </SOURCES>

      </LOCAL>

    </PROJECTS>

  </FS_REFERENCE>

In der übergeordeneten Seitenvorlage möchte ich auf die Formularwerte zugreifen. Für st_id ist es einfach:

$CMS_IF(!#global.page.body("content").isEmpty)$

    $CMS_FOR(for_section,#global.page.getBodyByName("content").getChildren)$

          $CMS_IF(isSet(for_section))$

             $CMS_IF(!for_section.isEmpty && !for_section.template.isEmpty)$

                 $CMS_IF("st_videoplayer_yt".equals(for_section.template.Uid))$                   

                             $CMS_VALUE(for_section.formData.get(#global.language, "st_id").get())$

                $CMS_END_IF$

            $CMS_END_IF$

        $CMS_END_IF$

    $CMS_END_FOR$

$CMS_END_IF$

Wie greife ich jetzt über die FS Api auf den Wert von st_endcard_link.lt_link zu?

0 Kudos
2 Replies
aVogt
Returning Creator

Hallo Christiane,

Bei ener FS_REFERENZ müsste es wie folgt gehen (gerade nicht getestet - hoffe ich irre mich nicht):

Du holst Die das Feld (über FormData) führst ein get() aus und bekommst eine TargetReferenz.

Je nachdem was verlinkt ist, kannst Du dann die entsprechenden methoden (getMedia(), getPageRef()) ausführen und bekommst das jeweilig verlinkte Element.

Grüße

Andreas

0 Kudos
chriwi
Occasional Observer

Vielen Dank. Inzwischen habe ich folgende Möglichkit gefunden:

$CMS_VALUE(ref(for_section.formData.get(#global.language, "st_endcard_link").get().getFormData().lt_link)$

Das entspricht eigentlich deinem Tipp.

Gruß Christiane.

0 Kudos