Na stránkách HC Litomyšl jsem potřeboval zřídit službu odesílání výsledků odehraných zápasů na několik mailových adres. Kontaktní formulář integrovaný do systému je velmi komfortní a se slušnou spamovou ochranou pomocí validačního kódu, nicméně pro naše potřeby potřebuje trochu poupravit ……
Kde tedy začít?
Jako první je potřeba vytvořit kopie souborů, kterých se to týká, jedná se o soubory:
- contact.php - nazvěme si jej jak potřebujeme, třeba contact1.php je v hlavním adresáři php fusion
- includes/sendmail_include.php , opět název podobný sendmail.include1.php
- locale/Czech/contact.php, opět podobně contact1.php
V české mutaci si přepíšeme, nebo vložíme text, který předchází formuláři podle svých potřeb, můžeme použít i tagy html ke zvýraznění textu apod.
Další úpravy závisí na našich potřebách:
Potřebujeme - li maily odeslat na jinou adresu, než je nastavena v systému, nebo na více adres, musíme v souboru contact1.php ( root adresář) tyto adresy definovat. Jednu jako hlavního adresáta (třeba $mail0) a ostatní jako příjmemce kopií (třeba $mail1, $mail2,$mail3).
kód vypadá asi takto:
$mail0 = "mail01@ndr.cz";
$mail1 = "mail02@seznam.cz";
$mail2 = "mail03@gmail.com";
$mail3 = "mail04@seznam.cz";
$mailall = $mail1.", ".$mail2.", ".$mail3;
Adresy sloučíme do řetězce, který si php mailer potom upraví.
Další změnou v souboru contact1.php je změna připojeného souboru (sendmail_include.php na sendmail_include1.php) na řádku číslo přibližně 50.
require_once INCLUDES."sendmail_include1.php";
na dalším řádku:
if (!sendemail($settings['siteusername'],$mail0,$mailname,$email,$subject, $message,$mailall)) {
změníme z původního $settings['siteemail'] na $mail0 a za $message přibude další proměnná $mailall která určuje adresy příjmeců kopií mailu.
Aby to však všechno fungovalo, ještě musíme upravit samotnou funkci sendemail, která je v souboru includes/sendmail-include1.php.
Původní funkce sendmail_include.php totiž má proměnnou $cc určenou pro další mailové adresy, nastavenu jako prázdnou. Zde je ukázka:
function sendemail($toname, $toemail, $fromname, $fromemail, $subject, $message, $type = "plain", $cc = "", $bcc = "") {
a zde je upravená verze, která umožní portřebné adresy vložit:
function sendemail($toname, $toemail, $fromname, $fromemail, $subject, $message, $cc, $type = "plain", $bcc = "") {
Pokud provedeme všechny tyto úpravy, mělo by vše fungovat naprosto v pohodě.
Ještě jedna maličkost:
Pokud spravujeme více webů se systémem PHPFusion, je potřeba také rozlišit z jekého webu nám formulář na mail přijde, originální contact form totonemé ošetřeno.
Uděláme to např. takto:
V definici textu zprávy ($message) připojíme svůj popis:
Ukázka:
$message = 'Vysledkovy servis pomoci automatickeho formulare z webu hclitomysl.cz : ';
$message .= descript(stripslash(trim($_POST['message'])));
Najděte tedy řádek (asi kolem ř.35) s $ mesage a upravte kód podle vzoru…..





