Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 22. August 2017 12:59

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

[GELÖST] Inhalte für Formbuilder mit Smarty-Session weitergeben

Hallo zusammen,

ich hoffe, der Titel passt halbwegs.
Es soll für verschiedene Events (ein Event je Seite) ein einfaches Anfrageformular erstellt werden.
Das Event selbst kann ich ja, wenn auch nicht perfekt, per smarty.get.xxx übergeben/im Formular übernehmen.
Es soll allerdings auch im Seitentitel auftauchen - dies funktioniert, so lange man das Formular nicht neu lädt bzw. falsch/unvollständig ausgefüllt hat. Dann kommen die üblichen Hinweise auf Pflichtfelder und smarty.get.xxx ist leer und der Titel erscheint nicht.
Damit nicht genug. Jedes Event hat diverse Infos, die ebenfalls in der Mail enthalten sein sollen (content-Blöcke).
Um nicht für jedes Event ein eigenes Formular aufzubauen, arbeite ich auch hier mit smarty.get.xxx und einem hidden-field. Allerdings sieht das in der Mail nicht wirklich toll aus, da ich die html-Tags entfernen muss.
Jetzt dachte ich mir, ich kann die Daten doch in der Session speichern und so dauerhaft auf die Daten zugreifen.

Allerdings finde ich nur Hinweise, wie man in PHP Daten in die Session speichert und diese dann per Smarty abruft (habe ich selbst schon gemacht). Aber ich komme mit meinen Kenntnissen in PHP nicht an die Inhalte und mit meinen Kenntnissen in Smarty nicht an smarty.session :-(
Was tun? Gibt es evtl. auch noch einen anderen Ansatz? Da ich für den Zugriff auf die Inhaltsblöcke ohnehin mit der ToolBox arbeite, bräuchte ich also im Grunde doch sogar nur das alias "mitschleifen", oder?

Beitrag geändert von jeff1980 (01. Mai 2019 05:39)

Offline

#2 22. August 2017 13:43

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

Re: [GELÖST] Inhalte für Formbuilder mit Smarty-Session weitergeben

roll
Hab's wohl gefunden ... tbSessionSet
Manchmal beißt einen die Lösung ...

Offline

#3 30. April 2019 13:11

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

Re: [GELÖST] Inhalte für Formbuilder mit Smarty-Session weitergeben

Leider muss ich das noch mal ausgraben.
Grundsätzlich funktioniert es.
Aber ich möchte nun gerne auch ein zweites Feld mit übergeben (das Datum). Das klappt auch - allerdings lässt sich das Formular nicht absenden bzw. setzt sich bis auf den Titel zurück.
Hier mal ein Beispiel: https://www.kulturvergnuegen.com/progra … tmund.html
Einfach bei einem Datum auf "Jetzt buchen" klicken. Ausgefüllt werden Veranstaltungsname (über den übergebenen Alias und

[== Smarty ==]
{tbSessionSet name='ses_alias' value=$smarty.get.alias}
{capture name='event' assign='event'}{tbtools::getPageTitle($smarty.session.ses_alias)} - {tbtools::getPageContent($smarty.session.ses_alias,'headline_1')} am {$event_date}{/capture}

Der Aufruf vom Formbuilder sieht so aus:

[== Smarty ==]
{FormBuilder form='buchungsanfrage_verbindlich' value_fld42=$event value_fld69=$event_date}

{$event_date} habe ich wie {$event} zusammengebaut:

[== Smarty ==]
{tbSessionSet name='ses_date' value=$smarty.get.date}
{capture name='event_date' assign='event_date'}{$smarty.get.date}{/capture}

Aber es klappt so nicht. Habe schon die URL versucht anzupassen (? statt &) und das Datumsformat zu ändern (- statt .). Ohne Erfolg.
Übermittle ich das Datum nicht, klappt das Absenden ohne Probleme.

Bin mit meinem Latein Smarty am Ende ...

Offline

#4 30. April 2019 15:43

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] Inhalte für Formbuilder mit Smarty-Session weitergeben

Zumindest die URL stimmt in der aktuellen Umsetzung nicht. Beim ersten URL-Parameter muss ein ? stehen und kein &.

Das Verhalten des Formulars ist schon speziell. Kannst du das Formular als XML exportieren und hier posten oder mir senden?

Welche FormBuilder Version hast du im Einsatz?


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#5 30. April 2019 16:30

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

Re: [GELÖST] Inhalte für Formbuilder mit Smarty-Session weitergeben

Die URL habe ich schon mal angepasst, macht allerdings keinen Unterschied.
Die XML findest Du hier: https://www.dropbox.com/s/7ti2uoa7d64vt … l.zip?dl=0
(hoffe, es klappt)

CMSms: 1.12.2 (mit Anpassungen für PHP 7.2)
Formbuilder: 0.8.1.6
PHP 7.2.16

Ich habe es vor einigen Monaten schon mal versucht, damals noch unter PHP 5.6 mit den gleichen Fehlern. Ich vermute, dass es da schon mal nicht dran liegt.

Vielen Dank schon mal im Voraus :-)

Offline

#6 30. April 2019 21:35

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] Inhalte für Formbuilder mit Smarty-Session weitergeben

Ich habe nun bei mir getestet. Das Verhalten kann ich so reproduzieren. Ich habe es soweit gebracht, dass ich das Formular absenden kann:

Feld 1: kein Wert
Feld 2: Wert

nächstes Absenden (ohne Seite neu zu laden)

Feld 1: Wert
Feld 2: kein Wert

Ich schätze mal, dass dies ein Bug in Formbuilder ist. Getestet mit PHP 5.6.

Ich habe deshalb meine Lösung mit Javascript aufgebaut:

=== Inhalt der Seite === (WYSIWYG deaktiviert)
{FormBuilder form='buchungsanfrage_verbindlich'}

<script>
document.getElementById("event_name").value = '{$event}';
document.getElementById("date").value = '{$smarty.session.ses_eventdate}';
</script>

Im Tab Optionen habe ich im Feld "Seitenspezifische Smarty-Daten:" folgende Daten

{if isset($smarty.get.alias)}
  {tbSessionSet name='ses_alias' value=$smarty.get.alias}
{/if}
{if isset($smarty.get.date)}
  {tbSessionSet name='ses_eventdate' value=$smarty.get.date}
{/if}
{capture name='event' assign='event'}{tbtools::getPageTitle($smarty.session.ses_alias)} - {tbtools::getPageContent($smarty.session.ses_alias,'headline_1')} am {$smarty.session.ses_eventdate}{/capture}

[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#7 01. Mai 2019 05:42

jeff1980
Server-Pate
Ort: Dortmund
Registriert: 26. November 2010
Beiträge: 630

Re: [GELÖST] Inhalte für Formbuilder mit Smarty-Session weitergeben

Super, vielen Dank. Es klappt wunderbar. Da muss man erst mal drauf kommen ... ich habe den Fehler die ganze Zeit bei mir gesucht und bin fast durchgedreht, schließlich wurde ja immer alles korrekt übermittelt.
Vielen, vielen Dank  smile

Offline

#8 01. Mai 2019 05:57

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: [GELÖST] Inhalte für Formbuilder mit Smarty-Session weitergeben

smile  Freut mich, dass ich helfen konnte.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline