$T_data["stav"] = "Bude rozeslano: " . date("d.m.Y H:i", $zprava["odeslatPo"]); break; case "PROGRESS": $T_data["stav"] = "Probíhá rozesílání"; break; case "DONE": $T_data["stav"] = "Zpráva rozeslána"; break; } // zobrazujeme jen nadpis, nebudeme obycejne uzivatele informovat o vnitrnich stavech $T_data["stav"] = "Kategorie"; $T_data["menu"] = $menu; $TM->assignBlockVars('msg', $T_data); $query = "SELECT idSkupiny, skupiny.stav FROM zpravy_skupiny\n INNER JOIN skupiny ON skupiny.id = zpravy_skupiny.idSkupiny\n WHERE zpravy_skupiny.idZpravy = " . $zprava["id"]; $qSkupiny = $sqlEngine->query($query); foreach (SQLEngine::getRows($qSkupiny) as $sk) { unset($T_data_skupiny); if ($sk["stav"] == "public") { $T_data_skupiny["filterSkupinaURL"] = getUrl("publicMessages", array("skupina" => $sk["idSkupiny"])); } else { $T_data_skupiny["filterSkupinaURL"] = "javascript: alert('Nejde nastavit filter na privátní skupinu')"; } $T_data_skupiny["nazev"] = $skupiny[$sk["idSkupiny"]]; $TM->assignBlockVars('msg.skupiny', $T_data_skupiny, 1); } $vypsanychZprav++; if ($vypsanychZprav >= $vypsatZprav) { break; } } if ($vypsanychZprav == 0) {
} //pridat skupiny $sql = "SELECT * FROM skupiny\n WHERE stav != 'none' AND id NOT IN (" . implode($uzivatelovy_skupiny, ",") . ")\n ORDER BY nazev"; $rs = $sqlEngine->query($sql); if (SQLEngine::getRowCount($rs) > 0) { $TM->assignBlockVars('uzivatel.edit.pridat', $actionHere, 2); foreach (SQLEngine::getRows($rs) as $skupina) { unset($T_data); $T_data["id"] = $skupina["id"]; $T_data["nazev"] = $skupina["nazev"]; $TM->assignBlockVars('uzivatel.edit.pridat.kategorie', $T_data, 3); } $sql = "SELECT * FROM kanaly"; $rs = $sqlEngine->query($sql); $nastavenyKanal = false; foreach (SQLEngine::getRows($rs) as $kanal) { unset($T_data); $T_data["id"] = $kanal["id"]; $T_data["nazev"] = $kanal["nazev"]; if ($kanal["nazev"] == "email" && $u["email"] != "" || $kanal["nazev"] == "sms" && $u["sms"] != "") { $nastavenyKanal = true; $TM->assignBlockVars('uzivatel.edit.pridat.kanal', $T_data, 3); } } if (!$nastavenyKanal) { $TM->assignBlockVars('uzivatel.edit.pridat', array("kategorieAddDisable" => "disabled=\"disabled\""), 3); } } } } else { $TM->assignBlockVars('uzivatel.vyberUzivatele', array(), 1);
$TM = new MyTemplate(); $TM->setFile('modulY', 'srcTpl/adminNovaZprava_modul.htm'); // ukazeme prefix a zmensime o to mozny pocet znaku zpravy SMS $prefixSMS = $conf["spravce_info"]["subjectPrefix"] . ":"; //vypis seznamu skupiny $TM->assignVars("actionHere", $_SERVER["REQUEST_URI"]); $TM->assignVars("obsahEmailu", isset($_REQUEST["obsah"]) ? $_REQUEST["obsah"] : ""); $TM->assignVars("obsahSMS", isset($_REQUEST["obsahSMS"]) ? $_REQUEST["obsahSMS"] : ""); $TM->assignVars("zbyvaZnakuSms", 160 - strlen($prefixSMS)); $TM->assignVars("prefixSMS", $prefixSMS); $TM->assignVars("datumOdeslat", isset($_REQUEST["odeslatPo"]) ? $_REQUEST["odeslatPo"] : date("Y-m-d H:i")); $sql = "SELECT * FROM skupiny WHERE stav != 'none' ORDER BY stav, nazev"; $rs = $sqlEngine->query($sql); $predchozi_stav = ""; $skupiny_popis = array('public' => "Veřejné", 'private' => "Soukromé"); foreach (SQLEngine::getRows($rs) as $skupina) { unset($T_data); if ($predchozi_stav == "" || $predchozi_stav != $skupina["stav"]) { $predchozi_stav = $skupina["stav"]; $T_data["stav"] = $skupiny_popis[$skupina["stav"]]; $TM->assignBlockVars('skupiny', $T_data); } $T_data["id"] = $skupina["id"]; $T_data["nazev"] = $skupina["nazev"]; $T_data["selected"] = isset($_REQUEST["skupina"][$skupina["id"]]) ? "selected=\"selected\"" : ""; $TM->assignBlockVars('skupiny.radek', $T_data, 1); } if (isset($chyba)) { unset($T_data); $T_data['textChyby'] = $chyba; $TM->assignBlockVars('ERROR', $T_data);
function vypis($bazarId = 0, $nazevSablony = "", $order_by = "nazev", $order_type = "DESC") { $where = ""; if ($nazevSablony != "") { $where .= " AND nazev='" . $nazevSablony . "'"; } //nacti defaultni sablony - bazarId=0 $sql = "SELECT sablony_zprav.* FROM sablony_zprav WHERE 1=1 and bazarId=0 " . $where . " order by " . $order_by . " " . $order_type; $rs = $this->db2->query($sql); foreach (SQLEngine::getRows($rs) as $row) { //$row["body_html"]=str_replace('\"','"',$row["body_html"]); $out[$row["nazev"]] = $row; } //pridej zbytek filtru if ($bazarId != 0 and $bazarId != "") { $where .= " AND bazarId=" . $bazarId; } //ted nacti a prepis aktualnim zaznamem $sql = "SELECT sablony_zprav.* FROM sablony_zprav WHERE 1=1 " . $where; $rs = $this->db2->query($sql); foreach (SQLEngine::getRows($rs) as $row) { //$row["body_html"]=str_replace('\"','"',$row["body_html"]); $out[$row["nazev"]] = $row; } return $out; }
/** * funkce pro vypis feedbacku * @param <type> $filtr filtr=array( * hodnoceny_id - id hodnoceneho uzivatele * hodnotici_id - id hodnoticiho uzivatele * ) * @return <type> \ */ function feedbackVypis($filtr) { $sql = "select hodnotil_id,concat(uzivatel.jmeno,' ',uzivatel.prijmeni) as hodnotil_nazev,popis,uzivatel_feedback.hodnoceni,uzivatel_feedback.cas from uzivatel_feedback left join uzivatel ON uzivatel.id=hodnotil_id where hodnoceny_id='" . $filtr["hodnoceny_id"] . "' order by cas desc"; $rs = $this->db2->query($sql); return SQLEngine::getRows($rs); }
foreach (SQLEngine::getRows($rs) as $skupina) { unset($T_data); if ($predchozi_stav == "" || $predchozi_stav != $skupina["stav"]) { $T_data["hlavickaKanaly"] = $hlavickaKanaly; $predchozi_stav = $skupina["stav"]; $T_data["stav"] = $skupiny_popis[$skupina["stav"]]; $TM->assignBlockVars('skupinySetup.stav', $T_data, 1); } $T_data["id"] = $skupina["id"]; $T_data["nazev"] = $skupina["nazev"]; $T_data[$skupina["stav"] . "Check"] = "selected=\"selected\""; $TM->assignBlockVars('skupinySetup.stav.radek', $T_data, 2); //ceny kanalu $skupinyKanaly = "SELECT * FROM skupiny_kanaly WHERE idSkupina = ?"; $rs_skupinyKanaly = $sqlEngine->query($skupinyKanaly, array($skupina["id"])); foreach (SQLEngine::getRows($rs_skupinyKanaly) as $k) { //if(!is_int($k["idKanal"])) continue; $idKanal = $k["idKanal"]; $kanalySeznam[$idKanal]["skupCena"] = $k["cenaZaZpravu"] / 100; } foreach ($kanalySeznam as $id => $k) { unset($T_data); $T_data["idSkupiny"] = $skupina["id"]; $T_data["cena"] = $kanalySeznam[$id]["skupCena"]; $T_data["idKanalu"] = $id; $TM->assignBlockVars('skupinySetup.stav.radek.cenaKanaly', $T_data, 3); $kanalySeznam[$id]["skupCena"] = 0; } } if (isset($chyba)) { unset($T_data);
foreach ($vybranyKanal as $i => $v) { $vybranyKanal[$i] = -1; } } // nacteme skupiny dostupne jen po schvaleni spravce $sql = "SELECT * FROM skupiny \n WHERE stav = 'private'"; $rs = $sqlEngine->query($sql); foreach (SQLEngine::getRows($rs) as $row) { unset($T_data); //seznam vybranych kanalu $rs_viceKanalu = $sqlEngine->query("SELECT * FROM uzivatele_skupiny WHERE idUzivatel = ? && idSkupina = ?", array($_SESSION["user"]["id"], $row["id"])); // muzeme zobrazit jen ty co jsou prideleny spravcem, uzivatel si VIP sam vybrat nemuze if (SQLEngine::getRowCount($rs_viceKanalu) == 0) { continue; } foreach (SQLEngine::getRows($rs_viceKanalu) as $kanal) { $vybranyKanal[$kanal["kanal"]] = 0; } $T_data['skupina_nazev'] = $row["nazev"]; $T_data['idSkupiny'] = $row["id"]; $is_email_ok ? $T_data['disable_email'] = "" : ($T_data['disable_email'] = "disabled"); $T_data['option_email'] = get_option($vybranyKanal[0], $cenaKanal[$row["id"]][0]); // zatim je defaultne uzivateli zakazano nastavovat SMS, pouze admin // ($is_sms_ok ? $T_data['disable_sms'] = "" : $T_data['disable_sms'] = "disabled"); $T_data['disable_sms'] = "disabled"; $T_data['option_sms'] = get_option($vybranyKanal[1], $cenaKanal[$row["id"]][1]); $TM->assignBlockVars('table_B.row_B', $T_data, 1); foreach ($vybranyKanal as $i => $v) { $vybranyKanal[$i] = -1; } }
$T_data['idSkupiny'] = $row["id"]; if ($row["idSkupina"] == 0) { $nastaveno = -1; } else { $nastaveno = 0; } $is_email_ok ? $T_data['disable_email'] = "" : ($T_data['disable_email'] = "disabled"); $T_data['option_email'] = get_option($nastaveno, $kanaly[1]); $is_sms_ok ? $T_data['disable_sms'] = "" : ($T_data['disable_sms'] = "disabled"); $T_data['option_sms'] = get_option(-1); $TM->assignBlockVars('table_A.row_A', $T_data, 1); } // nacteme skupiny dostupne jen po schvaleni spravce $sql = "SELECT usk.*,sk.* FROM uzivatele_skupiny AS usk LEFT JOIN skupiny AS sk ON sk.id = usk.idSkupina WHERE usk.idUzivatel = ? AND sk.stav = 'private'"; $rs = $sqlEngine->query($sql, array(2)); $rows = SQLEngine::getRows($rs); foreach ($rows as $row) { unset($T_data); $T_data['skupina_nazev'] = $row["nazev"]; $is_email_ok ? $T_data['disable_email'] = "" : ($T_data['disable_email'] = "disabled"); $T_data['option_email'] = get_option(array(-1, 0)); $is_sms_ok ? $T_data['disable_sms'] = "" : ($T_data['disable_sms'] = "disabled"); $T_data['option_sms'] = get_option(array(-1)); $TM->assignBlockVars('table_B.row_B', $T_data, 1); } //if (!$is_sms_ok) $chyba = "Doplňte prosím svoje SMS číslo"; if (!$is_email_ok) { $chyba = "Nastavte svoji platnou emailovou adresu, jinak nebudou dostupné žádné volby pro nastavení"; } if (isset($chyba)) { unset($T_data);
if (SQLEngine::getRowCount($rs) > 0) { continue; } // neni zamek, vytvorime ho a muzeme zacit $sql = "INSERT INTO scriptLockLog SET scriptName = ? , dbName = ? , startTime = NOW()"; $rs = $sqlEngine->query($sql, array("sender.php", $conf["sqlconn"][$zakaznik]["dbname"])); $sql = "SELECT * FROM spravce_info"; $rs = $sqlEngine->query($sql); unset($conf["spravce_info"]); $conf["spravce_info"] = SQLEngine::getFirstRow($rs); //vytvoreni seznamu zprav a prirareni je k uzivatelum, kategoriim, kanalum $selMsg = "SELECT zpravy.id as zpravyID, uzivatele.email, uzivatele.sms, uzivatele.ID as uID, uzivatele.login, uzivatele_skupiny.cena, \n uzivatele_skupiny.hradi, skupiny.nazev, text AS obsahEmail, textSMS AS obsahSMS, odeslatPo, kanal, zpravy.stav\n FROM zpravy\n INNER JOIN spravce_admini ON spravce_admini.id = zpravy.vytvoril\n INNER JOIN zpravy_skupiny ON zpravy_skupiny.idZpravy = zpravy.id\n INNER JOIN skupiny ON skupiny.id = zpravy_skupiny.idSkupiny\n INNER JOIN uzivatele_skupiny ON uzivatele_skupiny.idSkupina = skupiny.id\n INNER JOIN uzivatele ON uzivatele.id = uzivatele_skupiny.idUzivatel\n INNER JOIN kanaly ON kanaly.id = uzivatele_skupiny.kanal\n LEFT JOIN zpravy_doruceni ON zpravy_doruceni.idZprava=zpravy.id AND zpravy_doruceni.idUzivatel=uzivatele_skupiny.idUzivatel\n WHERE zpravy.stav != 'STOP' && zpravy.stav != 'DONE' && odeslatPo < NOW() && uzivatele.stav = 'active' && ((kanaly.nazev='email' AND uzivatele.email !='') OR (kanaly.nazev='sms' AND uzivatele.sms !='')) AND zpravy_doruceni.odeslano IS NULL\n ORDER BY odeslatPo"; $rs = $sqlEngine->query($selMsg); //pruchodu seznamu zprav na odeslani $odeslane_zpravy = ""; foreach (SQLEngine::getRows($rs) as $z) { //filtrace - pokud je v tabulce zpravy_doruceni uz zpravu neodesila $qDoruceni = "SELECT * FROM zpravy_doruceni WHERE idUzivatel = ? && idZprava = ? && idKanal = ?"; $rs = $sqlEngine->query($qDoruceni, array($z["uID"], $z["zpravyID"], $z["kanal"])); if (SQLEngine::getRowCount($rs) > 0) { continue; } //odeslat $status = false; switch ($z["kanal"]) { case 0: //email $mail = new PHPMailer(); $mail->From = $conf["spravce_info"]["odesilatelEmail"]; $mail->FromName = $conf["spravce_info"]["odesilatelName"]; $mail->set('Return-Path', $conf["spravce_info"]["odesilatelEmail"]);