function preview($mailingId, $listId, &$message) { $list = null; $new = null; $mailing = xmailing::getOneMailing($list, $mailingId, '', $new); if ($listId > 0) { $list = lists::getOneList($listId); } else { $list = lists::getOneList($mailing->list_id); } $message = ''; $previewemailaddress = mosGetParam($_REQUEST, 'emailaddress', ''); $previewname = mosGetParam($_REQUEST, 'name', ''); $previewhtml = mosGetParam($_REQUEST, 'html', 0); $receivers = null; $receivers->id = 0; $receivers->email = $previewemailaddress; $receivers->name = $previewname; $receivers->receive_html = $previewhtml; return acajoom_mail::sendOne($mailing, $receivers, $list, $message); }
function deleteList($listId) { global $database; $erro = new xerr(__FILE__, __FUNCTION__, __CLASS__); $xf = new xonfig(); $list = lists::getOneList($listId); $query = 'DELETE FROM `#__acajoom_lists` WHERE `id` = ' . $listId; $database->setQuery($query); $database->query(); $erro->err = $database->getErrorMsg(); $erro->E(__LINE__, '8317', $database); $query = 'DELETE FROM `#__acajoom_queue` WHERE `list_id` = ' . $listId; $database->setQuery($query); $database->query(); $erro->err = $database->getErrorMsg(); $erro->E(__LINE__, '8319', $database); $mailings = xmailing::getMailings($listId, '', -1, -1, '', $total, '', false, false); if (!empty($mailings)) { foreach ($mailings as $mailing) { $listingList[] = $mailing->id; } $query = "DELETE FROM `#__acajoom_stats_global` WHERE `mailing_id` IN ( " . implode(' , ', $listingList) . " ) "; $database->setQuery($query); $database->query(); $erro->err .= $database->getErrorMsg(); $erro->E(__LINE__, '8320', $database); $query = "DELETE FROM `#__acajoom_stats_details` WHERE `mailing_id` IN ( " . implode(' , ', $listingList) . " ) "; $database->setQuery($query); $database->query(); $erro->err .= $database->getErrorMsg(); $erro->E(__LINE__, '8321', $database); } $query = 'DELETE FROM `#__acajoom_mailings` WHERE `list_id` = ' . $listId; $database->setQuery($query); $database->query(); $erro->err = $database->getErrorMsg(); $erro->E(__LINE__, '8318', $database); if (!$erro->result) { return false; } else { $xf->plus('act_totallist0', -1); $xf->plus('act_totalmailing' . $list->list_type, -1); return true; } }
function preview($mailingId, $listId, &$message) { $list = null; $new = null; $mailing = xmailing::getOneMailing($list, $mailingId, '', $new); if ($listId > 0) { $list = lists::getOneList($listId); } else { $list = lists::getOneList($mailing->list_id); } $message = ''; if (ACA_CMSTYPE) { // joomla 15 $previewemailaddress = JRequest::getVar('emailaddress', ''); $previewname = JRequest::getVar('name', ''); $previewhtml = JRequest::getVar('html', '0'); } else { //joomla 1x $previewemailaddress = mosGetParam($_REQUEST, 'emailaddress', ''); $previewname = mosGetParam($_REQUEST, 'name', ''); $previewhtml = mosGetParam($_REQUEST, 'html', 0); } //endif $receivers = null; if (ACA_CMSTYPE) { // joomla 15 $my =& JFactory::getUser(); } else { global $my; } $d['email'] = trim($previewemailaddress); $infos = subscribers::getSubscriberIdFromEmail($d); if (empty($infos['subscriberId'])) { $d['email'] = $my->email; $infos = subscribers::getSubscriberIdFromEmail($d); } if (!empty($infos['subscriberId'])) { $receivers = subscribers::getSubscribersFromId(array($infos['subscriberId'])); } else { $receivers->id = 0; } $receivers->email = $previewemailaddress; $receivers->name = $previewname; $receivers->receive_html = $previewhtml; return acajoom_mail::sendOne($mailing, $receivers, $list, $message); }
/** * @copyright Copyright (C) 2009 Joobi Limited All rights reserved. * @license This file is released under the GPL license (http://www.gnu.org/licenses ) * @link http://www.ijoobi.com */ function mailing($action, $task, $listId, $listType, $mailingId, $message) { $showMailings = false; switch ($task) { case 'edit': if (ACA_CMSTYPE) { // joomla 15 $issue_nb = intval(JRequest::getVar('issue_nb', 1)); } else { //joomla 1x $issue_nb = intval(mosGetParam($_REQUEST, 'issue_nb', 1)); } //endif $list = lists::getOneList($listId); $mailing = xmailing::getOneMailing($list, $mailingId, $issue_nb, $new); $show = lisType::showType($mailing->list_type, 'editmailing'); if ($mailing->published != 1 or $mailing->list_type != 1 or isset($show['admin']) and $show['admin']) { $forms['main'] = " <form action='index2.php' method='post' enctype='multipart/form-data' name='adminForm'> \n "; xmailing::_header($task, $action, $mailing->list_type, $message, 'edit'); mailingsHTML::editMailing($mailing, $new, $listId, $forms, $show); $go[] = acajoom::makeObj('act', $action); backHTML::formEnd($go); } else { $forms['main'] = " <form action='index2.php' method='post' name='adminForm'> \n\r"; xmailing::_header($task, $action, $mailing->list_type, $message); //backHTML::formStart(); mailingsHTML::viewMailing($mailing, $forms); $go[] = acajoom::makeObj('act', 'mailing'); $go[] = acajoom::makeObj('task', 'viewmailing'); $go[] = acajoom::makeObj('listid', $mailing->list_id); backHTML::formEnd($go); } break; case 'new': case 'add': if ($listId == 0) { echo "<script> alert('" . addslashes(_ACA_SELCT_MAILING) . "'); window.history.go(-1);</script>\n"; return false; } else { $total = xmailing::countMailings($listId, ''); $total++; compa::redirect('index2.php?option=com_acajoom&act=mailing&task=edit&mailingid=0&issue_nb=' . $total . '&listid=' . $listId); } break; case 'saveSend': xmailing::saveMailing($mailingId, $listId); case 'sendNewsletter': if ($listId < 1 or $listType < 0) { $mailing = xmailing::getOneMailing('', $mailingId, '', $new, true); $listId = $mailing->list_id; $listType = $mailing->list_type; } if (lisType::sendType($listType)) { $checkStatus = lists::checkStatus($listId); if ($checkStatus == false) { $message = acajoom::printYN(0, _ACA_MESSAGE_SENT_SUCCESSFULLY, _ACA_NOT_PUBLISHED); $showMailings = true; } else { $receivers = subscribers::getSubscribers(-1, -1, '', $total, $listId, '', 1, 1, 'sub_emailA'); if (empty($receivers)) { $message = acajoom::printYN(0, _ACA_MESSAGE_SENT_SUCCESSFULLY, _ACA_NO_SUSCRIBERS); $showMailings = true; } else { $status = queue::sendNewsletter(true, $mailingId, $listId, $receivers, $message); $message = acajoom::printYN($status, _ACA_MESSAGE_SENT_SUCCESSFULLY, $message); $showMailings = true; flush(); sleep(5); compa::redirect('index2.php?option=com_acajoom&act=mailing&listype=' . $listType, $message); } } } else { if (class_exists('auto')) { $message = acajoom::printYN(auto::processQueue(true), _ACA_QUEUE_SENT_SUCCESS, _ACA_ERROR); } $showMailings = true; } break; case 'savePreview': xmailing::saveMailing($mailingId, $listId); case 'preview': if (ACA_CMSTYPE) { // joomla 15 $emailaddress = JRequest::getVar('emailaddress', ''); } else { //joomla 1x $emailaddress = mosGetParam($_REQUEST, 'emailaddress', ''); } //endif if (!empty($emailaddress)) { $status = xmailing::preview($mailingId, $listId, $message); $message = acajoom::printYN($status, _ACA_MESSAGE_SENT_SUCCESSFULLY, $message); } backHTML::_header(_ACA_PREVIEW_TITLE, 'preview_f2.png', $message, $task, $action); mailingsHTML::previewMailingHTML($mailingId, $listId, $listType); if ($listId > 0) { $archivemailing = xmailing::getMailingView($mailingId, $listId); } else { $archivemailing = xmailing::getMailingView($mailingId); } $forms['main'] = ''; $list = lists::getOneList($archivemailing->list_id); $textonly = ''; acajoom_mail::getContent($archivemailing->images, $list->layout, $archivemailing->htmlcontent, $textonly); acajoom_mail::replaceClass($archivemailing->htmlcontent, $textonly); mailingsHTML::viewMailing($archivemailing, $forms); break; case 'view': if ($mailingId != 0) { if ($listId > 0) { $archivemailing = xmailing::getMailingView($mailingId, $listId); } else { $archivemailing = xmailing::getMailingView($mailingId); } $forms['main'] = " <form action='index2.php' method='post' name='adminForm'> \n\r"; xmailing::_header($task, $action, $listType, $message); backHTML::formStart('', 0, ''); mailingsHTML::viewMailing($archivemailing, $forms); $go[] = acajoom::makeObj('act', 'mailing'); $go[] = acajoom::makeObj('task', 'viewmailing'); $go[] = acajoom::makeObj('listid', $archivemailing->list_id); backHTML::formEnd($go); } break; case 'deleteMailing': $d['mailing'] = xmailing::getOneMailing('', $mailingId, '', $new); $message = acajoom::printYN(xmailing::delete($d), @constant($GLOBALS[ACA . 'listname' . $d['mailing']->list_type]) . _ACA_SUCCESS_DELETED, _ACA_ERROR); $showMailings = true; break; case 'cancel': compa::redirect('index2.php?option=com_acajoom'); break; case 'copy': $message = acajoom::printYN(xmailing::copyMailing($mailingId), _ACA_MAILING_COPY, _ACA_ERROR); $showMailings = true; break; case 'cancelMailing': $showMailings = true; break; case 'publishMailing': $mailing = xmailing::getOneMailing('', $mailingId, '', $new); $message = acajoom::printYN(xmailing::publishMailing($mailingId), @constant($GLOBALS[ACA . 'listname' . $mailing->list_type]) . ' ' . _ACA_PUBLISHED, _ACA_ERROR); $showMailings = true; break; case 'unpublishMailing': $mailing = xmailing::getOneMailing('', $mailingId, '', $new); $message = acajoom::printYN(xmailing::unpublishMailing($mailingId), @constant($GLOBALS[ACA . 'listname' . $mailing->list_type]) . ' ' . _ACA_UNPUBLISHED, _ACA_ERROR); $showMailings = true; break; case 'cpanel': backHTML::controlPanel(); break; case 'save': $message = acajoom::printYN(xmailing::saveMailing($mailingId, $listId), _ACA_MAILING_SAVED, _ACA_ERROR); $showMailings = true; unset($GLOBALS["task"]); unset($_REQUEST["task"]); break; case 'show': default: $showMailings = true; break; } if ($showMailings) { xmailing::showMailings($task, $action, $listId, $listType, $message, true, _ACA_MENU_MAILING); } return true; }
function mailingEdit($subscriberId, $mailingId, $listId, $listType, $action) { global $my, $Itemid; if (ACA_CMSTYPE) { // joomla 15 $issue_nb = JRequest::getVar('issue_nb', '0'); $my =& JFactory::getUser(); } else { //joomla 1x $issue_nb = intval(mosGetParam($_REQUEST, 'issue_nb', 0)); global $my; } //endif $accessGrant = false; $new = 0; if (class_exists('pro')) { if ($issue_nb == 0) { $issue_nb = xmailing::countMailings($listId, ''); $issue_nb++; } if ($listId > 0) { $list = lists::getOneList($listId); $mailing = xmailing::getOneMailing($list, $mailingId, $issue_nb, $new); $acc_level = $list->acc_level; } else { return false; } if (acajoom::checkPermissions('hello', 0, $acc_level)) { $accessGrant = true; } } else { if ($subscriberId != 0 and ($my->usertype == 'Administrator' or $my->usertype == 'Super Administrator')) { $accessGrant = true; } } if ($accessGrant) { if ($issue_nb == 0) { $issue_nb = xmailing::countMailings($listId, ''); $issue_nb++; } if (empty($mailing)) { if ($mailingId > 0) { $mailing = xmailing::getOneMailing('', $mailingId, $issue_nb, $new); } else { if ($listId > 0) { $list = lists::getOneList($listId); $mailing = xmailing::getOneMailing($list, $mailingId, $issue_nb, $new); } else { return false; } } } $mainLink = '.php?option=com_acajoom&act=savemailing'; compa::completeLink($mainLink, false); $forms['main'] = '<form method="post" enctype="multipart/form-data" action="' . $mainLink . '" onsubmit="submitbutton();return false;" name="adminForm" >' . "\n\r"; $forms['main'] .= '<input type="hidden" name="Itemid" value="' . $Itemid . '" />'; $show = lisType::showType($mailing->list_type, 'editmailing'); frontHTML::formStart(_ACA_EDIT_A . @constant($GLOBALS[ACA . 'listname' . $mailing->list_type]), $mailing->html, 'edit_mailing'); mailingsHTML::editMailing($mailing, $new, $listId, $forms, $show); $go[] = acajoom::makeObj('act', $action); frontHTML::formEnd(_CMN_SAVE . ' ' . @constant($GLOBALS[ACA . 'listname' . $mailing->list_type]), $go); } else { echo acajoom::printM('red', _NOT_AUTH); } return true; }
function updateSuscription($suscription) { $erro = new xerr(__FILE__, __FUNCTION__, __CLASS__); //$i = 0; //do { //$i++; foreach ($suscription->sub_list_id as $i => $value) { $queues = queue::suscriptionExist($suscription->user_id, $suscription->sub_list_id[$i]); if (!empty($queues)) { if (isset($suscription->subscribed[$i])) { if ($suscription->subscribed[$i] == 0) { $erro->ck = queue::deleteSubsQueue($suscription->user_id, $suscription->sub_list_id[$i]); $erro->Eck(__LINE__, '8520'); } else { $updatedQueue = $queues; $updatedQueue->acc_level = $suscription->acc_level[$i]; if ($queues->mailing_id < 1) { $mailingId = xmailing::getFirstMailingId($queues->list_id); if (!empty($mailingId)) { $list = lists::getOneList($queues->list_id); $mailing = queue::getValidMailing($list, $mailingId); if (!empty($mailing)) { $updatedQueue->type = $mailing->list_type; $updatedQueue->list_id = $list->id; $updatedQueue->mailing_id = $mailing->id; $updatedQueue->published = $list->published; $updatedQueue->send_date = acajoom::getNow(); if ($mailing->list_type == 1 or $mailing->list_type == 7) { $updatedQueue->issue_nb = 0; $updatedQueue->send_date = '0000-00-00 00:00:00'; $updatedQueue->delay = 0; } else { $updatedQueue->issue_nb = $mailing->issue_nb; $updatedQueue->send_date = acajoom::getNow(); $updatedQueue->delay = $mailing->delay; } } } $qid = ''; $qid[0] = $updatedQueue->qid; $erro->ck = queue::updateQueueData($qid, '', $updatedQueue->type, $updatedQueue->list_id, $updatedQueue->mailing_id, $updatedQueue->issue_nb, $updatedQueue->send_date, $updatedQueue->delay, $updatedQueue->acc_level, $updatedQueue->published); $erro->Eck(__LINE__, '8521'); } else { queue::updateAccessLevel($updatedQueue); } } } } else { if (isset($suscription->subscribed[$i])) { if ($suscription->subscribed[$i] == 1) { $subId = array(); $subId[0] = $suscription->user_id; $subList = isset($suscription->sub_list_id[$i]) ? $suscription->sub_list_id[$i] : 0; $subLevel = isset($suscription->acc_level[$i]) ? $suscription->acc_level[$i] : 29; $erro->ck = queue::updateQueues($subId, '', $subList, $subLevel, true); $erro->Eck(__LINE__, '8522'); } } } } //while (count($suscription->sub_list_id ) > $i ); return $erro->R(); }
function statistics($listId, $listType, $mailingId, $message, $task, $action) { global $database; $erro = new xerr(__FILE__, __FUNCTION__); switch ($task) { case 'edit': case 'view': $mailing = xmailing::getOneMailing(0, $mailingId, '', $new); $list = lists::getOneList($mailing->list_id); $listId = $list->id; $listType = $list->list_type; if ($mailingId != 0) { $query = 'SELECT * FROM `#__acajoom_stats_global` WHERE `mailing_id` = \'' . $mailingId . '\''; $database->setQuery($query); $database->loadObject($globalStats); $erro->err = $database->getErrorMsg(); if (empty($globalStats)) { $globalStats->html_sent = ''; $globalStats->html_read = 0; $globalStats->text_sent = ''; } $query = 'SELECT U.name, U.email, D.html, D.read FROM `#__acajoom_stats_details` as D ' . 'LEFT JOIN `#__acajoom_subscribers` as U ON D.subscriber_id=U.id WHERE D.mailing_id = \'' . $mailingId . '\''; $database->setQuery($query); $detailedStats = $database->loadObjectList(); $erro->err .= $database->getErrorMsg(); $erro->show(); if (!$erro->E(__LINE__, '8009')) { return false; } else { $html_read = array(); $html_unread = array(); $text = array(); foreach ($detailedStats as $detailedStat) { if ($detailedStat->html == 1) { if ($detailedStat->read == 1) { $html_read[] = $detailedStat; } else { $html_unread[] = $detailedStat; } } else { $text[] = $detailedStat; } } backHTML::_header(_ACA_MENU_STATS, 'query.png', $message, $task, $action); backHTML::showStatistics($list, $mailing, $globalStats, $html_read, $html_unread, $text, $listId); } } else { echo '<p> Please select a mailings id.</p>'; return false; } break; case 'cancel': compa::redirect('index2.php?option=com_acajoom&act=statistics&listid=' . $listId); break; case 'cpanel': backHTML::controlPanel(); break; default: backHTML::_header(_ACA_MENU_STATS, 'query.png', $message, $task, $action); xmailing::showMailings($task, $action, $listId, $listType, '', false, _ACA_MENU_STATS_FOR); } }