Example #1
0
 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;
 }
Example #2
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();
 }
 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;
     }
 }