Convert($string, $input_encoding, $output_encoding);
}
}
function add_subscriber($cnx, $table_email, $list_id, $add_addr, $table_email_deleted) {
$add_addr = trim(strtolower($add_addr));
$hash = @current($cnx->query("SELECT hash
FROM ".$table_email."
WHERE list_id='".($cnx->CleanInput($list_id))."'
AND email='".($cnx->CleanInput($add_addr))."'")->fetch());
if($hash==''){
$black_listed = @current($cnx->query("SELECT email
FROM ".$table_email_deleted."
WHERE list_id='".($cnx->CleanInput($list_id))."'
AND email='".($cnx->CleanInput($add_addr))."'")->fetch());
if($black_listed==''){
$hash = unique_id($add_addr);
if($cnx->query("INSERT INTO ".$table_email." (`email`, `list_id`, `hash`)
VALUES ('".($cnx->CleanInput($add_addr))."', '".($cnx->CleanInput($list_id))."', '".($cnx->CleanInput($hash))."')")){
return 2;
} else {
return true;
}
} else {
return 3;
}
} else {
return -1;
}
}
function addSubscriber($cnx, $table_email, $table_temp, $list_id, $addr, $hash, $table_email_deleted) {
$addr = trim(strtolower(urldecode($addr)));
$email = @current($cnx->query("SELECT email FROM $table_temp WHERE list_id='$list_id' AND email='$addr' AND hash='$hash'")->fetch());
if ($email!='') {
$cnx->query("INSERT INTO $table_email (`email`, `list_id` , `hash`) VALUES ('$addr', '$list_id','$hash')");
$cnx->query("DELETE FROM $table_temp WHERE email='$addr' AND list_id='$list_id' AND hash='$hash'");
$cnx->query("DELETE FROM $table_email_deleted WHERE email='$addr' AND list_id='$list_id'");
return true;
} else {
return false;
}
}
function addSubscriberMod($cnx, $table_email, $ref_sub_table, $list_id, $addr) {
$addr = trim(strtolower($addr));
$this_mail = $cnx->query("SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr'");
if ((!$this_mail)||count($this_mail)>0) {
return -1;
}
$this_mail = $cnx->query("SELECT email FROM $ref_sub_table WHERE list_id='$list_id' AND email='$addr'");
if ((!$this_mail)||count($this_mail)>0) {
return -1;
}
if (!$cnx->query("INSERT INTO $ref_sub_table (`email`, `list_id`) VALUES ('$addr', '$list_id')")) {
return -1;
}
return true;
}
function addSubscriberDirect($cnx, $table_email, $list_id, $addr) {
$addr = trim(strtolower($addr));
$x = $cnx->query("SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr'")->fetchAll();
if (count($x)>0) {
return false;
} else {
$hash = unique_id($addr);
if ($cnx->query("INSERT INTO ".$table_email." (`email`, `list_id` , `hash`) VALUES ('$addr', '$list_id','$hash')")) {
$cnx->query("DELETE FROM ".$table_email."_deleted WHERE email='$addr' AND list_id='$list_id'");
return $hash;
} else
return false;
}
}
function addSubscriberTemp($cnx, $table_email, $table_temp, $list_id, $addr) {
$addr = trim(strtolower($addr));
$x = $cnx->query("SELECT email FROM $table_email WHERE list_id='$list_id' AND email='$addr'")->fetchAll();
if (count($x)>0) {
return false;
}
$x = $cnx->query("SELECT email FROM $table_temp WHERE list_id='$list_id' AND email='$addr'")->fetchAll();
if (count($x)>0) {
return false;
}
$hash = unique_id($addr);
if($_SESSION['timezone']!=''){
date_default_timezone_set($_SESSION['timezone']);
}elseif(file_exists('include/config.php')) {
date_default_timezone_set('Europe/Paris');
}
$date = date("Ymd");
if (!$cnx->query("INSERT INTO $table_temp (`email`, `list_id` , `hash` , `date`) VALUES ('$addr', '$list_id','$hash' , '$date')")) {
return false;
}
return $hash;
}
function append_cronjob($command){
if(is_string($command)&&!empty($command)){
exec("crontab -l | { cat; echo '$command'; } |crontab -",$output,$code_retour);
}
if( $code_retour !== 0 ) {
return false;
} else {
return true;
}
}
function build_sorter($key) {
return function ($a, $b) use ($key) {
return strnatcmp($a[$key], $b[$key]);
};
}
function checkAdminAccess($cnx, $conf_pass, $admin_pass, $admin_mail) {
if (!empty($_COOKIE['PMNLNG_admin_password']) && ($_COOKIE['PMNLNG_admin_password'] == $conf_pass)) {
return true;
} else {
if ($conf_pass == md5($admin_pass)) {
setcookie("PMNLNG_admin_password", md5($admin_pass));
return true;
} else {
return false;
}
}
}
function checkVersion(){
$VL=file_get_contents('VERSION');
if($VL===FALSE) {
echo 'fichier version non détecté';
} else {
$header=checkVersionCurl();
if(version_compare($header['content'],$VL,'>')) {
echo '
Version '.$header['content'].' disponible !';
}
}
}
function checkVersionCurl() {
(function_exists('curl_init')) ? '' : die('cURL Must be installed for geturl function to work. Ask your host to enable it or uncomment extension=php_curl.dll in php.ini');
$h[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
$h[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$h[] = "Cache-Control: max-age=0";
$h[] = "Connection: keep-alive";
$h[] = "Keep-Alive: 300";
$h[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$h[] = "Accept-Language: en-us,en;q=0.5";
$h[] = "Pragma: ";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://www.phpmynewsletter.com/versions/current_version');
curl_setopt($curl, CURLOPT_USERAGENT, 'Check Version PhpMyNewsLetter');
curl_setopt($curl, CURLOPT_HTTPHEADER, $h);
curl_setopt($curl, CURLOPT_REFERER, 'https://www.phpmynewsletter.com/versions/current_version');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 60);
$header['errno'] = curl_errno($curl);
$header['errmsg'] = curl_error($curl);
$header['content'] = curl_exec($curl);
curl_close($curl);
return $header;
}
function clean_old_tmp_files(){
foreach (glob(PREFIX_DIR.'/'.PREFIX."*") as $filename){
$age = time() - filemtime($filename);
if ($age > TIME_LIMIT) {
unlink($filename);
}
}
}
function createNewsletter($cnx,$table_listsconfig,$newsletter_name,$from,
$from_name,$subject,$header,$footer,
$subscription_subject,$subscription_body,
$welcome_subject,$welcome_body,$quit_subject,$quit_body,$preview_addr) {
$sql = "SELECT list_id FROM $table_listsconfig ORDER BY list_id DESC";
$newidTab = $cnx->SqlRow($sql);
$newid = $newidTab['list_id'] + 1;
$newsletter_name = escape_string($cnx,$newsletter_name);
$from = escape_string($cnx,$from);
$from_name = escape_string($cnx,$from_name);
$subject = escape_string($cnx,$subject);
$header = escape_string($cnx,$header);
$footer = escape_string($cnx,$footer);
$subscription_subject = escape_string($cnx,$subscription_subject);
$subscription_body = escape_string($cnx,$subscription_body);
$welcome_subject = escape_string($cnx,$welcome_subject);
$welcome_body = escape_string($cnx,$welcome_body);
$quit_subject = escape_string($cnx,$quit_subject);
$quit_body = escape_string($cnx,$quit_body);
$preview_addr = escape_string($cnx,$preview_addr);
if (!$cnx->query("INSERT INTO $table_listsconfig (`list_id` , `newsletter_name` , `from_addr` ,
`from_name` , `subject` , `header` , `footer` ,
`subscription_subject` , `subscription_body`, `welcome_subject` ,
`welcome_body` , `quit_subject` ,`quit_body`,`preview_addr`)
VALUES ($newid,$newsletter_name, $from,
$from_name, $subject, $header, $footer,
$subscription_subject, $subscription_body,$welcome_subject,
$welcome_body, $quit_subject, $quit_body, $preview_addr)")) {
return false;
} else {
return $cnx->lastInsertId();
}
}
function CronID() {
$len = 5;
$base='ABCDEFGHKLMNOPQRSTWXYZabcdefghjkmnpqrstwxyz';
$max=strlen($base)-1;
$activatecode='';
mt_srand((double)microtime()*1000000);
while (strlen($activatecode)<$len+1){
$activatecode.=$base{mt_rand(0,$max)};
}
return 'pmnl2_'.$activatecode;
}
function delete_subscriber($cnx, $table_email, $list_id, $del_addr, $table_email_deleted, $motif) {
$CPTID = $cnx->query("SELECT count(id) AS CPTID
FROM $table_email
WHERE list_id = ".$list_id."
AND email = ".escape_string($cnx,$del_addr))->fetch();
if ( $CPTID['CPTID'] > 0 ) {
if (!$cnx->query("INSERT IGNORE INTO $table_email_deleted
SELECT *
FROM $table_email
WHERE email=".escape_string($cnx,$del_addr)."
AND list_id=".$list_id)){
return false;
} else {
$cnx->query("UPDATE $table_email_deleted
SET error='Y', type='".($motif!=''?$motif:'unsub')."'
WHERE email=".escape_string($cnx,$del_addr)."
AND list_id=".$list_id);
if (!$cnx->query("DELETE FROM $table_email
WHERE list_id = ".$list_id."
AND email=".escape_string($cnx,$del_addr))) {
return false;
} else {
return true;
}
}
} else {
return 5;
}
}
function delete_subscriber_tmp($cnx, $table_email, $list_id, $del_addr, $table_email_deleted, $motif) {
$CPTID = $cnx->query("SELECT count(*) AS CPTID
FROM $table_email
WHERE list_id = ".$list_id."
AND email = ".escape_string($cnx,$del_addr))->fetch();
if ( $CPTID['CPTID'] > 0 ) {
if (!$cnx->query("INSERT IGNORE INTO $table_email_deleted (email, list_id, hash)
SELECT email, list_id, hash
FROM $table_email
WHERE email=".escape_string($cnx,$del_addr)."
AND list_id=".$list_id)){
return false;
} else {
$cnx->query("UPDATE $table_email_deleted
SET error='Y', type='".($motif!=''?$motif:'unsub')."'
WHERE email=".escape_string($cnx,$del_addr)."
AND list_id=".$list_id);
if (!$cnx->query("DELETE FROM $table_email
WHERE list_id = ".$list_id."
AND email=".escape_string($cnx,$del_addr))) {
return false;
} else {
return true;
}
}
} else {
return 5;
}
}
function force_subscriber($cnx, $table_email_tmp, $list_id, $del_addr, $table_email, $hash) {
$CPTID = $cnx->query("SELECT count(*) AS CPTID
FROM $table_email_tmp
WHERE list_id = '".$list_id."'
AND email = ".escape_string($cnx,$del_addr)."")->fetch();
if ( $CPTID['CPTID'] > 0 ) {
if (!$cnx->query("INSERT IGNORE INTO $table_email (list_id,email,hash)
VALUES (".escape_string($cnx,$list_id).",".escape_string($cnx,$del_addr).",".escape_string($cnx,$hash).")")) {
return false;
} else {
if (!$cnx->query("DELETE FROM $table_email_tmp
WHERE list_id = '$list_id'
AND email='$del_addr'")) {
return false;
} else {
return true;
}
}
} else {
return 5;
}
}
function deleteArchive($cnx,$table_archives, $msg_id) {
if (!$cnx->query("DELETE FROM $table_archives WHERE id='$msg_id'")) {
return false;
} else {
return true;
}
}
function deleteModMsg($cnx, $table_mod, $msg_id) {
if ($cnx->query("DELETE FROM $table_mod WHERE id='$msg_id'")) {
return true;
} else {
return -1;
}
}
function deleteNewsletter($cnx, $table_list, $table_archives, $table_email, $table_temp, $table_send, $table_tracking, $table_autosave, $list_id) {
if (!$cnx->query("DELETE FROM $table_list WHERE list_id='$list_id'")) {
return false;
}
if (!$cnx->query("DELETE FROM $table_email WHERE list_id='$list_id'")) {
return false;
}
if (!$cnx->query("DELETE FROM $table_temp WHERE list_id='$list_id'")) {
return false;
}
if (!$cnx->query("DELETE FROM $table_archives WHERE list_id='$list_id'")) {
return false;
}
if (!$cnx->query("DELETE $table_tracking,$table_send
FROM $table_tracking
INNER JOIN $table_send
WHERE $table_tracking.subject = $table_send.id_mail
AND $table_send.id_list = '$list_id'")) {
return false;
}
if (!$cnx->query("DELETE FROM $table_send WHERE id_list = '$list_id'")) {
return false;
}
if (!$cnx->query("DELETE FROM $table_autosave WHERE list_id = '$list_id'")) {
return false;
}
return true;
}
function DelMsgTemp($cnx, $list_id, $table){
if (!$cnx->query("DELETE FROM $table WHERE list_id='$list_id'")) {
return false;
}
}
function export_subscribers($cnx, $table_email, $list_id) {
$x = $cnx->query("SELECT email FROM $table_email WHERE list_id='$list_id' AND error='N'")->fetchAll(PDO::FETCH_ASSOC);
if (!$x){
die('export error');
} else {
header("Content-disposition: filename=listing_export_liste_".sprintf("%'.03d", $list_id)."_".date('Y-m-d-H-i-s').".txt");
header("Content-type: application/octetstream");
header("Pragma: no-cache");
header("Expires: 0");
if (strpos($_SERVER["HTTP_USER_AGENT"],"MSIE")){
$crlf = "\r\n";
} else {
$crlf = "\n";
}
foreach ($x as $item) {
print $item['email'].$crlf;
}
exit();
}
}
function escape_string($cnx, $string) {
if (get_magic_quotes_gpc()) {
$string = stripslashes($string);
}
if (!is_numeric($string)) {
$string = $cnx->quote($string);
}
return $string;
}
function flushTempTable($cnx, $temp_table, $limit) {
if($_SESSION['timezone']!=''){
date_default_timezone_set($_SESSION['timezone']);
}elseif(file_exists('include/config.php')) {
date_default_timezone_set('Europe/Paris');
}
$date = date("Y/m/d");
$elts = explode("/", $date);
$y = $elts[0];
$m = $elts[1];
$d = $elts[2];
$before = mktime(0, 0, 0, $m, $d - $limit, $y);
$before = date("Ymd", $before);
if($cnx->query("DELETE FROM $temp_table where date < '$before'")){
return true;
} else {
return false;
}
}
function get_cpt_send($cnx, $row_config_globale, $list_id) {
$rowCpt = $cnx->SqlRow("SELECT cpt
FROM ".$row_config_globale['table_send'] ."
WHERE id_list = '$list_id' ORDER BY id_mail DESC LIMIT 1");
$cpt_send = $rowCpt['cpt'];
$rowCpt = $cnx->SqlRow("SELECT count(*) AS CPTMAIL
FROM ".$row_config_globale['table_email']."
WHERE list_id = '$list_id' AND campaign_id>0");
$cpt_mail = $rowCpt['CPTMAIL'];
return (int)$cpt_mail-(int)$cpt_send;
}
function get_first_newsletter_id($cnx,$lists_table) {
$x = $cnx->query("SELECT list_id FROM $lists_table LIMIT 1")->fetch();
if (count($x) == 0){
return '';
} else {
return $x['list_id'];
}
}
function get_id_send($cnx,$list_id,$table_send){
return $cnx->query("SELECT count(id) AS CPTID FROM $table_send WHERE id_list = '".$list_id."'")->fetch();
}
function get_message($cnx, $table_archive, $msg_id) {
$x = $cnx->query("SELECT type, subject, message, sender_email, preheader
FROM $table_archive
WHERE id='$msg_id'")->fetch(PDO::FETCH_ASSOC);
if(!$x){
return -1;
} else {
return $x;
}
}
function get_message_preview($cnx, $table_autosave, $list_id) {
$x = $cnx->query("SELECT type, subject, textarea
FROM $table_autosave
WHERE list_id='$list_id'")->fetch(PDO::FETCH_ASSOC);
if(!$x){
return -1;
} else {
return $x;
}
}
function get_newsletter_name($cnx, $lists_table, $list_id) {
$this_name = $cnx->query("SELECT newsletter_name
FROM $lists_table
WHERE list_id = '$list_id'")->fetch();
if (count($this_name) == 0){
return -1;
} else {
return $name = $this_name['newsletter_name'];
}
}
function get_newsletter_total_subscribers($cnx, $email_table, $list_id, $msg_id) {
$row = $cnx->query("SELECT COUNT( email ) AS CPT
FROM $email_table
WHERE list_id ='$list_id'
AND ERROR ='N'
AND (
campaign_id != '$msg_id'
OR
campaign_id IS NULL)"
)->fetch();
return $row['CPT'];
}
function get_relative_path($filename) {
return preg_replace("/^.*\/(".PREFIX_DIR."\/.*)/", "$1", $filename);
}
function get_stats_send($cnx,$list_id,$param_global){
return $cnx->query("SELECT a.id, DATE_FORMAT(a.date,'%Y-%m-%d') as dt, a.subject, s.cpt, s.error, s.`leave`,s.id_mail,
(
SELECT COUNT(DISTINCT(hash),subject)
FROM ".$param_global['table_tracking']."
WHERE subject = a.id
) AS TID,
(
SELECT COUNT(distinct(tr.hash))
FROM ".$param_global['table_tracking']." tr, ".$param_global['table_email_deleted']." em
WHERE subject = a.id
AND tr.hash = em.hash
) AS TIDUNSUB,
(
SELECT SUM(open_count) FROM ".$param_global['table_send']."
WHERE id_mail = a.id AND id_list = '".$list_id."'
) AS TOPEN,
(
SELECT SUM(cpt) FROM ".$param_global['table_track_links']."
WHERE list_id = '".$list_id."' AND msg_id=a.id
) AS CPT_CLICKED
FROM ".$param_global['table_send']." s
LEFT JOIN ".$param_global['table_archives']." a
ON a.id = s.id_mail
LEFT JOIN ".$param_global['table_tracking']." t
ON a.id = t.subject
WHERE a.list_id = '".$list_id."'
GROUP BY a.id
ORDER BY a.id DESC LIMIT 30")->fetchAll(PDO::FETCH_ASSOC);
}
function get_stats_send_global($cnx,$param_global){
return $cnx->query("SELECT
(
SELECT COUNT(id) FROM ".$param_global['table_send']."
) AS TSEND,
(
SELECT SUM(cpt) FROM ".$param_global['table_send']."
) AS TMAILS,
(
SELECT COUNT(id) FROM ".$param_global['table_tracking']."
) AS TID,
(
SELECT SUM(error) FROM ".$param_global['table_send']."
) AS TERROR,
(
SELECT SUM(`leave`) FROM ".$param_global['table_send']."
) AS TLEAVE,
(
SELECT SUM(open_count) FROM ".$param_global['table_tracking']."
) AS TOPEN,
(
SELECT SUM(cpt) FROM ".$param_global['table_track_links']."
) AS CPT_CLICKED
FROM ".$param_global['table_send']." LIMIT 1")->fetchAll(PDO::FETCH_ASSOC);
}
function get_stats_send_global_by_list($cnx,$param_global,$list_id){
return $cnx->query("SELECT
(
SELECT COUNT(id) FROM ".$param_global['table_send']." WHERE id_list=$list_id
) AS TSEND,
(
SELECT SUM(cpt) FROM ".$param_global['table_send']." WHERE id_list=$list_id
) AS TMAILS,
(
SELECT COUNT(DISTINCT(hash),subject) FROM ".$param_global['table_tracking']." WHERE subject IN
(SELECT id FROM ".$param_global['table_archives']." WHERE list_id=$list_id)
) AS TID,
(
SELECT SUM(error) FROM ".$param_global['table_send']." WHERE id_list=$list_id
) AS TERROR,
(
SELECT SUM(`leave`) FROM ".$param_global['table_send']." WHERE id_list=$list_id
) AS TLEAVE,
(
SELECT SUM(open_count) FROM ".$param_global['table_tracking']." WHERE subject IN
(SELECT id FROM ".$param_global['table_archives']." WHERE list_id=$list_id)
) AS TOPEN,
(
SELECT SUM(cpt) FROM ".$param_global['table_track_links']." WHERE list_id=$list_id
) AS CPT_CLICKED
FROM ".$param_global['table_send']." LIMIT 1")->fetchAll(PDO::FETCH_ASSOC);
}
function get_subscribers($cnx, $table_email, $list_id) {
return $subscribers = $cnx->query("SELECT email
FROM $table_email
WHERE list_id = '$list_id'
ORDER BY email ASC")->fetchAll(PDO::FETCH_ASSOC);
}
function getAddress($cnx,$table_email,$list_id,$begin='',$limit='',$msg_id) {
$limite=(isset($limit))?" LIMIT 0,$limit":"";
return $Addr = $cnx->query("SELECT id,email,hash
FROM $table_email
WHERE list_id = '$list_id'
AND error='N'
AND (
campaign_id != '$msg_id'
OR
campaign_id IS NULL)
ORDER BY id ASC
$limite")->fetchAll(PDO::FETCH_ASSOC);
}
function getArchiveMsg($cnx, $table_archives, $msg_id,$token,$list,$type_user=false,$droit_liste=0) {
if (empty($offset)) $offset = 0;
$row = $cnx->query("SELECT id, date, type, subject, message, list_id
FROM $table_archives
WHERE id='$msg_id'")->fetch(PDO::FETCH_ASSOC);
if (count($row) == 0){
return -1;
} else {
$subject = htmlspecialchars($row['subject']);
$subject = stripslashes($subject);
echo "Sujet : \"" . $subject . "\", envoyé le : " . $row['date'] . "
";
echo "";
echo "
";
echo "";
}
}
function getArchivesSelectList($cnx, $table_archives, $msg_id = '', $form_name = 'archive_form2',$list_id) {
$row = $cnx->query("SELECT id, date, subject FROM $table_archives WHERE list_id='$list_id' ORDER BY date DESC")->fetchAll(PDO::FETCH_ASSOC);
if (count($row) == 0){
return -1;
} else {
$archive = "";
echo $archive;
}
}
function getConfig($cnx, $list_id, $list_table) {
$x = $cnx->query("SELECT * FROM $list_table WHERE list_id='$list_id'")->fetch(PDO::FETCH_ASSOC);
if(!$x){
return -1;
} else {
return $x;
}
}
function getConfigSender($cnx, $list_table, $email) {
$x = $cnx->query("SELECT * FROM $list_table WHERE email='".($cnx->CleanInput($email))."'")->fetch(PDO::FETCH_ASSOC);
if(!$x){
return -1;
} else {
return $x;
}
}
function getEmail($cnx, $mail, $table_email) {
$x = $cnx->query("SELECT email FROM $table_email WHERE email like '%$mail%' LIMIT 0,5")->fetchAll(PDO::FETCH_ASSOC);
if(count($x)>0){
return $x;
}
}
function getLanguageList($selected) {
$ret = "";
$langfiles = array();
if ($handle = opendir("include/lang/")) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && preg_match("/([a-z_]+)\.php$/i", $file, $match)) {
array_push($langfiles, str_replace("_", " ", $match[1]));
}
}
closedir($handle);
}
asort($langfiles);
foreach ($langfiles as $value) {
$ret .= "\t\n";
}
return $ret;
}
function getlocale($category) {
return setlocale($category, NULL);
}
function getMsgById($cnx,$id,$table) {
$x = $cnx->query("SELECT * FROM $table WHERE id='$id'")->fetch(PDO::FETCH_ASSOC);
if(!$x){
return -1;
} else {
return $x;
}
}
function getMsgDraft($cnx, $list_id, $table_draft) {
$NB = $cnx->query("SELECT COUNT(*) AS NB FROM $table_draft WHERE list_id = '$list_id'")->fetch(PDO::FETCH_ASSOC);
if(!$NB){
return -1;
} else {
return $NB;
}
}
function getSenders($cnx, $table_senders, $sender='') {
$row = $cnx->query("SELECT name_organisation,email FROM $table_senders ORDER BY 1 ASC")->fetchAll(PDO::FETCH_ASSOC);
if (count($row) == 0){
return -1;
} else {
$liste_senders = "";
return $liste_senders;
}
}
function getSendersFull($cnx, $table_senders, $table_archives) {
$row = $cnx->query("SELECT A.subject,A.id,S.id_sender,S.name_organisation,S.email,S.smtp FROM $table_senders S
LEFT JOIN $table_archives A
ON S.last_send=A.id ORDER BY 1 ASC")->fetchAll(PDO::FETCH_ASSOC);
if (count($row) == 0){
return false;
} else {
return $row;
}
}
function getUsersFull($cnx, $table_users, $table_listes) {
$row = $cnx->query("SELECT U.*, L.newsletter_name FROM $table_users U
LEFT JOIN $table_listes L
ON U.liste=L.list_id ORDER BY id_user ASC")->fetchAll(PDO::FETCH_ASSOC);
if (count($row) == 0){
return false;
} else {
return $row;
}
}
function getOneSenderFull($cnx, $table_senders, $account) {
$row = $cnx->query("SELECT * FROM $table_senders WHERE email = '$account'")->fetchAll(PDO::FETCH_ASSOC);
if (count($row) == 0){
return false;
} else {
return $row;
}
}
function getOneUserFull($cnx, $table_users, $account) {
$row = $cnx->query("SELECT * FROM $table_users WHERE email = '$account'")->fetchAll(PDO::FETCH_ASSOC);
if (count($row) == 0){
return false;
} else {
return $row;
}
}
function getSubscribersEmail($cnx, $table_config, $email, $from, $from_name, $list_id = '') {
$conf = new config();
$conf->getConfig($db_host, $db_login, $db_pass, $db_name, $table_config);
$db = new Db();
$db->DbConnect($db_host, $db_login, $db_pass, $db_name);
$sql = "SELECT DISTINCT email FROM $conf->table_email ";
if (!empty($list_id))
$sql .= "WHERE list_id='$list_id'";
$cnx->SqlRow($sql);
if ($db->DbError()) {
echo $db->DbError();
return -1;
}
$body = "adresse email des abonnés:\n";
$body .= "-------------------------\n";
while ($a = $db->DbNextRow()) {
$body .= $a[0] . "\n";
}
return sendEmail($conf->sending_method, $email, $from, $from_name, "Liste des adresses", $body,
$conf->smtp_auth, $conf->smtp_host = '', $conf->smtp_login = '', $conf->smtp_pass);
}
function getSubscribersNumbers($cnx,$table_email,$list_id,$type='') {
switch($type){
case 'unsub':
$row = $cnx->SqlRow("SELECT COUNT( email ) AS CPT FROM $table_email WHERE list_id ='$list_id' and type='unsub'");
break;
case 'bounce':
$row = $cnx->SqlRow("SELECT COUNT( email ) AS CPT FROM $table_email WHERE list_id ='$list_id' and type!='unsub'");
break;
default:
$row = $cnx->SqlRow("SELECT COUNT( email ) AS CPT FROM $table_email WHERE list_id ='$list_id'");
break;
}
return $row['CPT'];
}
function getSubscribersTotal($cnx,$table_email) {
$row = $cnx->SqlRow("SELECT COUNT( distinct(email) ) AS CPT FROM $table_email");
return $row['CPT'];
}
function getWaitingMsg($hostname, $login, $pass, $database, $table_mod, $msg_id) {
$sql = "SELECT date, type, email_from, subject, message, list_id FROM $table_mod WHERE id='$msg_id'";
$cnx->SqlRow($sql);
if ($cnx->DbNumRows())
return $cnx->DbNextRow();
else
return false;
}
function getWaitingMsgList($hostname, $login, $pass, $database, $table_mod, $list_id, $msg_id = '') {
$sql = "SELECT id, date, email_from, subject FROM $table_mod WHERE list_id='$list_id'";
$cnx->SqlRow($sql);
if ($cnx->DbNumRows()) {
while ($r = $cnx->DbNextRow()) {
$form .= "