Your IP : 216.73.216.224


Current Path : /var/www/html/administrator/components/com_jdonation/view/configuration/
Upload File :
Current File : /var/www/html/administrator/components/com_jdonation/view/configuration/html.php

<?php
use Joomla\CMS\Language\Text;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Form\FormHelper;
use Joomla\CMS\Factory;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\Registry\Registry;
use Joomla\CMS\Filesystem\Folder;
/**
 * @version        5.4.9
 * @package        Joomla
 * @subpackage     Joom Donation
 * @author         Tuan Pham Ngoc
 * @copyright      Copyright (C) 2009 - 2018 Ossolution Team
 * @license        GNU/GPL, see LICENSE.php
 */
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die ();

class DonationViewConfigurationHtml extends OSFViewHtml
{
    public static function showCheckboxfield($name, $value ,$option1='',$option2='')
    {
        if($option1 == ""){
            $option1 = Text::_('JNO');
        }
        if($option2 == ""){
            $option2 = Text::_('JYES');
        }

        HTMLHelper::_('jquery.framework');
        $field = FormHelper::loadFieldType('Radio');

        $element = new SimpleXMLElement('<field />');
        $element->addAttribute('name', $name);

        if (version_compare(JVERSION, '4.0.0-dev', 'ge'))
        {
            $element->addAttribute('layout', 'joomla.form.field.radio.switcher');
        }
        else
        {
            $element->addAttribute('class', 'radio btn-group btn-group-yesno');
        }

        $element->addAttribute('default', '0');

        $node = $element->addChild('option', $option1);
        $node->addAttribute('value', '0');

        $node = $element->addChild('option', $option2);
        $node->addAttribute('value', '1');

        $field->setup($element, $value);

        return $field->input;
    }

	public function display()
	{
        if (!DonationHelper::isJoomla4()) 
		{
			HTMLHelper::_('formbehavior.chosen', 'select');
		}
		$db         = Factory::getDbo();
		$config     = $this->model->getData();
		$options    = array();
		$options [] = HTMLHelper::_('select.option', 0, Text::_('No integration'));
		if (file_exists(JPATH_ROOT . '/components/com_comprofiler/comprofiler.php'))
		{
			$options[] = HTMLHelper::_('select.option', 1, Text::_('Community Builder'));
		}
		if (file_exists(JPATH_ROOT . '/components/com_community/community.php'))
		{
			$options[] = HTMLHelper::_('select.option', 2, Text::_('JomSocial'));
		}
		if (PluginHelper::isEnabled('user', 'profile'))
		{
			$options[] = HTMLHelper::_('select.option', 3, Text::_('Joomla Profile'));
		}
        if (file_exists(JPATH_ROOT . '/components/com_easysocial/easysocial.php'))
        {
            $options[] = HTMLHelper::_('select.option', 4, Text::_('Easy Social'));
        }
        if (file_exists(JPATH_ROOT . '/components/com_jsn/jsn.php'))
        {
            $options[] = HTMLHelper::_('select.option', 5, Text::_('Easy Profile'));
        }

		$lists ['cb_integration']                    = HTMLHelper::_('select.genericlist', $options, 'cb_integration', 'class="form-select input-large ilarge"', 'value', 'text', (int)$config->cb_integration);
		//$lists ['registration_integration']          = self::showCheckboxfield('registration_integration',$config->registration_integration);

		$options   = array();
		$options[] = HTMLHelper::_('select.option', 2, Text::_('JD_VERSION_2'));
		$options[] = HTMLHelper::_('select.option', 3, Text::_('JD_VERSION_3'));
		$options[] = HTMLHelper::_('select.option', 4, Text::_('JD_VERSION_4'));
		if (DonationHelper::isJoomla4())
		{
			$options[] = HTMLHelper::_('select.option', 5, Text::_('JD_VERSION_5'));
		}
		$options[] = HTMLHelper::_('select.option', 6, Text::_('JD_UIKIT3'));

		$lists['twitter_bootstrap_version'] = HTMLHelper::_('select.genericlist', $options, 'twitter_bootstrap_version', 'class="form-select input-large ilarge"', 'value', 'text', $config->twitter_bootstrap_version ? $config->twitter_bootstrap_version : 2);

		$options = array();
		$options[] = HTMLHelper::_('select.option','0',Text::_('JNO'));
		$options[] = HTMLHelper::_('select.option','1',Text::_('JYES'));
		$options[] = HTMLHelper::_('select.option','2',Text::_('JYES').' - '.Text::_('JOPTION_OPTIONAL'));
		$lists ['registration_integration']                    = HTMLHelper::_('select.genericlist', $options, 'registration_integration', 'class="form-select input-large ilarge"', 'value', 'text', (int)$config->registration_integration);
		$lists ['show_login_box']                    = self::showCheckboxfield('show_login_box',(int)$config->show_login_box);
		$lists ['use_campaign']                      = self::showCheckboxfield('use_campaign',(int)$config->use_campaign);
		$lists ['enable_recurring']                  = self::showCheckboxfield('enable_recurring',(int)$config->enable_recurring);
        $lists ['enable_cancel_recurring']           = self::showCheckboxfield('enable_cancel_recurring',(int)$config->enable_cancel_recurring);
		$lists ['use_https']                         = self::showCheckboxfield('use_https',(int)$config->use_https);
		$lists ['enable_hide_donor']                 = self::showCheckboxfield('enable_hide_donor',(int)$config->enable_hide_donor);
		$lists ['activate_donation_receipt_feature'] = self::showCheckboxfield('activate_donation_receipt_feature',(int)$config->activate_donation_receipt_feature);// JHtml::_('select.booleanlist', 'activate_donation_receipt_feature', '', $config->activate_donation_receipt_feature);
		$lists ['send_receipt_via_email']            = self::showCheckboxfield('send_receipt_via_email',(int)$config->send_receipt_via_email); //JHtml::_('select.booleanlist', 'send_receipt_via_email', '', $config->send_receipt_via_email);
        $lists ['generated_invoice_for_paid_donation_only'] = self::showCheckboxfield('generated_invoice_for_paid_donation_only',(int)$config->generated_invoice_for_paid_donation_only);
        $lists ['reset_invoice_number']              = self::showCheckboxfield('reset_invoice_number',(int)$config->reset_invoice_number);
		$lists ['send_receipt_to_admin']             = self::showCheckboxfield('send_receipt_to_admin',(int)$config->send_receipt_to_admin); 
		$lists ['show_r_times']                      = self::showCheckboxfield('show_r_times',(int)$config->show_r_times); //JHtml::_('select.booleanlist', 'show_r_times', '', $config->show_r_times);
		$lists ['pay_payment_gateway_fee']           = self::showCheckboxfield('pay_payment_gateway_fee',(int)$config->pay_payment_gateway_fee); //JHtml::_('select.booleanlist', 'pay_payment_gateway_fee', '', $config->pay_payment_gateway_fee);
		$lists ['currency_selection']                = self::showCheckboxfield('currency_selection',(int)$config->currency_selection); 
		//JHtml::_('select.booleanlist', 'currency_selection', '', $config->currency_selection);

		$lists ['activate_campaign_currency']                 = self::showCheckboxfield('activate_campaign_currency',(int)$config->activate_campaign_currency);

		$lists ['show_pending_records']              = self::showCheckboxfield('show_pending_records',(int)$config->show_pending_records); //JHtml::_('select.booleanlist', 'show_pending_records', '', $config->show_pending_records);
		$lists ['currency_space']					 = self::showCheckboxfield('currency_space',(int)$config->currency_space); 

		$lists ['send_attachment_to_admin_email']    = self::showCheckboxfield('send_attachment_to_admin_email',(int)$config->send_attachment_to_admin_email); //JHtml::_('select.booleanlist', 'send_attachment_to_admin_email', '', $config->send_attachment_to_admin_email);
        $lists ['show_privacy']                      = self::showCheckboxfield('show_privacy',(int)$config->show_privacy);
        $lists ['store_ip_address']                  = self::showCheckboxfield('store_ip_address',(int)$config->store_ip_address);

		$lists ['activate_form_floating']            = self::showCheckboxfield('activate_form_floating',(int)$config->activate_form_floating);

		$lists['social_sharing']                     = self::showCheckboxfield('social_sharing',(int)$config->social_sharing);
		$lists['social_sharing_type']                = self::showCheckboxfield('social_sharing_type',(int)$config->social_sharing_type,Text::_('JD_ADDTHIS'),Text::_('JD_NATIVE'));

        $lists ['activate_tributes']                 = self::showCheckboxfield('activate_tributes',(int)$config->activate_tributes);
		$lists ['add_honoree_in_csv']                = self::showCheckboxfield('add_honoree_in_csv',(int)$config->add_honoree_in_csv);
        $lists ['send_email_to_honoree']             = self::showCheckboxfield('send_email_to_honoree',(int)$config->send_email_to_honoree);

        $lists ['export_donors']                     = self::showCheckboxfield('export_donors',(int)$config->export_donors);
        $lists['default_layout']                     = self::showCheckboxfield('default_layout',(int)$config->default_layout,Text::_('JD_DEFAULT_LAYOUT'),Text::_('JD_SIMPLE_DONATION_LAYOUT'));
        $lists['auto_approval_campaign']             = self::showCheckboxfield('auto_approval_campaign',(int)$config->auto_approval_campaign);

        $lists['show_brackets']                      = self::showCheckboxfield('show_brackets',(int)$config->show_brackets);

		$currencies = require_once JPATH_ROOT . '/components/com_jdonation/helper/currencies.php';
		$options    = array();
		$options[]  = HTMLHelper::_('select.option', '', Text::_('JD_SELECT_CURRENCY'));
		foreach ($currencies as $code => $title)
		{
			$options[] = HTMLHelper::_('select.option', $code, $title);
		}
		$lists['currency']           = HTMLHelper::_('select.genericlist', $options, 'currency', 'class="form-select input-large ilarge"', 'value', 'text', isset($config->currency) ? $config->currency : 'USD');

		array_shift($options);
		$lists ['active_currencies'] = HTMLHelper::_('select.genericlist', $options, 'active_currencies[]', 'class="form-control ilarge" multiple="true"', 'value', 'text', explode(',', $config->active_currencies));

		$options    = array();
		$options [] = HTMLHelper::_('select.option', 'd', Text::_('JD_DAILY'));
		$options [] = HTMLHelper::_('select.option', 'w', Text::_('JD_WEEKLY'));
		$options [] = HTMLHelper::_('select.option', 'b', Text::_('JD_BI_WEEKLY'));
		$options [] = HTMLHelper::_('select.option', 'm', Text::_('JD_MONTHLY'));
		$options [] = HTMLHelper::_('select.option', 'q', Text::_('JD_QUARTERLY'));
		$options [] = HTMLHelper::_('select.option', 's', Text::_('JD_SEMI_ANNUALLY'));
		$options [] = HTMLHelper::_('select.option', 'a', Text::_('JD_ANNUALLY'));

		$selecteds   = array();
		$frequencies = explode(',', $config->recurring_frequencies);
		for ($i = 0, $n = count($frequencies); $i < $n; $i++)
		{
			$selecteds [] = HTMLHelper::_('select.option', $frequencies [$i], $frequencies [$i]);
		}
		$lists ['recurring_frequencies'] = HTMLHelper::_('select.genericlist', $options, 'recurring_frequencies[]', ' class="inputbox ilarge form-control" size="5" multiple="multiple" ', 'value', 'text', $selecteds);
		$lists ['amount_by_campaign']    = self::showCheckboxfield('amount_by_campaign',$config->amount_by_campaign);

		// Format of the pre-defined amount
		$options                  = array();
		$options []               = HTMLHelper::_('select.option', 0, 'Select Format');
		$options []               = HTMLHelper::_('select.option', 1, Text::_('Radio list'));
		$options []               = HTMLHelper::_('select.option', 2, Text::_('Dropdown'));
		$lists ['amounts_format'] = self::showCheckboxfield('amounts_format',(int)$config->amounts_format); //JHtml::_('select.genericlist', $options, 'amounts_format', ' class="inputbox" ', 'value', 'text', $config->amounts_format);

		$sql = 'SELECT id, title FROM #__content';
		$db->setQuery($sql);
		$rows                  = $db->loadObjectList();
		$options               = array();
		$options []            = HTMLHelper::_('select.option', 0, Text::_('Select article'), 'id', 'title');
		$options               = array_merge($options, $rows);
		$lists ['article_id']  = HTMLHelper::_('select.genericlist', $options, 'article_id', ' class="form-select input-large ilarge" ', 'id', 'title', $config->article_id);
		$lists ['active_term'] = self::showCheckboxfield('accept_term',(int)$config->accept_term);//JHtml::_('select.booleanlist', 'accept_term', '', $config->accept_term);

		$lists ['field_campaign'] = self::showCheckboxfield('field_campaign',(int)$config->field_campaign);//JHtml::_('select.booleanlist', 'field_campaign', '', $config->field_campaign);

		$lists ['enable_captcha'] = self::showCheckboxfield('enable_captcha',(int)$config->enable_captcha); //JHtml::_('select.booleanlist', 'enable_captcha', '', $config->enable_captcha);
        $lists ['enable_captcha_with_public_user'] = self::showCheckboxfield('enable_captcha_with_public_user',(int)$config->enable_captcha_with_public_user);

		$lists ['convert_currency_before_donation'] = self::showCheckboxfield('convert_currency_before_donation',(int)$config->convert_currency_before_donation);

        $options                          = array();
		$options []                       = HTMLHelper::_('select.option', 0, Text::_('Dropdown'));
		$options []                       = HTMLHelper::_('select.option', 1, Text::_('Radio list'));
		$lists ['amounts_format']         = HTMLHelper::_('select.genericlist', $options, 'amounts_format', ' class="form-select input-large ilarge" ', 'value', 'text', $config->amounts_format);
		$lists ['display_amount_textbox'] = self::showCheckboxfield('display_amount_textbox',$config->display_amount_textbox); //JHtml::_('select.booleanlist', 'display_amount_textbox', '', $config->display_amount_textbox);

		$lists ['populate_from_previous_donation'] = self::showCheckboxfield('populate_from_previous_donation',(int)$config->populate_from_previous_donation); 

		// Get list of country
		$sql = 'SELECT name AS value, name AS text FROM #__jd_countries WHERE published=1';
		$db->setQuery($sql);
		$rowCountries           = $db->loadObjectList();
		$options                = array();
		$options []             = HTMLHelper::_('select.option', '', Text::_('Select default country'));
		$options                = array_merge($options, $rowCountries);
		$lists ['country_list'] = HTMLHelper::_('select.genericlist', $options, 'default_country', 'class="form-select input-large ilarge"', 'value', 'text', $config->default_country);

		$options                          = array();
		$options []                       = HTMLHelper::_('select.option', 0, Text::_('Site administrator'));
		$options []                       = HTMLHelper::_('select.option', 1, Text::_('Member. Merchant account will be get from CB profile'));
		$options []                       = HTMLHelper::_('select.option', 2, Text::_('Member. Merchant account will be get from JomSocial profile'));
		$lists ['payment_to']             = self::showCheckboxfield('payment_to',$config->payment_to);//JHtml::_('select.genericlist', $options, 'payment_to', ' class="inputbox" ', 'value', 'text', $config->payment_to);
		$lists ['load_twitter_bootstrap'] = self::showCheckboxfield('load_twitter_bootstrap',(int)$config->load_twitter_bootstrap);//JHtml::_('select.booleanlist', 'load_twitter_bootstrap', '', isset ($config->load_twitter_bootstrap) ? $config->load_twitter_bootstrap : 1);
		$lists ['load_jquery']            = self::showCheckboxfield('load_jquery',(int)$config->load_jquery);//JHtml::_('select.booleanlist', 'load_jquery', '', isset ($config->load_jquery) ? $config->load_jquery : 1);
		$lists ['show_campaign_progress'] = self::showCheckboxfield('show_campaign_progress',(int)$config->show_campaign_progress);
		$lists ['show_campaign_picture']  = self::showCheckboxfield('show_campaign_picture',(int)$config->show_campaign_picture);
        $lists ['endable_donation_with_expired_campaigns'] = self::showCheckboxfield('endable_donation_with_expired_campaigns',(int)$config->endable_donation_with_expired_campaigns);
        $lists ['endable_donation_with_goal_achieved_campaigns'] = self::showCheckboxfield('endable_donation_with_goal_achieved_campaigns',(int)$config->endable_donation_with_goal_achieved_campaigns);
        $lists ['show_newsletter_subscription'] = self::showCheckboxfield('show_newsletter_subscription',(int)$config->show_newsletter_subscription);
        $lists ['show_campaign']          = self::showCheckboxfield('show_campaign',(int)$config->show_campaign);

        $lists ['include_payment_fee']    = self::showCheckboxfield('include_payment_fee',(int)$config->include_payment_fee);

		$lists ['log_emails']          = self::showCheckboxfield('log_emails',(int)$config->log_emails);

		$options                     = array();
		$options []                  = HTMLHelper::_('select.option', '', Text::_('Select position'));
		$options []                  = HTMLHelper::_('select.option', 0, Text::_('Before amount'));
		$options []                  = HTMLHelper::_('select.option', 1, Text::_('After amount'));
		$lists ['currency_position'] = HTMLHelper::_('select.genericlist', $options, 'currency_position', ' class="form-select input-large ilarge"', 'value', 'text', (int)$config->currency_position);

		if(DonationHelper::isMailchimpPluginEnabled()){
            require_once JPATH_ROOT . '/plugins/jdonation/mailchimp/api/MailChimp.php';

            $query      = $db->getQuery(true);
            $query->select('*')->from('#__extensions')->where('`type`= "plugin"')->where('`element`= "mailchimp"')->where('`folder`= "jdonation"')->where('enabled = "1"');
            $db->setQuery($query);
            $plugin     = $db->loadObject();
            $params     = new Registry();
            $params->loadString($plugin->params);
            $mailchimp  = new MailChimp($params->get('api_key'));
            $mlists     = $mailchimp->call('lists/list');
            if($config->mailchimp_list_ids != ''){
                $listIds = explode(',', $config->mailchimp_list_ids);
            }else {
                $listIds = explode(',', $params->get('default_list_ids', ''));
            }

            $options    = array();
            $mlists     = $mlists['data'];
            if (count($mlists))
            {
                foreach ($mlists as $list)
                {
                    $options[] = HTMLHelper::_('select.option', $list['id'], $list['name']);
                }
            }
            $lists['mailchimp_list'] = HTMLHelper::_('select.genericlist', $options, 'mailchimp_list_ids[]', 'class="form-control" multiple="multiple" size="10"', 'value', 'text', $listIds);
        }

		$options   = [];
		$options[] = HTMLHelper::_('select.option', 'not_showing', Text::_('JD_NOT_SHOWING'));
		$options[] = HTMLHelper::_('select.option', 'under_field', Text::_('JD_UNDER_FIELD'));
		$options[] = HTMLHelper::_('select.option', 'above_field', Text::_('JD_ABOVE_FIELD'));

		$lists['display_field_description'] = HTMLHelper::_('select.genericlist', $options, 'display_field_description', 'class="input-large ilarge form-select"', 'value', 'text', $config->display_field_description);

		$fontsPath = JPATH_ROOT . '/components/com_jdonation/tcpdf/fonts/';
		$options   = [];
		$options[] = HTMLHelper::_('select.option', '', Text::_('JD_SELECT_FONT'));
		$options[] = HTMLHelper::_('select.option', 'courier', Text::_('Courier'));
		$options[] = HTMLHelper::_('select.option', 'helvetica', Text::_('Helvetica'));
		$options[] = HTMLHelper::_('select.option', 'symbol', Text::_('Symbol'));
		$options[] = HTMLHelper::_('select.option', 'times', Text::_('Times New Roman'));
		$options[] = HTMLHelper::_('select.option', 'zapfdingbats', Text::_('Zapf Dingbats'));

		$additionalFonts = [
			'aealarabiya',
			'aefurat',
			'dejavusans',
			'dejavuserif',
			'freemono',
			'freesans',
			'freeserif',
			'hysmyeongjostdmedium',
			'kozgopromedium',
			'kozminproregular',
			'msungstdlight',
			'opensans',
			'cid0jp',
			'DroidSansFallback',
			'PFBeauSansProthin',
			'PFBeauSansPro',
			'roboto',
			'consolateelfb',
			'ubuntu',
			'tantular',
			'anonymouspro',
		];

		foreach ($additionalFonts as $fontName)
		{
			if (file_exists($fontsPath . $fontName . '.php'))
			{
				$options[] = HTMLHelper::_('select.option', $fontName, ucfirst($fontName));
			}
		}

		// Support True Type Font
		$trueTypeFonts = Folder::files($fontsPath, '.ttf');

		foreach ($trueTypeFonts as $trueTypeFont)
		{
			$options[] = HTMLHelper::_('select.option', $trueTypeFont, $trueTypeFont);
		}

		$lists['pdf_font'] = HTMLHelper::_('select.genericlist', $options, 'pdf_font', ' class="input-large form-select"', 'value', 'text', empty($config->pdf_font) ? 'times' : $config->pdf_font);

		if($config->dedicate_type == '')
		{
			$dedicateTypeArray = array('1','2','3','4');
		}
		else
		{
			$dedicateTypeArray = explode(",", $config->dedicate_type);
		}

		$optionArr = array();
		$optionArr[] = HTMLHelper::_('select.option','1', Text::_('JD_IN_HONOR_OF'));
		$optionArr[] = HTMLHelper::_('select.option','2', Text::_('JD_IN_MEMORY_OF'));
		$optionArr[] = HTMLHelper::_('select.option','3', Text::_('JD_IN_DEDICATE_TO'));
		$optionArr[] = HTMLHelper::_('select.option','4', Text::_('JD_IN_REMEMBRANCE_OF'));
		$lists['dedicate_type'] = HTMLHelper::_('select.genericlist', $optionArr, 'dedicate_type[]','class="form-control ilarge" multiple','value','text',$dedicateTypeArray);

		$optionArr = array();
		$optionArr[] = HTMLHelper::_('select.option', '', Text::_('JD_SHOW_PAYMENT_METHODS'));
		$optionArr[] = HTMLHelper::_('select.option', '0', Text::_('JD_SHOW_PAYMENT_LOGO'));
		$optionArr[] = HTMLHelper::_('select.option', '1', Text::_('JD_SHOW_PAYMENT_TITLE'));
		$optionArr[] = HTMLHelper::_('select.option', '2', Text::_('JD_SHOW_PAYMENT_LOGO_AND_TITLE'));
		$lists['show_payment_method'] = HTMLHelper::_('select.genericlist', $optionArr, 'show_payment_method','class="input-large ilarge form-select"','value','text',(int)$config->show_payment_method);

		$this->lists  = $lists;
		$this->config = $config;

		DonationHelperHtml::renderSubmenu('configuration');
		$this->bootstrapHelper		= new DonationHelperBootstrap($config->twitter_bootstrap_version);
		parent::display();
	}
}