function upgrade_News3() { global $my, $database; $xf = new xonfig(); $newLists = array(); $idImportedList = array(); $i = 0; $database->setQuery("SELECT * FROM #__newsletter_letters"); $newsletters = $database->loadObjectList(); $error = $database->getErrorMsg(); if (!empty($error)) { echo '<p><b>Error (class.upgrade.php->upgrade_News3 () line ' . __LINE__ . '):</b> Error getting newsletters. Database error: <br />' . $error . '</p>'; return false; } else { foreach ($newsletters as $newsletter) { $list->list_name = $newsletter->list_name; $list->list_desc = $newsletter->list_desc; $list->sendername = $newsletter->sendername; $list->senderemail = $newsletter->senderemail; $list->bounceadres = $newsletter->bounceadres; $list->layout = $newsletter->layout; $list->template = 0; $list->subscribemessage = $newsletter->subscribemessage; $list->unsubscribemessage = $newsletter->unsubscribemessage; $list->html = $newsletter->html; $list->hidden = !$newsletter->hidden; $list->unsubscribesend = 1; $list->list_type = '1'; $list->auto_add = 0; $list->user_choose = 0; $list->cat_id = 0; $list->delay_min = 0; $list->delay_max = 0; $list->follow_up = 0; $list->owner = $my->id; $list->auto_add = 0; $list->acc_level = $newsletter->aid; $list->acc_id = 29; $list->published = 1; $list->createdate = acajoom::getNow(); $list->footer = 1; $list->notify_id = 0; $list->notification = 0; $query = 'INSERT INTO `#__acajoom_lists` (`list_name`) VALUES (\'' . $list->list_name . '\' )'; $database->setQuery($query); $database->query(); $error = $database->getErrorMsg(); if (!empty($error)) { echo '<p><b>Error (class.upgrade.php->upgrade_News3() line ' . __LINE__ . '):</b> Error adding list to database. Database error: <br />' . $error . '</p><br /><br />Are you trying to insert a list name which is already in use? The list name has to be different for each list! <br /><br />'; } else { $query = 'SELECT * FROM `#__acajoom_lists` WHERE `list_name`= \'' . $list->list_name . '\''; $database->setQuery($query); $database->loadObject($mynewlist); $error = $database->getErrorMsg(); $xf->plus('totallist0', 1); $xf->plus('act_totallist0', 1); $xf->plus('totallist1', 1); $xf->plus('act_totallist1', 1); if (!empty($error)) { echo '<p><b>Error (class.upgrade.php->upgrade_News3() line ' . __LINE__ . '):</b> Error getting listname. Database error: <br />' . $error . '</p>'; return false; } else { $idImportedList[$newsletter->id] = $mynewlist->id; $newLists[$i] = $mynewlist->id; $i++; $list->id = $mynewlist->id; $error = lists::updateListData($list); if (!$error) { echo '<p><b>Error (class.upgrade.php->upgrade_News3 () line ' . __LINE__ . '):</b> Error inserting list. Database error: <br />' . $error . '</p>'; } else { echo '<br /><b>' . @constant($GLOBALS[ACA . 'listnames1']) . ': </b>' . $list->list_name . ': ' . acajoom::printM('green', _ACA_IMPORT_SUCCESS); $database->setQuery("SELECT * FROM #__newsletter_mailing WHERE `list_id`=" . $newsletter->id); $mailingsImports = $database->loadObjectList(); $error = $database->getErrorMsg(); if (!empty($error)) { echo '<p><b>Error (class.upgrade.php->upgrade_News3() line ' . __LINE__ . '):</b> Error getting mailings. Database error: <br />' . $error . '</p>'; return false; } else { $issue_nb = 1; foreach ($mailingsImports as $mailingsImport) { $mailings->list_id = $mynewlist->id; $mailings->list_type = '1'; $mailings->send_date = $mailingsImport->send_date; $mailings->subject = $mailingsImport->subject; $mailings->htmlcontent = $mailingsImport->htmlcontent; $mailings->textonly = $mailingsImport->textonly; $mailings->attachments = $mailingsImport->attachments; $mailings->images = $mailingsImport->images; $mailings->published = $mailingsImport->published; $mailings->visible = $mailingsImport->visible; $mailings->html = $mynewlist->html; $mailings->fromname = $list->sendername; $mailings->fromemail = $list->senderemail; $mailings->frombounce = $list->bounceadres; $mailings->author_id = $my->id; $mailings->delay = 0; $mailings->issue_nb = $issue_nb; $mailings->acc_level = 25; $mailings->createdate = $list->createdate; $issue_nb++; $error = xmailing::insertMailingData($mailings); if (!$error) { echo '<p><b>Error (class.upgrade.php->upgrade_News3() line ' . __LINE__ . '):</b> Error inserting mailing. Database error: <br />' . $error . '</p>'; } else { echo '<br /><b>' . _ACA_MENU_MAILING_TITLE . ': </b>' . $mailingsImport->subject . ': ' . acajoom::printM('green', _ACA_IMPORT_SUCCESS); } } } } } } } $database->setQuery("SELECT * FROM #__newsletter_subscribers"); $subscribers = $database->loadObjectList(); $error = $database->getErrorMsg(); if (!empty($error)) { echo '<p><b>Error (class.upgrade.php->upgrade_News3() line ' . __LINE__ . '):</b> Error getting subscribers. Database error: <br />' . $error . '</p>'; return false; } else { foreach ($subscribers as $subscriber) { $newSubs = true; $acajoomsubscribers = subscribers::getSubscribers(-1, -1, '', $total, 0, '', '', '', ''); foreach ($acajoomsubscribers as $acajoomsubscriber) { if ($subscriber->subscriber_email == $acajoomsubscriber->email) { $newSubs = false; $subId[0] = $acajoomsubscriber->id; } } if ($newSubs) { $newSubscriber->user_id = $subscriber->userid; $newSubscriber->name = $subscriber->subscriber_name; $newSubscriber->email = $subscriber->subscriber_email; $newSubscriber->receive_html = $subscriber->receive_html; $newSubscriber->confirmed = $subscriber->confirmed; $newSubscriber->subscribe_date = $subscriber->subscribe_date; $newSubscriber->blacklist = 0; $newSubscriber->timezone = '00:00:00'; $newSubscriber->language_iso = 'eng'; $newSubscriber->params = ''; $error = subscribers::insertSubscriber($newSubscriber, $subscriberId); if (!empty($error)) { if ($subscriberId < 1) { echo ' Error inserting subscriber:' . $newSubscriber->name; } $error = ''; $subId[0] = $subscriberId; } else { echo '<br /><b>' . _ACA_MENU_SUBSCRIBERS . ': </b>' . $newSubscriber->name . ': ' . acajoom::printM('green', _ACA_IMPORT_SUCCESS); $d['email'] = $subscriber->email; $erro->ck = subscribers::getSubscriberIdFromEmail($d); $erro->Eck(__LINE__, '8304'); $subId[0] = $d['subscriberId']; } } else { echo '<br /><b>' . _ACA_MENU_SUBSCRIBERS . ': </b>' . $subscriber->subscriber_name . ': ' . acajoom::printM('red', _ACA_IMPORT_EXIST); } $j = 0; $queue = queue::suscriptionExist($subId[0], $idImportedList[$subscriber->list_id]); if (empty($queue)) { $error = queue::insertQueuesForNews($subId, $idImportedList[$subscriber->list_id], 29); if (!$error) { echo '<p><b>Error (class.upgrade.php->upgrade_News3 () line ' . __LINE__ . '):</b> Error inserting queue. Database error: <br />' . $error . '</p>'; } } } } } return true; }
function newSubscriber($name, $email, $confirm = false) { if (ACA_CMSTYPE) { // joomla 15 $database =& JFactory::getDBO(); $acl =& JFactory::getACL(); $rHTML = JRequest::getVar('receive_html', '0', 'request'); $timezone = JRequest::getVar('timezone', '00:00:00'); $lang6 = JRequest::getVar('lang', 'eng'); } else { //joomla 1x global $database, $acl; $rHTML = intval(mosGetParam($_REQUEST, 'receive_html', 0)); $timezone = mosGetParam($_REQUEST, 'timezone', '00:00:00'); $lang6 = mosGetParam($_REQUEST, 'lang', 'eng'); } //endif $erro = new xerr(__FILE__, __FUNCTION__, __CLASS__); $newSubscriber = new stdClass(); $newSubscriber->id = 0; $newSubscriber->user_id = 0; $newSubscriber->name = $name; $newSubscriber->email = $email; $newSubscriber->receive_html = $rHTML; if ($GLOBALS[ACA . 'require_confirmation'] and !$confirm) { $newSubscriber->confirmed = 0; } else { $newSubscriber->confirmed = 1; } $newSubscriber->blacklist = 0; $newSubscriber->timezone = $timezone; $newSubscriber->language_iso = $lang6; $newSubscriber->params = ''; $newSubscriber->subscribe_date = acajoom::getNow(); $dontParse[] = 'params'; acajoom::objectHTMLSafe($newSubscriber, ENT_QUOTES, $dontParse); $confirmation = true; $d['email'] = $newSubscriber->email; $erro->ck = subscribers::insertSubscriber($newSubscriber, $subscriberId); if (!$erro->Eck(__LINE__, '8280')) { $erro->ck = subscribers::getSubscriberIdFromEmail($d); if ($erro->Eck(__LINE__, '8270')) { $confirmation = false; } else { return acajoom::printM('blue', _ACA_ERROR); } } if ($GLOBALS[ACA . 'require_confirmation'] and $confirmation and !$confirm and !subscribers::userConfirmed($newSubscriber->email)) { $erro->ck = acajoom_mail::sendConfirmationEmail($subscriberId); $erro->Eck(__LINE__, '8281'); $needConfirm = true; } else { $needConfirm = false; } $erro->ck = queue::updateOneSuscription($subscriberId); if (!$erro->Eck(__LINE__, '8272')) { return acajoom::printM('blue', _ACA_ERROR); } if ($needConfirm) { $queues = queue::getSubscriberLists($subscriberId); $qids = acajoom::convertObjectToIdList($queues, 'qid'); $erro->ck = queue::updateSuspend($qids, 1); if (!$erro->Eck(__LINE__, '8273')) { return $erro->mess; } $message = acajoom::printM('blue', _ACA_COMFIRM_SUBSCRIPTION); } else { $message = acajoom::printM('green', _ACA_SUCCESS_ADD_LIST); } return $message; }
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; } }