Kontaktformular auf details.tpl


#1

Hallo,

ich möchte auf unserer details.tpl ein Kontaktfeld einrichten wo der
Kunde direkte Anfragen an das Produkt stellen kann (soll dann bei jeden Artikel mit aufgerufen werden)
Ich habe mir schon einige Formulare angeschaut, jedoch noch keine Lösung gefunden.
Hat einer eine Idee von euch wie ich das lösen könnte?

Liebe Grüße


#2

hmmm… der mailto-Link gefällt Dir nicht?
Hier wird die globale Shop-Email-Adresse hinterlegt. Alternativ kannst Du theor. zu jedem Produkt einen anderen Ansprechpartner hinterlegen.


Marco Steinhäuser
Community Operator
OXID eSales AG


#3

Danke für deine Antwort :wink:

Nein, das reicht mir nicht. Ich möchte da ein Formularfeld reinbauen. Aber ich bin wohl auf den falschen weg. Mal eben “fix” nen php Formular reinbasteln…mhmmm…des wird wohl nichts :frowning:


#4

Kopiere Dir die contact.php/contact.tpl und ändere sie nach Deinen Wünschen. Auf diese Weise kannst Du zig verschiedene Formulare anlegen.

Tip: Für die Parameterübergabe der form-Felder benutze lieber die Methode, die in user.tpl verwendet wird, d.h. Übergabe als Array und nicht als einzelne Variablen wie in contact.tpl. Damit ist die Anzahl der Felder unbegrenzt.

Ansonsten: Ich habe letztens ein großes Kontaktanfrageformular erstellt; falls Du keine Zeit für eigene Entwicklung hast, kannst Du Dich gerne melden…

Nachtrag:

Wenn das Formular tatsächlich innerhalb der details.tpl stehen soll, würde ich das kurz und schmerzlos mit einem iframe realisieren. Damit bist Du nicht auf Oxid festgelegt. Damit die Seite nicht zu groß wird, würde ich jedoch raten, das Formular auf einer Extraseite anzubieten. Man kann ja einige Felder bereits vorausgefüllt übergeben.

@Marco:
Mailto-Links sind auf modernen Webseiten kaum noch zu finden. Normalerweise möchte man möglichst wenig Email-Adressen veröffentlichen. Daher ist der Wunsch nach separaten Kontaktformularen nicht ungewöhnlich.

Thorsten

www.t-albrecht.de


#5

Ich habs hinbekommen :slight_smile:

Ich lasse das Script extern über cgi auswerten, was voll und ganz seinen anforderungen entspricht.
Trotzdem danke ich euch!


#6

Wird als feature request bearbeitet.

Danke!


Marco Steinhäuser
Community Guide
OXID eSales AG


#7

Hallo,

mir gefaellt das allerdings auch absolut nicht. Ich habe als ersten Schritt das wie folgt geloest.

  1. details.tpl neu eingetragen (mailto auskommentiert)

Zeile 283: <a id=“pcontact” href="[{ oxgetseourl ident=$oViewConf->getSelfLink()|cat:“cl=pcontact” }]" rel=“nofollow”>[{ oxmultilang ident=“DETAILS_PERSPARAM_QUESTIONS” }]</a>

  1. contact.tpl nach pcontact.tpl kopiert und folgendes geaendert:

Zeile 33: <input type=“hidden” name=“cl” value=“pcontact”/>

  1. contact.php nach pcontact.php kopiert und folgendes geaendert:

Zeile 31: class Pcontact extends oxUBase

Zeile 67: protected $_sThisTemplate = ‘pcontact.tpl’;

Damit kommt zumindest erstmal ein Formular zum absenden. Was mir jetzt noch fehlt, wie ich das Subjekt uebergeben kann…

Gruss Uwe


#8

Hallo,

hier noch die Ergaenzung zur Uebergabe des Subjektes:

<a id=“pcontact” href="[{ oxgetseourl ident=$oViewConf->getSelfLink()|cat:“cl=pcontact” }]&c_subject=[{$product->oxarticles__oxtitle->value}] [{$product->oxarticles__oxvarselect->value}]" rel=“nofollow”>[{ oxmultilang ident=“DETAILS_PERSPARAM_QUESTIONS” }]</a>

Gruss Uwe

Hausautomation - Hersteller von 1-Wire ElektronikFotodienst mit umfangreichen Partnerprogrammen


#9

Auch wenn es alles ein wenig alt ist hoffe ich noch auf eine Antwort :wink:

Also…
mit verschiedenen Tabs habe ich es möglich gemacht das Kontaktformular vorerst zu verstecken - klickt der User drauf findet er nun das Anfrageformular.
Ich habe ja, in der Vergangenheit, mit CGI gearbeitet.
Nun möchte ich es wieder gerne über den Shop laufen lassen!
Nun möchte ich noch ein Feature hinzufügen:
Dem Kunde soll es möglich gemacht werden direkt Bilder an die Kontaktanfrage mitzusenden:
Eingabefelder:
Name
Vorname
EMail
Firma
Telefon

Woher kennen Sie uns?
Möchten Sie den Newsletter erhalten?

Ihre Anfrage:
Standart ist drin: Rabattangebot für Artikel [{if $product->oxarticles__oxvarselect->value}][{ $product->oxarticles__oxvarselect->value}][{else}][{ $product->oxarticles__oxtitle->value }][{/if}] (Art.Nr [{ $product->oxarticles__oxartnum->value }])

Jetzt möchte ich aber noch das eine Datei von max. 1 MB anhängen kann!
Und ich das ganze denn per Mail bekomme - inkl. diesem Anhang.

Wie mache ich das am besten??
Habt ihr eine Idee für mich?


#10

Herzlichen Dank für deine Arbeit torro, hat wunderbar geklappt!


#11

torro, auch von mir ein ganz dickes “DANKE” :slight_smile:


#12

Hallo,

hat das schon jemand in das Azurre-Theme 4.6.5 eingebaut?

Ich habe mich daran versucht, erhalte aber nur ein redirekt auf die Startseite.

Eigentlich wurden alle Änderungen durchgeführt, zusätzlich die
"azure/tpl/page/info/pcontact.tpl" angepasst

protected $_sThisTemplate = 'page/info/pcontact.tpl';

PS: Eigentlich sollte das ja mit in die 4.6 eingeflossen sein…
M.E. war es auch in einer Testversion schon drin, denn ich hatte mir dort den Code “gemaust”:confused:

mfg

Gert


#13

Hallo,

da es für mich jedes mal etliches Kopfzerbrechen bedeutet, dies ein zu bauen, habe ich kurz eine Anleitung für die CE 4.7.3 zusammen geschrieben. Da finde ich es besser wieder :smiley:

application/views/azure/tpl/page/details/inc/productmain.tpl Zeile 115 - 117

                        <li>
                           <span>[{mailto extra='id="questionMail"' address=$oDetailsProduct->oxarticles__oxquestionemail->value|default:$oxcmp_shop->oxshops__oxinfoemail->value subject='DETAILS_QUESTIONSSUBJECT'|oxmultilangassign|cat:" "|cat:$oDetailsProduct->oxarticles__oxartnum->value text='DETAILS_QUESTIONS'|oxmultilangassign }]</span>
                        </li>	

ändern in

                        <li>
                           <span>
								<a id="contact" href="[{ oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl=pcontact" }]&c_subject=[{ oxmultilang ident="DETAILS_QUESTIONSSUBJECT" }]: [{$oDetailsProduct->oxarticles__oxtitle->value}] - [{$oDetailsProduct->oxarticles__oxartnum->value}] [{$product->oxarticles__oxvarselect->value}]" rel="nofollow">[{ oxmultilang ident="DETAILS_PERSPARAM_QUESTIONS" }]</a>
								</span>
                        </li>	

Kopieren der application/controllers/contact.php zu application/controllers/pcontact.php

Zeile 32

class Contact extends oxUBase

ändern in

class Pcontact extends oxUBase

“application/views/azure/tpl/page/info/contact.tpl” kopieren in “application/views/azure/tpl/page/info/pcontact.tpl”

Zeile 22

    [{include file="form/contact.tpl"}]

ändern in

    [{include file="form/pcontact.tpl"}]

“application/views/azure/tpl/form/contact.tpl” kopieren in “application/views/azure/tpl/form/pcontact.tpl”

Zeile 8

<input type="hidden" name="cl" value="contact"/>

ändern in

<input type="hidden" name="cl" value="pcontact"/>

PS: Die "productmain.tpl " ist sicher noch zu optimieren, aber hier fehlt mir das know how…

mfg

Gert


#14

Hallo,

ich versuche gerade, diese Anleitung auf einer CE 6.0 umzusetzen. Hier hänge ich zum Schluss an der “application/controllers/contact.php”, die es so nicht mehr gibt. Ich habe dann die “ContactController.php” im Vendor-Verzeichnis gefunden und diese entprechend angepasst.

Ich erhalte einen Link z.B. “index.php?cl=pcontact&c_subject=Fragen%20zum%20Artikel:%20Titel%20-%Nummer”, der beim Aufruf ein ein Redirekt auf die Startseite bringt.

Das “EXCEPTION_LOG.txt” sagt mir “message EXCEPTION_SYSTEMCOMPONENT_CLASSNOTFOUND pcontact”.

Eigentlich habe ich in der “…vendor/oxid-esales/oxideshop-ce/source/Application/Controller/PcontactController.php” die Zeile 18 in
"class PcontactController extends \OxidEsales\Eshop\Application\Controller\FrontendController" geändert.

Wo steckt hier mein Denkfehler?

mfg

Gert


#15

Schau mal hier rein:
VirtualNameSpaceClassMap
EmosAdapter
BackwardsCompatibilityClassMap


#16

Hallo foxido,

ich wurstle mich ja in Vieles rein, aber dass sind für mich erst mal “böhmische Dörfer”…

Ich würde mich freuen, wenn es etwas konkreter wäre…

mfg

Gert


#17

Such in den genannten Dateien mal nach contact. Analog dazu würde ich pcontact einrichten.