%PDF- %PDF-
| Direktori : /home/lightco1/luminero.com.au/components/com_cmc/controllers/ |
| Current File : /home/lightco1/luminero.com.au/components/com_cmc/controllers/subscription.raw.php |
<?php
/**
* @package CMC
* @author Compojoom <contact-us@compojoom.com>
* @date 2016-04-15
*
* @copyright Copyright (C) 2008 - 2016 compojoom.com - Daniel Dimitrov, Yves Hoppe. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.controllerlegacy');
/**
* Class CmcControllerSubscription
*
* @since 1.0
*/
class CmcControllerSubscription extends JControllerLegacy
{
/**
* Save the subscription
*
* @return void
*/
public function save()
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$appl = JFactory::getApplication();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$config = JComponentHelper::getParams('com_cmc');
$chimp = new cmcHelperChimp;
$input = JFactory::getApplication()->input;
$form = $input->get('jform', '', 'array');
$isAjax = $input->get('ajax');
$mergeVars = CmcHelperList::mergeVars($form, $form['cmc']['listid']);
$listId = $form['cmc']['listid'];
$email = $mergeVars['EMAIL'];
$memberInfo = $chimp->listSubscribe(
$listId, $email, $mergeVars, $mergeVars['GROUPINGS'], 'html',
$config->get('opt_in', true), true, true, false
);
if ($chimp->getLastError())
{
$errors[] = $chimp->getLastError();
if (isset($memberInfo['errors']))
{
foreach ($memberInfo['errors'] as $mailchimpErrors )
{
$errors[] = $mailchimpErrors['message'];
}
}
$response['html'] = implode(
'',
array_map(
function($v) {
return '<p>' . $v . '</p>';
},
$errors
)
);
$response['error'] = true;
}
else
{
// Get the member info from mailchimp
$status = 'applied';
// User was found on list
if (isset($memberInfo['status']))
{
$status = $memberInfo['status'];
}
// Check if the subscription is already present in the db
if (CmcHelperUsers::getSubscription($email, $listId))
{
$query->update('#__cmc_users')
->set(
array(
'list_id = ' . $db->quote($listId),
'email = ' . $db->quote($email),
'merges = ' . $db->quote(json_encode($mergeVars)),
'status = ' . $db->q($status)
)
)
->where('list_id = ' . $db->quote($listId))
->where('email = ' . $db->quote($email));
$html = 'updated';
}
else
{
$query->insert('#__cmc_users')->columns('list_id,email,merges,status')
->values($db->quote($listId) . ',' . $db->quote($email) . ',' . $db->quote(json_encode($mergeVars)) . ',' . $db->q($status));
$html = 'saved';
}
$db->setQuery($query);
$db->execute();
$response['html'] = $html;
$response['error'] = false;
}
if ($isAjax)
{
echo json_encode($response);
jexit();
}
$appl->enqueueMessage($response['html']);
$appl->redirect($_SERVER['HTTP_REFERER']);
}
/**
* Checks if the current user exists in the mailchimp database
*
* @throws Exception
*
* @return void
*/
public function exist()
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$url = '';
$chimp = new cmcHelperChimp;
$input = JFactory::getApplication()->input;
$form = $input->get('jform', '', 'array');
$mergeVars = CmcHelperList::mergeVars($form, $form['cmc']['listid']);
$email = $mergeVars['EMAIL'];
$listId = $form['cmc']['listid'];
// Check if the user is in the list already
$isSubscribed = $chimp->isSubscribed($listId, $email);
$url = '';
if ($isSubscribed)
{
$url = JRoute::_('index.php?option=com_cmc&task=subscription.update&email=' . $email . '&listid=' . $listId);
}
echo json_encode(array('exists' => $isSubscribed, 'url' => $url));
jexit();
}
}