[SOLVED] Seiteninhalte mit Formular versenden


(Paul Ehrlich) #1

Hallo Forum,

ich möchte gern zu den Formulardaten den Seitentitel und die H1 Überschrift der aktuellen Seite per Mail versenden.
Wie kann ich in der mail.txt zusätzlich zu den Formulardaten die Seitendaten abrufen?

Vielen Dank!
Paul


(Bastian Waidelich) #2

Hallo Klaus,

das hilft hoffentlich: https://github.com/neos/form/issues/44


(Paul Ehrlich) #3

Hallo Bastian,

vielen Dank für den Ansatz.
Der Node --> node.identifier ist ja das Formular selbst.
Wie komme ich nun zum Namen der Seite in der sich das Formular befindet (oder zur H1 der Seite …)?

Vielen Dank!
Klaus


(Bastian Waidelich) #4

Ja, aber von dort ist es doch einfach, an den DocumentNode zu kommen.
Das ganze könnte z.B: so aussehen:

prototype(Your.Package:SpecialForm) < prototype(Neos.NodeTypes:Form) {
  overrideConfiguration = Neos.Fusion:RawArray {
    finishers = Neos.Fusion:RawArray {
      # first finisher
      0 = Neos.Fusion:RawArray {
        # finisher options
        options = Neos.Fusion:RawArray {
          variables = Neos.Fusion:RawArray {
            pageTitle = ${q(documentNode).property('title')}
          }
        }
      }
    }
  }
}

Und schon kannst Du im E-Mail Template per {pageTitle} darauf zugreifen


Forms, how to get the referer page for the mail message
(Paul Ehrlich) #5

Hallo Bastian,

Danke für die schnelle Hilfe!
Dann benötige ich ja kein verstecktes Feld, oder?

Der Syntax ${q(documentNode).property(‘title’)} ist für Einsteiger in NEOS nachschlagebedürftig.
Ich habe es statt mit ‘documetNode’ mit ‘document’, ‘page’, ‘site’, ‘node.parent.parent …’ usw. probiert.

Na ja, jetzt klappt’s, vielen Dank!


(Bastian Waidelich) #6

Nein, wenn Du den Titel nicht in den Form-Werten brauchst.

Ja, das ist natürlich nicht selbsterklärend. Aber immerhin dokumentiert: https://neos.readthedocs.io/en/stable/CreatingASite/Fusion/InsideFusion.html?highlight=documentnode#default-context-variables

${q(node).parent()... würde übrigens auch funktionieren, oder ${q(node).closest(...)} aber mit documentNode bist Du auf der sicheren Seite