Пример #1
0
 function optout()
 {
     acymailing_checkRobots();
     $config = acymailing_config();
     $app = JFactory::getApplication();
     $userClass = acymailing_get('class.subscriber');
     $userClass->geolocRight = true;
     $my = JFactory::getUser();
     $ajax = JRequest::getInt('ajax', 0);
     if ($ajax) {
         @ob_end_clean();
         header("Content-type:text/html; charset=utf-8");
     }
     $redirectUrl = urldecode(JRequest::getString('redirectunsub'));
     if (!empty($redirectUrl)) {
         $this->setRedirect($redirectUrl);
     }
     $formData = JRequest::getVar('user', array(), '', 'array');
     $email = trim(strip_tags(@$formData['email']));
     if (empty($email) && !empty($my->email)) {
         $email = $my->email;
     }
     $userHelper = acymailing_get('helper.user');
     if (empty($email) || !$userHelper->validEmail($email)) {
         if ($ajax) {
             echo '{"message":"' . str_replace('"', '\\"', JText::_('VALID_EMAIL')) . '","type":"error","code":"7"}';
         } else {
             echo "<script>alert('" . JText::_('VALID_EMAIL', true) . "'); window.history.go(-1);</script>";
         }
         exit;
     }
     $alreadyExists = $userClass->get($email);
     if (empty($alreadyExists->subid)) {
         if ($ajax) {
             echo '{"message":"' . str_replace('"', '\\"', JText::sprintf('NOT_IN_LIST', '<b><i>' . $email . '</i></b>')) . '","type":"error","code":"8"}';
             exit;
         }
         if (empty($redirectUrl)) {
             acymailing_display(JText::sprintf('NOT_IN_LIST', '<b><i>' . $email . '</i></b>'), 'warning');
         } else {
             $app->enqueueMessage(JText::sprintf('NOT_IN_LIST', '<b><i>' . $email . '</i></b>'), 'notice');
         }
         return $this->_closepop($redirectUrl);
     }
     if ($config->get('allow_modif', 'data') == 'none' and empty($my->email) || $my->email != $email) {
         $mailClass = acymailing_get('helper.mailer');
         $mailClass->checkConfirmField = false;
         $mailClass->checkEnabled = false;
         $mailClass->report = false;
         $mailClass->sendOne('modif', $alreadyExists->subid);
         if ($ajax) {
             echo '{"message":"' . str_replace('"', '\\"', JText::_('IDENTIFICATION_SENT')) . '","type":"success","code":"9"}';
             exit;
         }
         if (empty($redirectUrl)) {
             acymailing_display(JText::_('IDENTIFICATION_SENT'), 'warning');
         } else {
             $app->enqueueMessage(JText::_('IDENTIFICATION_SENT'), 'notice');
         }
         return $this->_closepop($redirectUrl);
     }
     $visibleSubscription = JRequest::getVar('subscription', '', '', 'array');
     $currentSubscription = $userClass->getSubscriptionStatus($alreadyExists->subid);
     $hiddenSubscription = explode(',', JRequest::getVar('hiddenlists', '', '', 'string'));
     $updatelists = array();
     $removeSubscription = array_merge($visibleSubscription, $hiddenSubscription);
     foreach ($removeSubscription as $idList) {
         if (!empty($currentSubscription[$idList]) and $currentSubscription[$idList]->status != '-1') {
             $updatelists[-1][] = $idList;
         }
     }
     if (!empty($updatelists)) {
         $listsubClass = acymailing_get('class.listsub');
         $listsubClass->updateSubscription($alreadyExists->subid, $updatelists);
         if ($config->get('unsubscription_message', 1)) {
             if ($ajax) {
                 echo '{"message":"' . str_replace('"', '\\"', JText::_('UNSUBSCRIPTION_OK')) . '","type":"success","code":"10"}';
                 exit;
             }
             if (empty($redirectUrl)) {
                 acymailing_display(JText::_('UNSUBSCRIPTION_OK'), 'info');
             } else {
                 if (strlen(JText::_('UNSUBSCRIPTION_OK')) > 0) {
                     $app->enqueueMessage(JText::_('UNSUBSCRIPTION_OK'));
                 }
             }
         }
     } elseif ($config->get('unsubscription_message', 1) || $ajax) {
         if ($ajax) {
             echo '{"message":"' . str_replace('"', '\\"', JText::_('UNSUBSCRIPTION_NOT_IN_LIST')) . '","type":"success","code":"11"}';
             exit;
         }
         if (empty($redirectUrl)) {
             acymailing_display(JText::_('UNSUBSCRIPTION_NOT_IN_LIST'), 'info');
         } else {
             $app->enqueueMessage(JText::_('UNSUBSCRIPTION_NOT_IN_LIST'));
         }
     }
     if ($ajax) {
         exit;
     }
     return $this->_closepop($redirectUrl);
 }
Пример #2
0
	function sendarchive(){

		$config = acymailing_config();
		if(!$config->get('show_receiveemail',0)) return $this->listing();

		JRequest::checkToken() or die( 'Please make sure your cookies are enabled' );
		acymailing_checkRobots();

		$receiveEmails = JRequest::getVar( 'receivemail', array(), '', 'array' );

		$email = trim(JRequest::getString('email'));

		$userClass = acymailing_get('helper.user');
		if(!$userClass->validEmail($email,true)){
			echo "<script>alert('".JText::_('VALID_EMAIL',true)."'); window.history.go(-1);</script>";
			exit;
		}

		$captchaClass = acymailing_get('class.acycaptcha');
		$captchaClass->state = 'acycaptchacomponent';
		if(!$captchaClass->check(JRequest::getString('acycaptcha'))){
			$captchaClass->returnError();
		}

		JArrayHelper::toInteger( $receiveEmails, array() );

		$db = JFactory::getDBO();
		$db->setQuery("SELECT mailid FROM #__acymailing_mail WHERE mailid IN ('".implode("','",$receiveEmails)."') AND published = 1 AND visible = 1");
		$mailids = acymailing_loadResultArray($db);

		$receiver = new stdClass();
		$receiver->email = $email;
		$receiver->subid = 0;
		$receiver->html = 1;
		$receiver->name = trim(strip_tags(JRequest::getString('name','')));

		$mailerHelper = acymailing_get('helper.mailer');
		$mailerHelper->checkConfirmField = false;
		$mailerHelper->checkEnabled = false;
		$mailerHelper->checkAccept = false;
		$mailerHelper->loadedToSend = true;

		foreach($mailids as $oneMailid){
			$mailerHelper->sendOne($oneMailid,$receiver);
		}

		return $this->listing();
	}
Пример #3
0
 function savechanges()
 {
     JRequest::checkToken() or die('Please make sure your cookies are enabled');
     acymailing_checkRobots();
     $app = JFactory::getApplication();
     $config = acymailing_config();
     $subscriberClass = acymailing_get('class.subscriber');
     $status = $subscriberClass->saveForm();
     $subscriberClass->sendNotification();
     if ($status) {
         if ($subscriberClass->confirmationSent) {
             if ($config->get('subscription_message', 1)) {
                 $app->enqueueMessage(JText::_('CONFIRMATION_SENT'), 'message');
             }
             $redirectlink = $config->get('sub_redirect');
         } elseif ($subscriberClass->newUser) {
             if ($config->get('subscription_message', 1)) {
                 $app->enqueueMessage(JText::_('SUBSCRIPTION_OK'), 'message');
             }
             $redirectlink = $config->get('sub_redirect');
         } else {
             $app->enqueueMessage(JText::_('SUBSCRIPTION_UPDATED_OK'), 'message');
             $redirectlink = $config->get('modif_redirect');
         }
     } elseif ($subscriberClass->requireId) {
         $app->enqueueMessage(JText::_('IDENTIFICATION_SENT'), 'notice');
     } else {
         $app->enqueueMessage(JText::_('ERROR_SAVING'), 'error');
     }
     if (!empty($redirectlink)) {
         $this->setRedirect($redirectlink);
         return;
     }
     if ($subscriberClass->identify(true)) {
         return $this->modify();
     }
     return $this->subscribe();
 }
Пример #4
0
	function savechanges(){
		JRequest::checkToken() or die( 'Please make sure your cookies are enabled' );
		acymailing_checkRobots();
		$app = JFactory::getApplication();

		$config = acymailing_config();
		$subscriberClass = acymailing_get('class.subscriber');
		$subscriberClass->geolocRight = true;
		$subscriberClass->extendedEmailVerif = true;

		if($config->get('captcha_enabled') AND !$subscriberClass->identify(true)){
			$captchaClass = acymailing_get('class.acycaptcha');
			$captchaClass->state = 'acycaptchacomponent';
			if(!$captchaClass->check(JRequest::getString('acycaptcha'))){
				$captchaClass->returnError();
			}
		}

		$status = $subscriberClass->saveForm();
		$subscriberClass->sendNotification();
		if($status){
			if($subscriberClass->confirmationSent){
				if($config->get('subscription_message',1) && strlen(JText::_('CONFIRMATION_SENT'))>0) $app->enqueueMessage(JText::_('CONFIRMATION_SENT') ,'message');
				$redirectlink = $config->get('sub_redirect');
			}elseif($subscriberClass->newUser){
				if($config->get('subscription_message',1) && strlen(JText::_('SUBSCRIPTION_OK'))>0) $app->enqueueMessage(JText::_('SUBSCRIPTION_OK'), 'message');
				$redirectlink = $config->get('sub_redirect');
			}else{
				if(strlen(JText::_('SUBSCRIPTION_UPDATE_OK'))>0) $app->enqueueMessage(JText::_('SUBSCRIPTION_UPDATED_OK'), 'message');
				$redirectlink = $config->get('modif_redirect');
			}
		}elseif($subscriberClass->requireId){
			if(strlen(JText::_('IDENTIFICATION_SENT'))>0) $app->enqueueMessage(JText::_( 'IDENTIFICATION_SENT' ), 'notice');
		}else{
			if(strlen(JText::_('ERROR_SAVING'))>0) $app->enqueueMessage(JText::_( 'ERROR_SAVING' ), 'error');
		}

		if(!empty($redirectlink)){

			$this->setRedirect($redirectlink);
			return;
		}

		if($subscriberClass->identify(true)) return $this->modify();
		return $this->subscribe();
	}