Strony:

[plugin] kontakt z ustawieniami w panelu bez iframe

trzykas

Avatar: trzykas

2011-03-21 22:09

Witam serdecznie. Postanowiłem się podzielić swoim małym i praktycznym formularzem kontaktowym zarządzanym z poziomu panelu administracyjnego.
Podczas dodawania strony będziemy mieli do wyboru nowy szablon o nazwie pages_kontakt.tpl i po jego wybraniu na danej stronie zostanie wyświetlony formularz kontaktowy z walidacją za pomocą javascriptu, formularz obsługuje wiele języków.
Adres e-mail na który ma zostać wysłana wiadomość jest w panelu administracyjnym w konfiguracji pod pozycją email.

1. otwieramy plik templates\admin\settings.tpl
po pozycji


      
<!-- description end -->


wstawiamy


       
<!-- email start -->
       <
tr class="l1">
        <
th>
          
email
        
</th>
        <
td>
          <
input type="text" name="email" value="$config[email]" size="70" maxlength="200" class="input" />
        </
td>
      </
tr>
      <!-- 
email end -->



2. otwieramy plik templates\pages_default.tpl kopiujemy jego całą zawartość i wklejamy ją do nowego pliku, który nazywamy pages_kontakt.tpl i zapisujemy w tym samym katalogu
następnie w pages_default.tpl dodajemy na samym końcu po


<!-- END BANNER -->


następujący kod:


<!-- BEGIN CONTACT_FORM -->

<!-- 
END CONTACT_FORM -->
<!-- 
BEGIN CONTACT_FORM_MSG -->

<!-- 
END CONTACT_FORM_MSG -->



3. w nowo utworzonym pliku pages_kontakt.tpl dokonujemy następujących zmian:
ok lini 4 po


  $sTxtSize


wstawiamy:


  $sContactForm


następnie na samym końcu pliku po


<!-- END BANNER -->


wstawiamy


<!-- BEGIN CONTACT_FORM -->
<
div id="kontakt">
<
script language="JavaScript">
function 
FormCheck(){
if (
document.formularz.tresc.value == "$lang['message']"){alert("$lang['msg_no']");return false;}
if (
document.formularz.imie.value == "$lang['imie']"){alert("$lang['imie_no']");return false;}
if (
document.formularz.email.value == "$lang['email']") {
    
alert("$lang['nae']");return false;
    } else {
    if (
document.formularz.email.value != "$lang['email']") {
        if (
document.formularz.email.value.indexOf("@")==-|| document.formularz.email.value.indexOf(".")==-|| document.formularz.email.value.indexOf(" ")!=-|| document.formularz.email.value.length<6) {
            
alert("$lang['mail_no']");return false;
        }
    }
}    
}

function 
clearText(field){
 
    if (
field.defaultValue == field.valuefield.value '';
    else if (
field.value == ''field.value field.defaultValue;
 
}
</script>
    
     
<form action="$aData[sLinkName]" name="formularz" method="post" onsubmit="return FormCheck()" style="margin:0;">
<input type="hidden" name="act" value="kontakt">
$sContactFormMsg
<table border="0">
<tr><td><textarea name="tresc" rows="5" onFocus="clearText(this)" onBlur="clearText(this)" value="$lang['message']" >$lang['message']</textarea></td></tr>
<tr><td><input  name="imie" onFocus="clearText(this)" onBlur="clearText(this)" value="$lang['imie']" ></td></tr>
<tr><td><input  name="email" onFocus="clearText(this)" onBlur="clearText(this)" value="$lang['email']" ></td></tr>
<tr><td><input type="submit" value="$lang['send']"  ></td></tr>
</table>

</form>
</div>
<!-- END CONTACT_FORM -->
<!-- BEGIN CONTACT_FORM_MSG -->
<table border="0">
<tr><td align="center"><strong>$lang['ok']</strong> </td></tr>
</table>
<!-- END CONTACT_FORM_MSG -->



4.otwieramy plik actions_client\p.php

po lini (około 47) dokładnie za


    $sPages 
= isset( $aData['sPages'] ) ? $oTpl->tbHtml$aData['sTemplate'], 'PAGES' ) : null;



wstawiamy:


/*
    * Contact Form by trzykas@gmail.com
    */
    
$sContactForm =  $oTpl->tbHtml$aData['sTemplate'], 'CONTACT_FORM' );
    if (
$_POST['act'] == 'kontakt') {


    
$to      $config['email'];
    
$subject "Formularz kontaktowy ze strony WWW ";
            
    
$headers  "MIME-Version: 1.0\r\n";
    
$headers .= "Content-type: text/html; charset=utf-8\r\n";
    
$headers .= "From:  <".$to.">\r\n";


    
$message '
    <html>
    <head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body>
    <table align="center" width="100%">
    <tr><td align="right" bgcolor="#eeeeee" nowrap>Imię i Nazwisko: </td><td width="100%">'
$_POST['imie'] .'</td></tr>
    <tr><td align="right" bgcolor="#eeeeee">E-mail: </td><td>'
$_POST['email'] .'</td></tr>
    <tr><td align="right" bgcolor="#eeeeee">Treść: </td><td>'
$_POST['tresc'] .'</td></tr>
    </table>
    </body></html>'
;
    
$sContactFormMsg $oTpl->tbHtml$aData['sTemplate'], 'CONTACT_FORM_MSG' );
    
$sContactForm =  $oTpl->tbHtml$aData['sTemplate'], 'CONTACT_FORM' );

    if (
mail($to"=?utf-8?B?".base64_encode($subject)."?="$message$headers)) { echo '<div class="msg">'.$msg.'</div>'; }    
            unset(
$msg);
            }

    else {
        
$sContactForm =  $oTpl->tbHtml$aData['sTemplate'], 'CONTACT_FORM' );
        }
    
/*
    * Contact Form by trzykas@gmail.com
    */        



5. otwieramy plik lang\pl.php oraz wszystkie inne tłumaczenia z tego katalogu i dodajemy do nich

po (ok linii 8) a dokładnie po


$lang
['Subpage_show_2'] = "Lista (nazwa, opis, zdjęcie)";



taki kod


/*
* Contact Form by trzykas@gmail.com
*/
 
$lang['msg_no'] = "Proszę podać treść wiadomości.";
 
$lang['email'] = "E-mail"
 
$lang['message'] = "Wiadomość"
 
$lang['nae'] = "Proszę podać adres E-mail.";
 
$lang['mail_no'] = 'Proszę podać adres E-mail we właściwej formie.';
 
$lang['imie'] = 'Imię i Nazwisko';
 
$lang['imie_no'] = 'Proszę podać Imię i Nazwisko';
 
$lang['send'] = 'wyślij';
 
$lang['cancel'] = 'anuluj';
 
$lang['ok'] = 'Wiadomość została przesłana';



6. otwieramy plik config\general.php
po około 21 linii a dokładnie po


$config
['hidden_shows'] = false;



wstawiamy


$config
['email'] = "twój@adres.pl";




Koniec

adres można w każdej chwili zmienić w panelu administracyjnym w zakładce settings/konfiguracja

życze miłego dnia

» Quick.Cms v3.x

trzykas

trzykas

Avatar: trzykas

2011-03-21 22:11

demo
http://ahtak.nspace.pl/qcms/pl,kontakt,2.html

trzykas

trzykas

Avatar: trzykas

2011-03-21 22:15

byłbym zapomniał o stylach :)

7. otwieramy plik templates\plugins.css

po


/*
Quick.Cms default plugins stylesheet
/*/



wstawiamy


/*Contact form*/
#kontakt {float: right;clear: both;margin-left: 10PX;margin-bottom: 10px;text-align: center;padding: 10px;background: #F3F2F1;border:1px solid #D4D0C8;}
#kontakt form, #kontakt table { background:none;     font: 11px Tahoma; }
#kontakt input {width:200px;border:1px solid black; background:none;font: 11px Tahoma;padding:3px;}
#kontakt textarea {width:200px;border:1px solid black; background:none; font: 11px Tahoma; overflow:hidden;padding:3px;}
#kontakt input[type=submit] {width:100px;border:1px solid black; background:none;float:right; font: 11px Tahoma;padding:3px;}

trzykas

euphoria-art

Avatar: euphoria-art

2011-03-21 22:54

Dzięki wielkie że się podzieliłeś. W którym dokładnie miejscu zmienia się kolor czarny tabeli?

trzykas

Avatar: trzykas

2011-03-21 22:56

#kontakt input {width:200px;border:1px solid black; background:none;font: 11px Tahoma;padding:3px;}
#kontakt textarea {width:200px;border:1px solid black; background:none; font: 11px Tahoma; overflow:hidden;padding:3px;}
#kontakt input[type=submit] {width:100px;border:1px solid black; background:none;float:right; font: 11px Tahoma;padding:3px;}

trzykas

trzykas

Avatar: trzykas

2011-03-21 23:16

testowane tylko na wersji freeware 3.0 bez modyfikacji

trzykas

jankesmj

Avatar: jankesmj

2011-04-02 11:44

trzykas, jak zmodyfikować formularz aby po otrzymaniu wiadomości w polu OD był email wysyłającego. obecnie jest tak że w polu OD jak i DO jest email podany w konfiguracji w panelu.

trzykas

Avatar: trzykas

2011-04-02 12:04

$headers .= "From: <".$to.">\r\n"; zmień na
$headers .= "From: <".$_POST['email'].">\r\n";

moje niedopatrzenie

trzykas

jankesmj

Avatar: jankesmj

2011-04-02 12:14

pośpieszyłem się z pytaniem...
rozwiązałem problem w ten sposób

zamiast

$headers .= "From:  <".$to.">\r\n";



wpisz

$headers .= "From:  ".$_POST['imie']." <".$_POST[email].">\r\n";



testowane na serwerach poczta.o2.pl i gmail.com
działa poprawnie: w polu OD jest "Imie i Nazwisko <adre@email.pl>"

www.jankes.noskow.info

jankesmj

Avatar: jankesmj

2011-04-02 12:27

nie wiem czy u Was też tak się dzieje...
po wysłaniu wiadomości z IE8 w momencie pojawienia się komunikatu "Wiadomość została przesłana" strona wyświetla się do krawędzi przeglądarki, screen: http://atomy.noskow.info/lewa1.jpg
po ponownym otwarciu strony z menu "kontakt" strona powraca do prawidłowego środkowego wyświetlania.
w FF, Opera, Chrome nie ma tego problemu.

www.jankes.noskow.info

metoda

Avatar: metoda

2011-05-14 12:27

@jankesmj a nawet gorzej, bo menu górne mi się rozjeżdża po przesłaniu wiadomości. Jakieś pomysły na naprawienie tego?

markiz62

Avatar: markiz62

2011-05-19 13:32

mam tak samo czy macie rozwiązanie?

kotek999

Avatar: kotek999

2011-08-12 15:09

czy ktos pomorze?? z rozjechanym menu po wyslaniu wiadomosci??

Pozdr.

kotek999

Makaron

Avatar: Makaron

2011-08-12 15:50

Heh od razu przypomina mi się cytat z basha: "Nie, wszyscy Mazowsze." ;)

I helped? Like it: www.facebook.com/makwebpl

kotek999

Avatar: kotek999

2011-08-12 16:11

makaron, a może tak z pomorza na mazowsze i podasz rozwiazanie

kotek999

kotek999

Avatar: kotek999

2011-08-19 12:36

halo czy kotos znalazl sposob??

kotek999

RobenPL

Avatar: RobenPL

2011-10-14 23:53

Dość ważne - plugin się wysypuje na hostingu home.pl

RobenPL

Avatar: RobenPL

2011-10-14 23:59

Jednak pomyłka. Jeśli można proszę usunąć posta powyżej.

Wysypuje się jak lang/pl.php zmienimy na utf-8 przy utf-8(bez bom) działa.

pablo0102

Avatar: pablo0102

2011-11-12 13:49

Witam
Po pierwsze wielkie dzięki dla trzykasa, bo wszystko śmiga jak należy...

Mam jednak 2 pytanka.
1. Jak zwiększyć ilość możliwych do wpisania znaków w polu "wiadomość"? Teraz jest to bodajże 180.

2. Jak dodać kolejne pola do formularza (np. numer telefonu, adres itp.)
pozdrawiam

sargus

Avatar: sargus

2012-02-07 15:45

pytanie mam drobne co należało by zrobić by były polskie znaki w tekście meila ?

teraz wyskakują krzaki..

www.wczasywladyslawowo.eu

Strony:
Do góry
o nas | kontakt