Kontaktformular auf mehreren Seiten anzeigen

Hallo,

Ich versuche momentan das Kontaktformular auf mehreren Seiten im Footer anzuzeigen.

Momentan wird das Formular aber nur auf der original Seite angezeigt, die mir auch im Backend, das Kontaktformular vorgibt

Link zum Formular: shopware.php?sViewport=ticket&sFid=5

Anscheinend findet der Server nur auf dieser Webseite die Werte, die er für die Variablen einsetzen soll (textbox und titel) auf den anderen Seiten findet er für die Variable

$sSupport.sElements[$sKey].typ

nichts.

 

Ich habe bereits folgendes probiert:

  • PHP File, wo Variablen deklariert werden manuell included

  • Im Backend in der Link Adresse von den anderen Seiten den oben gezeigten Link eingefügt

  • Die Values, die für die Variablen ausgespuckt werden sollen manuell gesucht

Alle drei Aktionen waren aber erfolglos…

 

Ich hoffe mir kann irgendjemand helfen.

Viele Grüße,

Max Ko.

 

Hier noch zwei Bilder. Das erste zeigt, wie es unter dem oben gezeigten Link aussieht und das zweite, wie es auf jeder anderen Seite aussieht

http://img5.fotos-hochladen.net/uploads/kontaktformular2embzn7rfj.png

http://img5.fotos-hochladen.net/uploads/kontaktformularukxcfroa81.png

Hi, der Controller für die Formulare/Variablen müsste auf die Listing, Detail, Custom, Account … -Seiten erweitert werden.

1 „Gefällt mir“

@brettvormkopp schrieb:

Hi, der Controller für die Formulare/Variablen müsste auf die Listing, Detail, Custom, Account … -Seiten erweitert werden.

Wie schaffe ich das? :) 

Du könntest ein Plugin schreiben dass sich auf die Aufrufe der entsprechenden Controller registriert und die benötigten Variablen an das Template reicht.

hi @hsoebbing‍ . Hast du dazu mal ein Beispiel, ggf eine Doku? Danke.

Ein konkretes Beispiel für diesen Use-Case gibt es imho noch nicht. Prinzipiell könnte es aber etwas so aussehen:

  • Registrierung auf ein breites PostDispatch-Frontend-Event (Shopware events)
  • Im Callback prüfen ob es nötig ist die Parameter anzuhängen (wenn einer der relevanten Controller aufgerufen wurde und es ein GET-Request ist) (Shopware events)
  • Wenn alles passt, dann die entsprechenden Variablen laden und an das Template reichen (Using global variables in templates)

Je nachdem wie aufwändig die Variablen zu generieren und wie generisch sie benannt sind könnte es auch reichen sie einfach IMMER an das Template zu reichen und sich die Prüfungen zu sparen.

1 „Gefällt mir“

@hsoebbing schrieb:

Je nachdem wie aufwändig die Variablen zu generieren und wie generisch sie benannt sind könnte es auch reichen sie einfach IMMER an das Template zu reichen und sich die Prüfungen zu sparen.

Erstmal Danke für die Hilfe.

Ich bin nun allerdings etwas aufgeschmisse:

Woher weiß ich, was ich bei dem example plugin ändern muss

/**
 * @param \Enlight_Controller_ActionEventArgs $args
 */
public function onPostDispatch(\Enlight_Controller_ActionEventArgs $args)
{
    $args->getSubject()->View()->assign('sUserloggedIn', Shopware()->Modules()->Admin()->sCheckUser());
}

Ich möchte nicht die Variable sUserloggedIn haben, sondern sSupport. Allerdings muss ich nach dem Komma ja eine Art Pfad angeben. Wie finde ich diesen Pfad heraus?