FYI
This Newsletter works fine with other informations published on site, the problem is just for articles schedules for future publishing
Here is newsletter.php
Code: Select all
<?php
function auto_newsletter(){
global $webpath, $path, $prefix, $admin_mail, $title, $lang;
$lang = "latn";
$query = sprintf("SELECT datum FROM %s_logs WHERE sistem ='newsletter' LIMIT 1;", $prefix);
$sql = mysql_query($query) or die(mysql_error());
$data = mysql_fetch_array($sql, MYSQL_ASSOC);
$sql = NULL;
$time = 24;
$Datum = mktime(date("H")-$time, date("i"), date("s"), date("m") , date("d"), date("Y"));
$Datum = strtotime(date('Y-m-d H:i:s', $Datum));
// $data["datum"] = "2008-03-07 08:00:00 ";
$datum = strtotime(date('Y-m-d H:i:s', strtotime($data["datum"])));
$datum2 = date('Y-m-d H:i:s', mktime(date("H", strtotime($data["datum"]))+$time, date("i", strtotime($data["datum"])), date("s", strtotime($data["datum"])), date("m", strtotime($data["datum"])) , date("d", strtotime($data["datum"])), date("Y", strtotime($data["datum"]))));
if ($Datum > $datum) {
// Ovaj blok koristim za promjenu viewa odredjenih vijesti
// $prije = date('Y-m-d H:i:s', mktime(0, 0, 0, date("m")-3, date("d"), date("Y")));
// $query = sprintf("UPDATE %s_vijesti SET prikaz=0 WHERE objavljen < %s AND kategorija=2; ", $prefix, quote_smart($prije));
// mysql_query($query) or die(zabrane("error", "Problem u skrivanju konkursa prije $prije"));
// kraj bloka
$query = sprintf("UPDATE %s_logs SET datum=%s WHERE sistem ='newsletter' LIMIT 1;", $prefix, quote_smart($datum2));
$sql = mysql_query($query);
// u ovom slucaju spamovanje naroda je ok, tako da treba sad skupiti vijesti za slanje
$query = sprintf("SELECT * FROM %s_vijesti WHERE lang='$lang' AND objavljen BETWEEN %s AND %s ORDER BY objavljen DESC; ", $prefix, quote_smart($data["datum"]), quote_smart($datum2));
$data = NULL;
$sql = mysql_query($query);
if (mysql_num_rows($sql) <> 0) {
// postoji li razlog za slanje newslettera
while ($data = mysql_fetch_array($sql, MYSQL_ASSOC)) {
$kat = $data["kategorija"];
if (file_exists($path."/docs/news/".$filename."-mala.jpg")) {
$html .= "<img src='".$webpath."/docs/news/".$filename."-mala.jpg' alt='' title='' align='left' hspace='10' vspace='10' />";
}
$page = modul_page('news_categorised', $data["kategorija"]);
$html .="<p><strong><a href='$webpath/$lang/?page=$page&kat=$kat&vijest=".$data["id"]."'>".$data["naslov"]."</a></strong>";
$text = "<p>".strip_tags($data["text"])."<hr />";
$duzina = 400;
while(substr($text, $duzina, 1)<>" " AND strlen($text)>$duzina){ $duzina++; }
$html .= substr($text, 0, $duzina);
}
$html = "<h1>".convert("newsletter").": ".date('d.m.Y.', $datum)."</h1>".$html;
$query = sprintf("SELECT mail FROM %s_korisnici WHERE alerts>0 AND nivo>0; ", $prefix);
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) <> 0) {
require("$path/data/class.phpmailer.php");
$html = sprintf(convert("notification_header"), $webpath, $webpath, $webpath, $title, $title).$html.convert("notification_footer");
while ($data = mysql_fetch_array($sql, MYSQL_ASSOC)) {
$mejl = new PHPMailer();
$mejl->From = $admin_mail;
$mejl->FromName = $title;
$mejl->Host = "mail.vladars.net";
$mejl->Mailer = "smtp";
$mejl->Subject = convert("newsletter").": ".date('d.m.Y.', $datum);
$mejl->Body = $html;
$mejl->AltBody = $title."\n________________________________\n".strip_tags($html);
$mejl->AddAddress($data["mail"]);
// $mejl->AddBCC("robot@grave-design.com");
// echo $data["mail"], " ";
if(!$mejl->Send()) zabrane("mailer", $data["mail"]);
$mejl->ClearAddresses();
$mejl->ClearAttachments();
}
}
}
}
}
?>