function sendNewsletter($showHTML, $mailingId, $listId, $receivers, &$message, $tags = null) { $list = lists::getOneList($listId); $mailing = xmailing::getOneMailing($list, $mailingId, '', $new, true); xmailing::_header('', '', $list->list_type, '', ''); $check = acajoom_mail::send($showHTML, $mailing, $receivers, $list, $message, $tags); if ($check) { xmailing::updateNewsletterSent($mailingId); } return $check; }
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 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); }
function acaHtmlEntityDecode($string, $quote_style = ENT_COMPAT, $charset = null) { if (is_null($charset)) { $charset = acajoom_mail::acaGetCharset(); } if (function_exists('html_entity_decode')) { return @html_entity_decode($string, $quote_style, $charset); } if (!is_int($quote_style) && !is_null($quote_style)) { user_error(__FUNCTION__ . '() expects parameter 2 to be long, ' . gettype($quote_style) . ' given', 'warning'); return; } $trans_tbl = get_html_translation_table(HTML_ENTITIES); $trans_tbl = array_flip($trans_tbl); $trans_tbl['''] = '\''; if ($quote_style & ENT_NOQUOTES) { unset($trans_tbl['"']); } return strtr($string, $trans_tbl); }
/** * @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 remove($subscriberId, $cle = '', $listId) { $erro = new xerr(__FILE__, __FUNCTION__, __CLASS__); if (!empty($subscriberId) and !empty($cle) and $listId > 0) { $qid[0] = $subscriberId; $subscriber = subscribers::getSubscribersFromId($qid, false); if (md5($subscriber->email) == $cle) { $suscription = new stdClass(); $suscription->user_id = $subscriberId; $suscription->sub_list_id[1] = $listId; $suscription->subscribed[1] = 0; $suscription->acc_level[1] = 0; $erro->ck = queue::updateSuscription($suscription); $erro->Eck(__LINE__, '8277'); $list = lists::getOneList($listId); if ($list->unsubscribesend == 1) { $erro->err = acajoom_mail::sendUnsubcribeEmail($subscriberId, $list); $erro->E(__LINE__, '8278'); } } } return $erro->R(); }
frontEnd::changeSubscriptions($subscriberId, $cle, $listId, 'save'); break; case 'unsubscribe': frontEnd::unsubscribe($subscriberId, $cle, $listId, 'remove'); $showPanel = false; break; case 'remove': $message = acajoom::printYN(frontEnd::remove($subscriberId, $cle, $listId), _ACA_UNSUBSCRIBE_MESS, _NOT_AUTH); $showPanel = true; break; case 'save': $message = acajoom::printYN(subscribers::updateOneSubscriber(), _ACA_UPDATED_SUCCESSFULLY, _ACA_ERROR); $showPanel = true; break; case 'log': acajoom_mail::logStatistics($mailingId, $subscriberId); break; case 'updatesubscription': $message = frontEnd::updateFrontSubscription($subscriberId); if (!empty($redirectlink)) { compa::redirect($redirectlink, $message); } else { $showPanel = true; } break; case 'subscribe': $userid = intval(mosGetParam($_REQUEST, 'userid', 0)); if ($userid > 0) { global $database; $query = 'SELECT * FROM `#__users` WHERE `id` = \'' . $userid . '\''; $database->setQuery($query);
function acajoombot_jcalpro_transformall($html, $text) { $database =& JFactory::getDBO(); $Itemid = $GLOBALS[ACA . 'itemidAca']; preg_match_all('#{jcalevent:.{7,15}}#', $html . $text, $tags); $replace = array(); $replacebyHTML = array(); $replacebyText = array(); if (!empty($tags[0])) { foreach ($tags[0] as $tag) { $isolate = explode(':', $tag); if (count($isolate) != 2) { continue; } $parameters = explode('|', $isolate[1]); if (count($parameters) != 4) { continue; } if (!empty($replace[$tag])) { continue; } $replace[$tag] = $tag; $query = 'SELECT `title`, `description`, `end_date`, `start_date`, `extid` from #__jcalpro_events where `extid` = ' . intval($parameters[0]); $database->setQuery($query); if (ACA_CMSTYPE) { // joomla 15 $event = $database->loadObject(); } else { //joomla 1x $database->loadObject($event); } //endif if (empty($event->extid)) { $replacebyHTML[$tag] = ''; $replacebyText[$tag] = ''; continue; } if (get_magic_quotes_runtime()) { $event->title = stripslashes($event->title); $event->description = stripslashes($event->description); } $eventhtml = ''; if ($parameters[2]) { $eventhtml .= '<div class="eventpaneopen_nws">'; } $eventhtml .= '<span class="eventheading_nws">' . $event->title . '</span>'; $eventtext = strtoupper(acajoom_mail::htmlToText($event->title)); if ($parameters[1]) { $start_date_array = explode('-', $event->start_date); $start_time_array = explode(':', substr($event->start_date, 10, 15)); $date = strftime(JText::_('DATE_FORMAT_LC'), mktime($start_time_array[0], $start_time_array[1], 0, $start_date_array[1], $start_date_array[2], $start_date_array[0])); $eventhtml .= '<br/>' . $date; $eventtext .= "\r\n" . $date; } if ($parameters[2]) { $eventhtml .= '<br/>' . $event->description; $eventtext .= "\r\n" . acajoom_mail::htmlToText($event->description); } if ($parameters[3]) { $link = '.php?option=com_jcalpro&extmode=view&extid=' . $event->extid . '&Itemid=' . $Itemid; compa::completeLink($link, false, $GLOBALS[ACA . 'use_sef']); $eventhtml .= '<br/><a href="' . $link . '"><span class="readon_nws">' . _ACA_READMORE . '</span></a>'; $eventtext .= "\r\n" . ' * ' . _ACA_READMORE . ' ( ' . $link . ' )'; } if ($parameters[2]) { $eventhtml .= '</div>'; } $replacebyHTML[$tag] = $eventhtml; $replacebyText[$tag] = $eventtext; } } $html = str_replace($replace, $replacebyHTML, $html); $text = str_replace($replace, $replacebyText, $text); }
function acajoombot_jcalpro_transformall($html, $text) { global $database; $Itemid = $GLOBALS[ACA . 'itemidAca']; preg_match_all('#{jcalevent:.{7,15}}#', $html . $text, $tags); $replace = array(); $replacebyHTML = array(); $replacebyText = array(); if (!empty($tags[0])) { foreach ($tags[0] as $tag) { $isolate = explode(':', $tag); if (count($isolate) != 2) { continue; } $parameters = explode('|', $isolate[1]); if (count($parameters) != 4) { continue; } if (!empty($replace[$tag])) { continue; } $replace[$tag] = $tag; $query = 'SELECT `title`, `description`, `end_date`, `start_date`, `extid` from #__jcalpro_events where `extid` = ' . intval($parameters[0]); $database->setQuery($query); $database->loadObject($event); if (empty($event->extid)) { $replacebyHTML[$tag] = ''; $replacebyText[$tag] = ''; continue; } $eventhtml = ''; if ($parameters[2]) { $eventhtml .= '<div class="eventpaneopen_nws">'; } $eventhtml .= '<span class="eventheading_nws">' . $event->title . '</span>'; $eventtext = strtoupper(acajoom_mail::htmlToText($event->title)); if ($parameters[1]) { $start_date_array = explode('-', $event->start_date); $start_time_array = explode(':', substr($event->start_date, 10, 15)); $date = strftime(_DATE_FORMAT_LC, mktime($start_time_array[0], $start_time_array[1], 0, $start_date_array[1], $start_date_array[2], $start_date_array[0])); $eventhtml .= '<br/>' . $date; $eventtext .= "\r\n" . $date; } if ($parameters[2]) { $eventhtml .= '<br/>' . $event->description; $eventtext .= "\r\n" . acajoom_mail::htmlToText($event->description); } if ($parameters[3]) { if ($GLOBALS[ACA . 'use_sef'] == '1' and $GLOBALS['mosConfig_sef'] == '1' and function_exists('sefRelToAbs')) { $link = sefRelToAbs('index.php?option=com_jcalpro&extmode=view&extid=' . $event->extid . '&Itemid=' . $Itemid); } else { $link = $GLOBALS['mosConfig_live_site'] . '/index.php?option=com_jcalpro&extmode=view&extid=' . $event->extid . '&Itemid=' . $Itemid; } $eventhtml .= '<br/><a href="' . $link . '"><span class="readon_nws">' . _READ_MORE . '</span></a>'; $eventtext .= "\r\n" . ' * ' . _READ_MORE . ' ( ' . $link . ' )'; } if ($parameters[2]) { $eventhtml .= '</div>'; } $replacebyHTML[$tag] = $eventhtml; $replacebyText[$tag] = $eventtext; } } $html = str_replace($replace, $replacebyHTML, $html); $text = str_replace($replace, $replacebyText, $text); }
function import($listId) { $erro = new xerr(__FILE__, __FUNCTION__, __CLASS__); @set_time_limit(0); $queue = ''; $queue->sub_list_id = mosGetParam($_REQUEST, 'sub_list_id', ''); $queue->subscribed = mosGetParam($_REQUEST, 'subscribed', ''); $queue->acc_level = mosGetParam($_REQUEST, 'acc_level', 29); $path = $GLOBALS['mosConfig_absolute_path'] . $GLOBALS[ACA . 'upload_url']; $filename = $_FILES['importfile']['name']; if (is_writable($path)) { if (!@move_uploaded_file($_FILES['importfile']['tmp_name'], $path . $filename)) { echo _ACA_ERROR_MOVING_UPLOAD; } $import = file_get_contents($path . $filename); $import = str_replace(array("\r", "\r\n"), "\n", $import); $array = explode("\n", $import); if (sizeof($array) > 0) { foreach ($array as $row) { $row = trim($row); if (empty($row)) { continue; } $values = explode(',', $row); if (count($values) != 4) { echo '<br />' . acajoom::printM('red', $row . ' : Acajoom needs 4 arguments for each user'); continue; } $values[0] = trim($values[0]); $values[1] = trim($values[1]); if (isset($values[1])) { $valid = subscribers::validEmail($values[1]); if (!$valid) { echo '<br />' . acajoom::printM('red', $values[1] . ': ' . _ACA_EMAIL_INVALID); continue; } else { $subscriber = null; $subscriber->name = addslashes($values[0]); $subscriber->email = $values[1]; $subscriber->receive_html = empty($values[2]) ? '0' : '1'; $subscriber->confirmed = empty($values[3]) ? '0' : '1'; $subscriber->subscribe_date = acajoom::getNow(); $subscriber->language_iso = 'eng'; $subscriber->timezone = '00:00:00'; $subscriber->blacklist = '0'; $subscriber->params = ''; $d['email'] = $subscriber->email; $erro->ck = subscribers::getSubscriberIdFromEmail($d); $erro->Eck(__LINE__, '8679'); $subscriberId = $d['subscriberId']; if ($subscriberId < 1) { $erro->ck = subscribers::insertSubscriber($subscriber, $subscriberId); $erro->Eck(__LINE__, '8650'); } if (!$erro->ck) { echo '<br />' . acajoom::printM('red', $values[0] . ': ' . _ACA_SUBCRIBER_EXIT); } else { if (!empty($queue->subscribed) and $subscriberId > 0) { $queue->user_id = $subscriberId; $erro->ck = queue::updateSuscription($queue); $erro->Eck(__LINE__, '8651'); if ($GLOBALS[ACA . 'require_confirmation'] == '1' and $values[3] == '0') { $listIds = array(); $size = sizeof($queue->sub_list_id); for ($index = 0; $index < $size; $index++) { if (isset($queue->subscribed[$index])) { if ($queue->subscribed[$index] > 0) { $listIds[] = $queue->sub_list_id[$index]; } } } $erro->ck = acajoom_mail::processConfirmationEmail($subscriberId, $listIds); $erro->Eck(__LINE__, '8652'); } if ($erro->ck) { echo '<br />' . acajoom::printM('green', $values[0] . ': ' . _ACA_IMPORT_SUCCESS); } else { echo '<br />' . acajoom::printM('blue', $values[0] . ': ' . _ACA_PB_QUEUE); } } } } } } return true; } $erro->ck = unlink($path . $filename); $erro->Eck(__LINE__, '8655'); if (!$erro->ck) { echo _ACA_DELETION_OFFILE . ' ' . $path . $filename . ' ' . _ACA_MANUALLY_DELETE . '.</p>'; } } else { echo _ACA_CANNOT_WRITE_DIR . ' ' . $path . '</p>'; return false; } }