ACC SHELL
<?php
class poptavka {
var $komuEmail;
var $odEmail;
var $polozka;
var $nazevPolozka;
var $popisPolozka;
var $typPolozka; //text, int, float, soubor
var $delkaPolozka; //pouze pro text(varchar do 255, delsi text)
var $regPolozka; //pouze pro text(varchar do 255, delsi text)
var $chybaPolozka;
var $polozek = 0;
var $prilohy;
var $jazyk;
var $slova;
var $stavOdeslani = false;
//var $ECONF["REGULAR_CESKY_M"] = "áäéëěíóöôúůüýčďňřšťžĺľŕ";
//var $ECONF["REGULAR_CESKY_V"] = "ÁÄÉËĚÍÓÖÔÚŮÜÝČĎŇŘŠŤŽĹĽŔ";
//var $ECONF["REGULAR_CESKY"] = "áäéëěíóöôúůüýčďňřšťžĺľŕÁÄÉËĚÍÓÖÔÚŮÜÝČĎŇŘŠŤŽĹĽŔ";
//konstruktor
function poptavka($j="cz") {
$this->nazevPolozka = array();
$this->popisPolozka = array();
$this->typPolozka = array();
$this->povinnaPolozka = array();
$this->delkaPolozka = array();
$this->regPolozka = array();
$this->polozka = array();
$this->chybaPolozka = array();
$this->jazyk = strtolower($j);
$this->slova["cz"]["odeslat"] = "Odeslat";
$this->slova["en"]["odeslat"] = "Send";
$this->slova["de"]["odeslat"] = "Senden";
$this->slova["cz"]["reset"] = "Vymazat";
$this->slova["en"]["reset"] = "Clear";
$this->slova["de"]["reset"] = "Löschen";
$this->slova["cz"]["odeslano"] = "Dotaz byl úspěšně odeslán.";
$this->slova["en"]["odeslano"] = "Inquiry has been successfully sent.";
$this->slova["de"]["odeslano"] = "Die Nachfrage wurde erfolgreich versendet.";
$this->slova["cz"]["neodeslano"] = "Dotaz se nepodařilo odeslat. Zkuste to prosím znovu.";
$this->slova["en"]["neodeslano"] = "Your question could not be sent. Please try again.";
$this->slova["de"]["neodeslano"] = "Anfrage konnte nicht gesendet werden. Bitte versuchen Sie es erneut.";
}
function nastavKomu($e=""){
$this->komuEmail = $e;
}
function nastavOd($e=""){
$this->odEmail = $e;
}
function pridejPolozku($n="",$p="",$t="",$d=0,$h="",$pov=0,$r=".*",$ch=""){
$this->nazevPolozka[$this->polozek] = $n;
$this->popisPolozka[$this->polozek] = $p;
$this->typPolozka[$this->polozek] = $t;
$this->povinnaPolozka[$this->polozek] = $pov;
$this->delkaPolozka[$this->polozek] = $d;
if($p==1 && $r==".*") $r=".+";
$this->regPolozka[$this->polozek] = $r;
$this->polozka[$this->polozek] = $h;
$this->chybaPolozka[$this->polozek] = $ch;
$this->polozek++;
}
function odesliPoptavku($predmet){
$prilohy = array();
$priloha = "";
$retezec = "";
$boundary = StrToUpper (MD5 (UniqID ("boundary")));
$hlavickyUser = "From: " . $this->komuEmail . "\n";
$hlavickyUser .= "MIME-Version: 1.0\n";
$hlavickyUser .= "X-Mailer: PHP\n";
$hlavickyUser .= "X-Priority: 3\n";
$hlavickyUser .= "Return-Path: " . $this->komuEmail . "\n";
$hlavickyUser .= "Reply-To: " . $this->komuEmail . "\n";
$hlavickyUser .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\n\n";
$hlavickyUser .= "This is a multi-part message in MIME format.\n\n";
$hlavickyUser .= "--" . $boundary . "\n";
$hlavickyUser .= "Content-Type: text/" . "plain" . "; charset=\"utf-8\"\n";
$hlavickyUser .= "Content-Transfer-Encoding: base64\n\n";
$hlavickyAdmin = "From: " . $this->odEmail . "\n";
$hlavickyAdmin .= "MIME-Version: 1.0\n";
$hlavickyAdmin .= "X-Mailer: PHP\n";
$hlavickyAdmin .= "X-Priority: 3\n";
$hlavickyAdmin .= "Return-Path: " . $this->odEmail . "\n";
$hlavickyAdmin .= "Reply-To: " . $this->odEmail . "\n";
$hlavickyAdmin .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\n\n";
$hlavickyAdmin .= "This is a multi-part message in MIME format.\n\n";
$hlavickyAdmin .= "--" . $boundary . "\n";
$hlavickyAdmin .= "Content-Type: text/" . "plain" . "; charset=\"utf-8\"\n";
$hlavickyAdmin .= "Content-Transfer-Encoding: base64\n\n";
$telo = $predmet . "\n";
$telo .= "--------------------------------------\n\n";
foreach ($this->nazevPolozka as $k=>$v) {
if($this->typPolozka[$k] != "soubor") {
if($this->typPolozka[$k]=="radio") {
$pop = $this->popisPolozka[$k];
if($v!="" && $_POST[$pop]!="") $telo .= $v . ": " . $_POST[$pop] . "\n";
}
elseif($this->typPolozka[$k]=="checkbox") {
if($this->polozka[$k]=="on") $pop = "ano";
else $pop = "ne";
if($v!="") $telo .= $v . ": " . $pop . "\n";
}
elseif($this->polozka[$k]!="") $telo .= $v . ": " . $this->polozka[$k] . "\n";
}
}
$hlavicky .= Chunk_split (base64_encode ($telo)) . "\n\n";
foreach ($this->typPolozka as $k=>$v) {
if($v == "soubor") $this->prilohy[] = $k;
}
if($this->prilohy)
foreach ($this->prilohy as $val) {
foreach($_FILES[$this->popisPolozka[$val]]["size"] as $f_key => $f_size) {
if ($f_size>0) {
$fd = fopen ($_FILES[$this->popisPolozka[$val]]["tmp_name"][$f_key], "r");
$retezec = fread ($fd, FileSize ($_FILES[$this->popisPolozka[$val]]["tmp_name"][$f_key]));
fclose ($fd);
$priloha = Chunk_split (base64_encode ($retezec));
$prilohaname = $_FILES[$this->popisPolozka[$val]]["name"][$f_key];
$hlavicky .= "--" . $boundary . "\n";
$hlavicky .= "Content-Type: application/octet-stream\n";
$hlavicky .= "Content-Transfer-Encoding: base64\n";
$hlavicky .= "Content-Disposition: attachment; filename=\"" . $prilohaname . "\"\n\n";
$hlavicky .= $priloha . "\n\n";
}
}
}
$hlavicky .= "--" . $boundary . "--";
$predmet = Chunk_split (base64_encode ($predmet));
$predmet = "=?utf-8?B?$predmet?=";
//Mail - komu, předmět, zpráva, hlavičky
if (Mail ($this->komuEmail, $predmet, "", $hlavickyAdmin.$hlavicky) && Mail ($this->odEmail, $predmet, "", $hlavickyUser.$hlavicky)) {
$this->stav = true;
return $this->slova[$this->jazyk]["odeslano"];
}
else {
$this->stav = false;
return $this->slova[$this->jazyk]["neodeslano"];
}
}
function kontrolaPoptavky(){
foreach ($this->nazevPolozka as $k=>$v) {
if($this->povinnaPolozka[$k]) {
if($this->typPolozka[$k]=="soubor") {
if($this->polozka[$k]["size"][0]==0) $chyba[]=$this->chybaPolozka[$k];
}
else {
if($this->polozka[$k]=="" || !preg_match("/^" . $this->regPolozka[$k] . "$/", $this->polozka[$k])) $chyba[]=$this->chybaPolozka[$k];
}
}
else {
if($this->typPolozka[$k]!="soubor") {
if(!preg_match("/^" . $this->regPolozka[$k] . "$/", $this->polozka[$k]) && $this->polozka[$k]!="") $chyba[]=$this->chybaPolozka[$k];
}
}
}
if(count($chyba)>0) return $chyba;
return true;
}
function vypisPole($typ,$nazev,$hodnota="",$delka=100){
if($delka<=10) $cls = "maly";//82px
else $cls = "velky";
if($typ=="soubor"){
return '<script type="text/javascript">
var pocet_souboru = 1;
function dalsi(){
if(pocet_souboru<10){
$("#dalsi_soubory").html($("#dalsi_soubory").html()+"<br /><input type=\"file\" name=\"'.$nazev.'[]\" value=\"\" />");
pocet_souboru++;
}else alert(\'Bohužel, maximálně lze vložit 10 souborů\');
}
</script>'."
<input type=\"file\" name=\"".$nazev."[]\" value=\"$hodnota\" /> <a href=\"javascript:;\" onclick=\"dalsi()\">Přidat další</a><br /><div id=\"dalsi_soubory\" style=\"margin-top: -15px\"></div>";
}
elseif($typ=="varchar"){
return "<input type=\"text\" name=\"".$nazev."\" class=\"$cls\" value=\"$hodnota\" />";
}
elseif($typ=="checkbox"){
if($hodnota!="") $checked = " checked=\"checked\"";
else $checked = "";
return "<input type=\"checkbox\" name=\"$nazev\" class=\"$cls\"$checked />";
}
elseif($typ=="radio"){
global $$nazev;
if($hodnota==$$nazev) $checked = " checked=\"checked\"";
else $checked = "";
return "<input type=\"radio\" name=\"$nazev\" value=\"$hodnota\"$checked />$hodnota";
}
elseif ($typ=="text") {
return "<textarea name=\"$nazev\" class=\"$cls\">$hodnota</textarea>";
}
return;
}
function vypisPoptavku($cil="",$kam=''){
echo "<div class=\"poptavka\">";
echo "<form action=\"$cil\" method=\"post\" enctype=\"multipart/form-data\">";
if(strlen(trim($kam))>0) echo "<input type=\"hidden\" value=\"".$kam."\" name=\"kam\">";
echo "<table border='0'>";
foreach ($this->nazevPolozka as $k=>$v) {
if($this->nazevPolozka[$k]!="") $vyssi = " class=\"vyssi\"";
else $vyssi = "";
echo "<tr><td$vyssi>".$this->nazevPolozka[$k];
if($this->povinnaPolozka[$k]) echo " <span style=\"color: #c00;\">*</span> ";
echo "</td><td$vyssi>";
echo $this->vypisPole($this->typPolozka[$k],$this->popisPolozka[$k],$this->polozka[$k],$this->delkaPolozka[$k]);
echo "</td></tr>";
}
echo "<tr>
<td colspan=\"2\"> </td>
</tr>";
echo "<tr><td> </td><td style=\"padding-top: 10px; text-align: center;\"><input type=\"submit\" value=\"" . $this->slova["cz"]["odeslat"] . "\"> <input type=\"reset\" value=\"" . $this->slova["cz"]["reset"] . "\"></tr>";
echo "</table>";
echo "</form>";
echo "</div>";
}
}
?>
ACC SHELL 2018