Hallo allerseits,
da ich gerade mit einem ähnlichen Problem zugange bin, will ich meine (bisherige) Lösung hier auch mal reinstellen.
Bei mir geht es (wie in diesem alten Thread hier:
viewtopic.php?f=1&t=15744 ) allerdings um die Newsdetails bei denen das Kontaktformular auch ein paar Informationen der gerade geöffneten "Veranstaltung" übergeben soll. Da die Seite bisher noch ohne JS auskommt, wollte ich das mit PHP lösen.
1. Grundsätzlich ergänze ich im Formular erst mal ein verstecktes Feld wie hier beschrieben:
https://wiki.phpwcms.org/doku.php/deuts ... m-formular
2. Im Template der News ergänze ich bei der Detailansicht die gewünschten Informationen in einem HTML-Kommentar:
Code: Select all
<!-- NEWS_FORMULARDATEN_START[NEWS_TITLE]---------------------------------------------
Termin: {NEWS_TITLE}
[/NEWS_TITLE][NEWS_TOPIC]{NEWS_TOPIC}
[/NEWS_TOPIC][NEWS_SUBTITLE]{NEWS_SUBTITLE}
[/NEWS_SUBTITLE] NEWS_FORMULARDATEN_END //-->
3. Und hier der Teil, an dem ich mir mit meinen bescheidenen PHP-Kenntnissen fast die Zähne ausgebissen hätte. In /template/inc_script/frontend_render/ kommt noch folgende PHP-Datei, um die Daten vom HTML-Kommentar in das vorbereitete Formularfeld zu kopieren:
Code: Select all
<?php
// Aktuelle News-Informationen an Formular uebergeben
//
// Nach Start und Ende der Daten suchen (+24 wegen der Laenge des Start-Tags)
$newsformstart = (strpos($content['all'], 'NEWS_FORMULARDATEN_START')+24);
$newsformend = strpos ($content['all'], 'NEWS_FORMULARDATEN_END', $newsformstart);
if ($newsformend === false) {
// keine Daten gefunden -> Leeren des versteckten Formularfeldes
$content['all'] = str_replace('[%GLOBAL_FORM_SUBJECT%]', '', $content['all']);
} else {
// Daten gefunden -> Entnahme der Daten und Fuellen des versteckten Formularfeldes
$newsformulardaten = substr($content['all'], $newsformstart, $newsformend-$newsformstart);
$content['all'] = str_replace('[%GLOBAL_FORM_SUBJECT%]', $newsformulardaten, $content['all']);
}
Vielleicht hilft es ja jemanden. (Oder mir, falls ich irgendwann wieder vor einem ähnlichem Problem stehe.)
Verbesserungsvorschläge sind natürlich auch willkommen. Gerade bei dem PHP-Teil bin ich mir nicht sicher ob das so vernünftig ist oder nicht einfacher geht.
Grüße
top