function updateOneSuscription($subscriberId) { $queue = ''; $queue->user_id = $subscriberId; if (ACA_CMSTYPE) { // joomla 15 $database =& JFactory::getDBO(); $acl =& JFactory::getACL(); $listIds = JRequest::getVar('listid', '0'); } else { //joomla 1x global $database, $acl; $listIds = mosGetParam($_REQUEST, 'listid', ''); } //endif if (!empty($listIds)) { $accessName = ''; if (ACA_CMSTYPE) { // joomla 15 $userid = intval(JRequest::getVar('userid', 0)); } else { //joomla 1x $userid = intval(mosGetParam($_REQUEST, 'userid', 0)); } //endif $query = "SELECT usertype " . "\n FROM #__users" . "\n WHERE id = " . (int) $userid; $database->setQuery($query); $accessName = $database->loadResult(); //$accessName = strtolower(mosGetParam($_REQUEST, 'access', 'Public Frontend')); $groupId = $acl->get_group_id($accessName, 'ARO'); if (empty($groupId)) { $groupId = 29; } $idslists = explode(",", $listIds); foreach ($idslists as $i => $listId) { $listId = intval($listId); if ($listId <= 0) { break; } $list = lists::getOneList($listId); if (empty($list)) { echo acajoom::printM('red', 'List not defined'); return false; } $ex_groups = $acl->get_group_children($list->acc_id, 'ARO', 'RECURSE'); $ex_groups[] = $list->acc_id; $gidAdmin = $acl->get_group_id('Public Backend', 'ARO'); if (!in_array($gidAdmin, $ex_groups)) { $ex_groups2 = $acl->get_group_children($gidAdmin, 'ARO', 'RECURSE'); $ex_groups2[] = $gidAdmin; $ex_groups = array_merge($ex_groups, $ex_groups2); } if (!in_array($groupId, $ex_groups)) { echo acajoom::printM('red', ACA_NO_LIST_PERM); return false; } $queue->sub_list_id[$i] = $listId; $queue->subscribed[$i] = 1; $queue->acc_level[$i] = $list->acc_id; } } else { if (ACA_CMSTYPE) { // joomla 15 $queue->sub_list_id = JRequest::getVar('sub_list_id', 0); $queue->subscribed = JRequest::getVar('subscribed', 0); } else { //joomla 1x $queue->sub_list_id = mosGetParam($_REQUEST, 'sub_list_id', ''); $queue->subscribed = mosGetParam($_REQUEST, 'subscribed', 0); } //endif if ($queue->subscribed == 0) { /*$queue->subscribed = $queue->sub_list_id; for($i=1;$i<=count($queue->sub_list_id);$i++){ $queue->subscribed[$i] = 0; }*/ $queue->subscribed = array(); if (!empty($queue->sub_list_id)) { foreach ($queue->sub_list_id as $key => $value) { $queue->subscribed[$key] = 0; } } } if (ACA_CMSTYPE) { // joomla 15 $queue->acc_level = intval(JRequest::getVar('acc_level', 29)); } else { //joomla 1x $queue->acc_level = intval(mosGetParam($_REQUEST, 'acc_level', 29)); } //endif if (!empty($queue->sub_list_id)) { foreach ($queue->sub_list_id as $key => $value) { if (empty($queue->subscribed[$key]) or $queue->subscribed[$key] != 1) { $queue->subscribed[$key] = 0; } } } /*for($i=1;$i<=count($queue->sub_list_id);$i++){ if($queue->subscribed[$i] != 1){ $queue->subscribed[$i] = 0; } }*/ } if (!empty($queue->subscribed) and $subscriberId > 0) { return queue::updateSuscription($queue); } 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(); }
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; } }