Draggha
I'm new here

Formularfelder einer Seite mit einer anderen Seite auslesen

Jump to solution

Guten Abend,

wir konzipieren gerade an Möglichkeiten Teaserinformationen direkt an der Seite zu der sie gehören zu pflegen und dann durch eine Absatzvorlage in einer anderen Seite darzustellen.

Momentan habe ich um dies zu testen zwei Seitenvorlagen und eine Absatzvorlage erstellt. Im folgenden beschreibe ich meinen Quellcode.

PageWithTeaserInfo (Seitenvorlage)

Formular:

<CMS_MODULE>

  <CMS_INPUT_TEXT name="pt_headline">

    <LANGINFOS>

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

    </LANGINFOS>

  </CMS_INPUT_TEXT>

  <CMS_INPUT_TEXTAREA name="pt_text">

    <LANGINFOS>

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

    </LANGINFOS>

  </CMS_INPUT_TEXTAREA>

</CMS_MODULE>

Ausgabe:

<!doctype html>

<html>

<head>

      <meta charset="utf-8">

      <title>Teaser from Content PoC</title>

</head>

<body>

      <h1>$CMS_VALUE(pt_headline)$</h1>

      <p>$CMS_VALUE(pt_text)$</p>

</body>

</html>

--> Ich habe eine PageWithTeaserInfo Seite erstellt und mit Dummyinhalt befüllt. Danach habe ich eine Seitenreferenz darauf in der Strukturverwaltung angelegt.

Teaser (Absatzvorlage)

Formular:

<CMS_MODULE>

 

  <FS_REFERENCE name="st_ref_teaser">

    <LANGINFOS>

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

    </LANGINFOS>

  </FS_REFERENCE>

 

</CMS_MODULE>

Ausgabe:

$CMS_SET(pageData2 ,st_ref_teaser.get().getPage().getFormData())$

<div>

     <h1>$CMS_VALUE(pageData.get(#global.language, "pt_headline").get(), default:"Dummy headline")$</h1>

     <p>$CMS_VALUE(pageData.get(#global.language, "pt_text").get(), default:"Dummy text")$</p>

</div>

Die Absatzvorlage Teaser habe ich einfach nur in eine Standardpage (eine Seite die nur den Inhalt der eingebundenen Absatzvorlagen anzeigt) eingebunden und als Inhalt die Referenz auf die PageWithTeaserInfo Seite in der Strukturverwaltung angegeben.

Problem:

In der Preview und im WebEdit kann ich die Informationen aus dem Formular auslesen, aber bei der Generierung der Seite ist kein Inhalt vorhanden. Wo hab ich einen Fehler emacht? Oder komm ich an dieser Stelle an die Formularfelder nicht mehr ran?

Gruß

Johann Haaf

0 Kudos
1 Solution

Accepted Solutions

Die Seiten sind freiegegeben, also sollte es da keine Probleme geben.

Ich glaube mittlerweile das Problem gefunden zu haben:

Dazu muss man wissen, dass ich mehrere Sprachen in meinem Testprojekt habe und es eine Fallbacksprache, welche nicht generiert wird, gibt im Falle dessen, dass eine Sprachvariante keinen Inhalt hat. Ich habe aber jetzt nur den Inhalt der Fallbacksprache gepflegt. Über Funktionen auf den Inhalt zuzugreifen bedeutet dann ja, dass ich für die momentane Sprache (ohne Inhalt) genau die Ausgabe bekomme die ich zuvor im Formularfeld gepflegt habe: keine! Smiley Happy

Folgendes ist also jetzt für mein Problem eine funktionierende Lösung:

$CMS_VALUE(st_ref_teaser.get().getPage().getFormData().get(#global.language, "pt_headline").get(), default: st_ref_teaser.get().getPage().getFormData().get(#global.project.masterLanguage, "pt_headline").get())$

Damit hole ich den Inhalt der zu generierenden Sprachvariante aus der Seite. Sollte diese keinen Inhalt haben hole ich den Inhalt aus der Mastersprache.

Danke auf jeden Fall an alle die sich das Problem durchgelesen und drüber nachgedacht haben!

Gruß

Johann Haaf

View solution in original post

0 Kudos
2 Replies
Peter_Jodeleit
Crownpeak employee

Eventuell ist die referenzierte Seite noch nicht freigegeben?

Peter
0 Kudos

Die Seiten sind freiegegeben, also sollte es da keine Probleme geben.

Ich glaube mittlerweile das Problem gefunden zu haben:

Dazu muss man wissen, dass ich mehrere Sprachen in meinem Testprojekt habe und es eine Fallbacksprache, welche nicht generiert wird, gibt im Falle dessen, dass eine Sprachvariante keinen Inhalt hat. Ich habe aber jetzt nur den Inhalt der Fallbacksprache gepflegt. Über Funktionen auf den Inhalt zuzugreifen bedeutet dann ja, dass ich für die momentane Sprache (ohne Inhalt) genau die Ausgabe bekomme die ich zuvor im Formularfeld gepflegt habe: keine! Smiley Happy

Folgendes ist also jetzt für mein Problem eine funktionierende Lösung:

$CMS_VALUE(st_ref_teaser.get().getPage().getFormData().get(#global.language, "pt_headline").get(), default: st_ref_teaser.get().getPage().getFormData().get(#global.project.masterLanguage, "pt_headline").get())$

Damit hole ich den Inhalt der zu generierenden Sprachvariante aus der Seite. Sollte diese keinen Inhalt haben hole ich den Inhalt aus der Mastersprache.

Danke auf jeden Fall an alle die sich das Problem durchgelesen und drüber nachgedacht haben!

Gruß

Johann Haaf

0 Kudos