%PDF- %PDF-
| Direktori : /home/lightco1/luminero.com.au/modules/mod_cmc/ |
| Current File : /home/lightco1/luminero.com.au/modules/mod_cmc/helper.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');
JLoader::discover('cmcHelper', JPATH_ADMINISTRATOR . '/components/com_cmc/helpers/');
/**
* Class modCMCHelper
*
* @since 1.5
*/
class ModCMCHelper
{
/**
* Creates a JForm
*
* @param int $id - the module id. We use it to create unique jform instance
* @param object $params - the module params
*
* @return object
*/
public static function getForm ($id, $params)
{
$renderer = CmcHelperXmlbuilder::getInstance($params);
$user = JFactory::getUser();
// Generate the xml for the form
$xml = $renderer->build();
$mapping = self::getMapping($params->get('mapfields'));
try
{
JForm::addFieldPath(JPATH_ADMINISTRATOR . '/components/com_cmc/models/fields');
$form = JForm::getInstance('mod_cmc_' . $id, $xml, array('control' => 'jform'));
$form->bind($mapping);
// If we are not dealing with a guest, try to load the already existing profile merges and add them to the form
if (!$user->guest)
{
$subscriptionData = CmcHelperUsers::getSubscription($user->email, $params->get('listid'));
if ($subscriptionData)
{
$form->bind(CmcHelperSubscription::convertMergesToFormData($subscriptionData->merges, $params->get('listid')));
}
}
}
catch (Exception $e)
{
return false;
}
return $form;
}
/**
* Creates an array with the mapping to data
*
* @param string $raw - the raw mapping definition as taken out of the params
*
* @return array
*/
public static function getMapping($raw)
{
$user = JFactory::getUser();
// No need to go further. User is not logged in, so we can't use any info from his profile...
if ($user->guest)
{
return array();
}
$lines = explode("\n", $raw);
$groups = array();
foreach ($lines as $line)
{
if (empty($line))
{
continue;
}
$map = explode('=', $line);
if (strstr($map[1], ':'))
{
$parts = explode(':', $map[1]);
$field = explode(' ', $user->get($parts[0]));
$value = trim($field[(int) $parts[1]]);
}
else
{
$value = $user->get(trim($map[1]));
}
$groups[$map[0]] = $value;
}
return array('cmc_groups' => $groups);
}
/**
* Checks the subscribe status of the logged in user
*
* @param int $id - the list_id
*
* @return mixed
*/
public static function getNewsletterStatus($id)
{
$user = JFactory::getUser();
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('status')->from('#__cmc_users')
->where('(' . $db->qn('user_id') . '=' . $db->q($user->get('id')) . ' OR email = ' . $db->q($user->email) . ')')
->where($db->qn('list_id') . '=' . $db->q($id));
$db->setQuery($query);
return $db->loadObject();
}
}