<?php
/**
 * @version        5.4.5
 * @package        Joomla
 * @subpackage     Joom Donation
 * @author         Tuan Pham Ngoc
 * @copyright      Copyright (C) 2009 - 2018 Ossolution Team
 * @license        GNU/GPL, see LICENSE.php
 */

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

class plgJDonationAcym extends JPlugin
{
	public function __construct(& $subject, $config)
	{
		parent::__construct($subject, $config);
	}
	
	function onAfterStoreDonor($row) 
	{			
		$db = JFactory::getDbo() ;
        $show_newsletter_subscription = DonationHelper::getConfigValue('show_newsletter_subscription');
        if($show_newsletter_subscription == 1 && $row->newsletter_subscription == 1) 
		{
            $subscriber = 1;
        }
		elseif($show_newsletter_subscription == 0)
		{
            $subscriber = 1;
        }
		else
		{
            $subscriber = 0;
        }
		if (version_compare(JVERSION, '1.6.0', 'ge')) 
		{
			$params = $this->params ;
		} 
		else 
		{
			$sql  = 'SELECT params FROM #__plugins WHERE folder = "jdonation" AND `element` = "acym"' ;
			$db->setQuery($sql) ;
			$params = $db->loadResult() ;
			$params = new JParameter($params) ;			
		}
		if($subscriber == 1)
		{
			if (!JMailHelper::isEmailAddress($row->email))
			{
				return;
			}

            $listIds = trim($params->get('list_ids', ''));
			if($listIds != '')
			{
				$listIds = explode(',', $listIds);
				require_once JPATH_ADMINISTRATOR . '/components/com_acym/helpers/helper.php';
				$db    = JFactory::getDbo();
				$query = $db->getQuery(true);
				/* @var acymuserClass $userClass */
				$userClass               = acym_get('class.user');
				$userClass->checkVisitor = false;
				if (method_exists($userClass, 'getOneByEmail'))
				{
					$subId = $userClass->getOneByEmail($row->email);
				}
				else
				{
					$subId = $userClass->getUserIdByEmail($row->email);
				}

				if (!$subId)
				{
					$myUser = new stdClass();
					$myUser->email = $row->email;
					$myUser->name = trim($row->first_name . ' ' . $row->last_name);
					$myUser->cms_id = $row->user_id;
					$subId = $userClass->save($myUser);
				}

				if (is_object($subId))
				{
					$subId = $subId->id;
				}
				$userClass->subscribe($subId, $listIds);
			}
		}
	}
}	