|
Chris
|
 |
« am: 28 Juli 2009, 19:00:57 » |
|
Anbei eine angepasste Mail.php die einige zustätzliche Variablen an die Mail Templates welche unter "mail/de/*.txt|html" liegen übergibt. Die Variablen können wir dann wie gewohnt in den Mailtemplates unterbingen. Die Angaben können über das Backend hinzugefügt werden unter " Backoffice > Prerefences > Contact". Die Mail.php laden wir in den Ordner "classes/Mail.php" - vorher machen wir eine Sicherung der originalen Datei  Nachdem wir die neue Mail.php eingefügt haben stehen uns folgenden Platzhalter in unseren E-Mail Templates zur Verfügung: {shop_logo} {shop_name} {shop_url} {shop_phone} {shop_fax} {shop_city} {shop_state} {shop_country} {shop_code} {shop_email} {shop_addr1} {shop_addr2} {shop_details} Zusätzliche Platzhalter in HTML Mail: {external_css_file} {shop_css_url} {shop_img_url} {shop_img_product_url} {shop_img_category_url} Ich bin kein Freund von modfizierten Dateien, aber hierfür ein Modul zu schreiben wäre mehr oder weniger ubertrieben, daher hier nur eine manuelle Änderung. Kurzes Feedback zu dieser Änderung wäre super. Hinweis: Diese Änderung ist mittlerweile fester Bestandteil der German Edition, es ist kein nachträgliches einspielen der Mail.php mehr notwendig. File: Mail.php Prestashop Version: 1.2 Update:29.07.2009 Hinzugefügt: {shop_code}, {shop_email}, {shop_addr1}, {shop_addr2} Entfernt: {shop_adress1}, {shop_adress2} 31.07.2009 Hinzugefügt: {external_css_file} [Welcher optional einen externen Css File aus "theme/meintheme/css/htmlmail.css" in die Mail einfügt.] 01.08.2009 Hinzugefügt: {shop_css_url}, {shop_img_url}, {shop_img_product_url}, {shop_img_category_url}
|
|
|
|
« Letzte Änderung: 23 Januar 2010, 10:43:24 von Chris »
|
Gespeichert
|
|
|
|
|
Madlen
|
 |
« Antworten #1 am: 28 Juli 2009, 19:02:52 » |
|
Juhu, das ist toll, werde es gleich mal testen. Dazu gleich noch ne kurze Anmerkung  in der Bestellbestätigung habe ich mal "probeweise" etwas hineingeladen - habe ich dir schon mal gezeigt  das man die Produkte dort auch sieht, die man bestellt hat und nicht nur die Preise - eventl. ist das ähnlich umsetzbar - hatte mir da was aus den html. Mails gebastelt. Grad gesehen das ist Beitrag 1000 na dann auf die nächsten 1000
|
|
|
|
« Letzte Änderung: 28 Juli 2009, 19:05:38 von Madlen »
|
Gespeichert
|
|
|
|
|
Lockesoft
|
 |
« Antworten #2 am: 28 Juli 2009, 21:11:23 » |
|
Hallo zusammen. *Lach* hätte ich das doch heut nachmittag noch schnell hochgeladen. hatte das gleiche nämlich schon in Arbeit. So Chris, Deine Version habe ich angetestet, das klappte bei mir nicht ganz. du hast da die zeilen drin stehen: $templateVars['{shop_adress1}'] = htmlentities(Configuration::get('PS_SHOP_ADRESS1'), NULL, 'utf-8');
$templateVars['{shop_adress2}'] = htmlentities(Configuration::get('PS_SHOP_ADRESS2'), NULL, 'utf-8');
in der /Admin/Tabs/Admincontact.php stehen die Teile als PS_SHOP_ADDR1 und PS_SHOP_ADDR2 drin. Wenn die Zeilen dann so aussehen geht das wieder $templateVars['{shop_adress1}'] = htmlentities(Configuration::get('PS_SHOP_ADDR1'), NULL, 'utf-8');
$templateVars['{shop_adress2}'] = htmlentities(Configuration::get('PS_SHOP_ADDR2'), NULL, 'utf-8');
dann habe ich bei mir auch die Postleitzahl ( ADresse ohne PLz, ist doch auch wieder nix *g* und die Shop-E-mail adresse mit reingenommen. Damit gibt es dann auch noch die Variablen {shop_city_code} {shop_email}
so, habe die geänderte Mail.php, sowie zum Testen mal die Contact-Mail-vorlagen angehangen. Ok die mail ist noch mit magentafarbenem Balken, aber da ich jetzt eh die Mails nochmal überarbeiten darf, gibt es den Rest dann morgen :-) Die Installation natürlich wie von Chris bereits beschrieben. genug des postings, schönen Restabend noch. LG Klaus
|
|
|
|
« Letzte Änderung: 29 Juli 2009, 10:38:44 von Chris, Grund: Anhang entfernt: Mail.php, contact.html, contact.txt (Auf Wunsch) »
|
Gespeichert
|
LG Klaus / Lockesoftdiverse Presta-Installationen von 0.81 bis 1.4.x Kids2Keys2012 der Tastenwettbewerb der IFET, für Jung und Alt
|
|
|
|
Chris
|
 |
« Antworten #3 am: 29 Juli 2009, 00:42:23 » |
|
Hi zusammen, danke für deine Rückmeldung Klaus, die falschen Platzhalter habe ich "entsorgt" und dafür die richtigen addr1,addr2 eingebaut. Die Postleitzahl und Emailaddy die du eingebunden hast habe ich übernommen und oben im Posting hinzugefügt. Damit sind jetzt alle Platzhalter original und passen 1:1 zu denen aus der Config, ich denke die werden sich auch so schnell nicht verändern so das man sich die Mailtemplates auch dauerhaft anpassen kann. das man die Produkte dort auch sieht, die man bestellt hat und nicht nur die Preise - eventl. ist das ähnlich umsetzbar Gute Frage, aber eine Übersicht über die bestellten Produkte ist natürlich sinnvoll. Eine Schnelllösung fällt mir da spontan nicht ein, aber: Kommt Zeit kommt Rat 
|
|
|
|
« Letzte Änderung: 29 Juli 2009, 00:52:29 von Chris »
|
Gespeichert
|
|
|
|
|
Lockesoft
|
 |
« Antworten #4 am: 29 Juli 2009, 02:48:35 » |
|
Hallo Chris.
Wenn Du da wieder alles änderst, dann lösch doch bitte meine alten Dateien, die haben nämlich noch die alten Mail-Variablen drin und mehrere verschiedene Versionen das dürfte Durcheinander bringen. Ich selber kann meine Postings hier anscheinend nicht mehr im nachhinein ändern, sonst hätte ich das bereits gemacht. :-) Wenn gewünscht stell ich nachher neue Versionen von den Mail-Vorlagen bereit, nachdem ich vorhin schon alles mehrfach machen durfte, erstmal nur auf Zuruf :-)
In diesem Sinne
Einen schönen Tag noch, bis später
LG Klaus
|
|
|
|
|
Gespeichert
|
LG Klaus / Lockesoftdiverse Presta-Installationen von 0.81 bis 1.4.x Kids2Keys2012 der Tastenwettbewerb der IFET, für Jung und Alt
|
|
|
|
Madlen
|
 |
« Antworten #5 am: 29 Juli 2009, 10:39:23 » |
|
Hallo Chris, habs getestet und es funktioniert  leider kann man wohl nirgens angeben wer der Geschäftsführer oder Inhaber ist bei dem Mail-Variablen...da hat Presta wohl wieder geschlafen Man könnte ja Adresszeile2 dafür missbrauchen nehmen? zumindest wenn man diese nicht benötigt, oder was meint ihr? ah ok man kanns auch bei {shop_details} ((Zeile Shop-Info)) o.ä. einfach mit reinschreiben Platz ist da genug.
|
|
|
|
« Letzte Änderung: 29 Juli 2009, 10:42:58 von Madlen »
|
Gespeichert
|
|
|
|
|
Madlen
|
 |
« Antworten #6 am: 29 Juli 2009, 10:55:48 » |
|
Ah da ist mir noch was aufgefallen also bei Fax und Telefon stehen ja normaler Weise nur Zahlen drin - allerdings werden dann auch nur Zahlen ausgegeben woher soll der Kunde dann wissen was Fax und was Telefon ist?
|
|
|
|
|
Gespeichert
|
|
|
|
|
Chris
|
 |
« Antworten #7 am: 29 Juli 2009, 11:15:00 » |
|
Wenn Du da wieder alles änderst Sorry, aber ich habs extra gestern Nacht noch erledigt bevor jemand auf die Idee kommt seine Templates damit zu befüllen. (Habs aber oben auch als ungetestet angekündigt) Ah da ist mir noch was aufgefallen also bei Fax und Telefon stehen ja normaler Weise nur Zahlen drin - allerdings werden dann auch nur Zahlen ausgegeben woher soll der Kunde dann wissen was Fax und was Telefon ist?
Reicht ja eigentlich auch  Template DE: Faxnummer: {shop_fax} / Rufnummer: {shop_phone} Template EN: Fax: {shop_fax} / Phone: {shop_phone} Template Chinesisch: keine Ahnung ;-) ....
|
|
|
|
« Letzte Änderung: 29 Juli 2009, 18:09:13 von Chris »
|
Gespeichert
|
|
|
|
rumata
Newbie

Beiträge: 24
|
 |
« Antworten #8 am: 29 Juli 2009, 14:42:43 » |
|
A propos Mailtemplates. Es ist nicht ganz korrekt, dass Design-Anpassungen in den HTML-Templates elbst drin sind. Ich denke es macht mehr Sinn, in jeden Mail eine externe css-Datei vom Server einzubinden, z.B. themes/meinthema/css/mail.css. Und komplette Formatierung (cellpadidngs, th, fontcolor etc) darüber laufen zu lassen. Werde das für das aktuelle Projekt gleich mal erledigen 
|
|
|
|
|
Gespeichert
|
|
|
|
|
Chris
|
 |
« Antworten #9 am: 29 Juli 2009, 18:03:02 » |
|
Eine CSS in der die Formatierung für alle HTML Mails steckt finde ich zur Pflege für ein einheitliches Layout gut.
Allerdings blocken einige E-Mail Clienten externe Dateien und Grafiken ganz gern, so das du Pech haben kannst und deine Mail ohne Layout dargestellt wird. (Aber das ist eher ein allgemeines Problem bei HTML Mail)
|
|
|
|
« Letzte Änderung: 29 Juli 2009, 18:05:07 von Chris »
|
Gespeichert
|
|
|
|
|
Lockesoft
|
 |
« Antworten #10 am: 30 Juli 2009, 15:50:27 » |
|
Hallo Zusammen. Wie wäre es dann mit folgender kleinen Modifikation mal wieder in der Mail.php: $templateHtml = file_get_contents($templatePath.$template.'.html');
//Edit: Mail.Css mit in Mail packen HPC http://www.homepage-community.de/index.php?topic=480.0
$templateCSS = file_get_contents($templatePath.'mail.css'); $templateHtml = $templateCSS.$templateHtml;
//End
$templateTxt = strip_tags(html_entity_decode(file_get_contents($templatePath.$template.'.txt'), NULL, 'utf-8'));
wobei die mail.css zur Zeit im /Dein_shop/Mails/ verzeichnis liegt und somit nicht bei allen Mail zum tragen kommen dürfte. Ich wollte sie eigentlich auch im /Dein_shop/css/ oder besser noch im css-verzeichnis des Themas haben, Aber da bin ich anscheinend zu blöd zu. Bisher ist es mir jedenfalls nicht gelungen, die Datei von dort in die Mail zu bekommen. Im Moment hilft da nur, die mail.css bei Bedarf auch in die mail-Ordner der Module zu kopieren. Egal, hier klappt das so bei mir immerhin schon mal:-) Jedenfalls sind die Style-anweisungen so in der Mail, können relativ zentral geändert werden und sollten auch nicht vom Mail-Client geblockt werden können. Kleiner Nachteil ein bereits abgesendete Mail bekommt von evtuellen Änderungen natürlich nichts mit. Aber ist das wirklich ein Nachteil? Ich denke eher, dass die Kunden.... Nun sagen wir mal etwas sparsam gucken:-) wenn sich bereits existierende Mails auf wundersame Weise ändern. Ob das rechtlich überhaupt ok ist, wenn sowas machbar wäre, ist glaube ich noch eine ganz andere Frage. So, Unten hänge ich mal die : mail.php, ein Archiv mit den bereits überarbeiteten Kontaktmail-vorlagen und der mail.css an und ein Archiv mit den Blocknewslettermail inkl. mail.css an und bitte mal um Feedback, was Ihr davon haltet Vielleicht fällt jemand ja noch etwas eleganteres ein, oder wenigstens, den Weg die maill.css aus einem passenderen Verzeichnis einzulesen *g* Noch kurz zur Erläuterung in der Mail.css
|
Kontaktmail_de_mit_css.tar Mail.php blocknewsletter_de_mit_css.tar
|
|
|
Gespeichert
|
LG Klaus / Lockesoftdiverse Presta-Installationen von 0.81 bis 1.4.x Kids2Keys2012 der Tastenwettbewerb der IFET, für Jung und Alt
|
|
|
|
Chris
|
 |
« Antworten #11 am: 31 Juli 2009, 00:16:09 » |
|
Hallo Klaus, die Css nachträglich in die Mail zu stecken ist praktisch. Eine einmal abgesendete Mail sollte sich natürlich nicht mehr ändern und das externe laden wird auch umgangen. Hier mein Vorschlag: Mail.php (Ab Zeile 107) ... ... ... // 30.07.2009 optional external css-file-include if ($configuration['PS_MAIL_TYPE'] == 3 || $configuration['PS_MAIL_TYPE'] == 1){ $templateVars['{external_css_file}'] = file_exists(_PS_THEME_DIR_.'css/htmlmail.css') ? file_get_contents(_PS_THEME_DIR_.'css/htmlmail.css') : '/* Css */'; } // End
... ... ... HTML Mailtemplate<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Message from {shop_name}</title> <style> {external_css_file} </style> </head>... htmlmail.css.element { standard css } Ich habe das einfügen der Css als optionale Variante in Form eines Platzhzhalters integriert. Bei dieser Variante liegt die Css dann wie angesprochen im Template Ordner und wird nur dann genutzt wenn sie dort angelegt wird. Wenn keine externe Css dort hinterlegt ist wird auch keine in die HTML Mail eingebaut. So können wir die HTML Mails ganz normal wie vorher auch bearbeiten und bei Bedarf den Platzhalter {css} einbinden und nebenbei kann jedes Template seine eigene Css für die Mails hinterlegen. Ps.: Ich bin kein Freund von HTML Mail 
|
|
|
|
« Letzte Änderung: 31 Juli 2009, 10:22:21 von Chris, Grund: Platzhalter {css} unbenannt in {external_css_file} »
|
Gespeichert
|
|
|
|
|
Lockesoft
|
 |
« Antworten #12 am: 31 Juli 2009, 03:18:23 » |
|
Hallo Chris. Wie ich ja bereits tippte: Das geht sicher noch eleganter.... :-) Ich habe das einfügen der Css als optionale Variante in Form eines Platzhzhalters integriert. Bei dieser Variante liegt die Css dann wie angesprochen im Template Ordner und wird nur dann genutzt wenn sie dort angelegt wird. Wenn keine externe Css dort hinterlegt ist wird auch keine in die HTML Mail eingebaut. So können wir die HTML Mails ganz normal wie vorher auch bearbeiten und bei Bedarf den Platzhalter {css} einbinden und nebenbei kann jedes Template seine eigene Css für die Mails hinterlegen.
Schön, das ich wenigstens mit der Idee richtig lag, weil Sowas in der Art schwebte mir vor. :-) Du wirst lachen, aber die Idee die ganzen Style-variablen in eine variable zu packen hatte ich auch, aber wie bereits beschrieben, die Inhalte der Datei, egal wie sie heisst bekam ich nicht in die Variable. Wobei ich da auch es mehr mit (_THEME_CSS_DIR_."mail.css") versucht habe, diesen Pfad gibt es angeblich auch... Nun, ich bin in dem Sinne auch kein Programmierer, hab vor Jahrzehnten (zu Z80 Zeiten mal a bissel mit Assembler gespielt) vieles, was Dir oder manch anderem hier sicher in Fleisch und Blut übergegangen ist, les ich mir erst nebenbei an. Und mal ehrlich so was hier, ist schon etwas verschärfter, das ist ja streng genommen nicht nur eine Sprache, sonder eher ein Sprach-Wirr War :-) PHP, JS, Mysql, HTML,CSS aber das ist euch sicher selber klar :-) Also seid gnädig, wenn meine Ideen nicht die hohe Schule der Shopprogrammierung sind :-) Langer Rede, kurzer Sinn. So blöd das klingen mag, ich hab das hier probiert nachzubauen, es mag nicht. Nun verstehe ich zwar mittlerweile ein bischen mehr als nichts, aber so ganz habe ich nicht die Idee, wo es haken könnte. hattest Du das selber bereits getestet? Kann es irgendetwas beim rüberkopieren sein, das ich da einen fehler eingebaut habe? Ok, ich guck da morgen / Nachher nochmal drauf, im Moment sehe ich da eh nur noch hebräische zeichen oder sowas ähnliches:-) IN diesem Sinn eine schöne Nacht und Liebe grüsse Klaus / Lockesoft
|
|
|
|
|
Gespeichert
|
LG Klaus / Lockesoftdiverse Presta-Installationen von 0.81 bis 1.4.x Kids2Keys2012 der Tastenwettbewerb der IFET, für Jung und Alt
|
|
|
|
Chris
|
 |
« Antworten #13 am: 31 Juli 2009, 10:56:21 » |
|
Hi Klaus, Wobei ich da auch es mehr mit (_THEME_CSS_DIR_."mail.css") versucht habe, diesen Pfad gibt es angeblich auch... Der Pfad ist ein absoluter Pfad der relative zum Document Root steht, wenn du versuchst damit die Datei zu öffnen sucht PHP ausgehend vom Root "/" und nicht unterhalb deines Homeverzeichnisses  Hatte mich auch schon gefreut, aber ich denke das Presta die Konstante für die Angabe in den HTML Dateien nutzt, dort sind solche dann wieder erlaubt. So blöd das klingen mag, ich hab das hier probiert nachzubauen, es mag nicht. Ich hab den Ausschnitt oben in die Mail.php als Update eingefügt. Das einzige was ich eben noch geändert habe ist der Name des Platzhalters {css} -> {external_css_file}. Die Mail.php kannst du so bei dir gegen die alte austauschen, alle anderen Sachen bleiben wie vorher. Habs getestet, bei mir hats mit txt, html und Doppelmail (txt+html) geklappt. Eigentlich eine feine Sache, jetzt fehlen nurnoch saubere HTML Schablonen die in möglichst allen Clienten ordentlich dargestellt werden, wie gut das ich kein HTML in der Mail nutze 
|
|
|
|
|
Gespeichert
|
|
|
|
|
Chris
|
 |
« Antworten #14 am: 31 Juli 2009, 11:39:52 » |
|
Da ist mir noch was eingefallen was vllt. beim layouten der HTML Mails mal nützlich sein könnte: ... // 31.07.2009 external path $templateVars['{external_css_url}'] = 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8')._THEME_CSS_DIR_; $templateVars['{external_img_url}'] = 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8')._THEME_IMG_DIR_; $templateVars['{external_img_product_url}'] = 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8')._THEME_PROD_DIR_; $templateVars['{external_img_category_url}'] = 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8')._THEME_CAT_DIR_; ... Damit könnte man dann auch noch optional externe Grafiken, Produkt-, Kategoriebilder und Css Files direkt vom Webpace und passend zum jeweiligen Theme nachladen. Ist zwar etwas riskant und nicht empfehlenswert (haben wir ja oben schon angesprochen), aber vllt. nützt es. Denke schaden können die Platzhalter nicht  ?
|
|
|
|
« Letzte Änderung: 31 Juli 2009, 11:47:19 von Chris »
|
Gespeichert
|
|
|
|
|