Exemple #1
0
 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);
 }
Exemple #3
0
 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;
}
Exemple #6
0
 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();
 }
Exemple #7
0
     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);
Exemple #8
0
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;
     }
 }