Your IP : 216.73.216.61


Current Path : /home/wuectly/www/administrator/components/com_mailjet/models/
Upload File :
Current File : /home/wuectly/www/administrator/components/com_mailjet/models/mailjet.php

<?php
/**
 * @author Mailjet SAS
 *
 * @copyright  Copyright (C) 2014 Mailjet SAS.
 * @license    GNU General Public License version 2 or later; see LICENSE
 */
// No direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.application.component.model' );

if (!function_exists('class_alias')) { // For php older then 5.3
  function class_alias($orig, $alias) {
    eval('abstract class ' . $alias . ' extends ' . $orig . ' {}');
  }
}

if (!class_exists('JModelLegacy')) {
  class_alias('JModel','JModelLegacy');
}

class MailjetModelMailjet extends JModelLegacy
{
    public function getAsPost ()
    {
        $post = JRequest::get ('post');

        $data ['enable'] = isSet ($post ['enable']);
        $data ['test'] = isSet ($post ['test']);
        $data ['test_address'] = $post ['test_address'];
        $data ['username'] = $post ['username'];
        $data ['password'] = $post ['password'];
        $data ['api_token'] = serialize(false);

        return $data;
    }

    public function getAsRecord ()
    {
        $mailjetConfig = sPrintF ('%s/config.php', JPATH_COMPONENT);

        require_once ($mailjetConfig);

        $conf = new JMailjetConfig ();

        $host = $conf->host;

        $prev = new JConfig();
        $prev = JArrayHelper::fromObject($prev);

        $fields ['bak_mailer'] = $prev ['mailer'];
        $fields ['bak_smtpauth'] = $prev ['smtpauth'];
        $fields ['bak_smtpuser'] = $prev ['smtpuser'];
        $fields ['bak_smtppass'] = $prev ['smtppass'];
        $fields ['bak_smtphost'] = $prev ['smtphost'];
        $fields ['bak_smtpsecure'] = $prev ['smtpsecure'];
        $fields ['bak_smtpport'] = $prev ['smtpport'];

        $data ['enable'] = $conf->enable && 'smtp' == $prev ['mailer'] && $conf->host == $prev ['smtphost'];
        $data ['test'] = $conf->test;
        $data ['test_address'] = $conf->test_address;
        $data ['username'] = $conf->username;
        $data ['password'] = $conf->password;
        $data ['host'] = $host;
        if(isset($data['api_token']) && $data['api_token']) {
            $data['api_token'] = unserialize($conf->api_token);
        }

        return $data;
    }

    public function saveRecord($key, $value)
    {
        jimport ('joomla.filesystem.path');
        jimport ('joomla.filesystem.file');
        $mailjetConfig = sPrintF ('%s/components/%s/config.php', JPATH_ADMINISTRATOR, 'com_mailjet');
        require_once ($mailjetConfig);
        $config = new JRegistry ('config');
        $config->loadArray ($this->getAsRecord());
        $jversion = new JVersion();
        if (version_compare($jversion->getShortVersion(), '2.5.6', 'lt')) {
            $config->setValue($key, $value);
        } else {
            $config->set($key, $value);
        }
        $configString = $config->toString ('PHP', array ('class' => 'JMailjetConfig', 'closingtag' => false));

        if (! JFile::write ($mailjetConfig, $configString))
        {
            JError::raiseWarning (0, JText::_ ('Unable to write configuration file for Mailjet\'s settings.'));
        }

        $mailjetData = sPrintF ('%s/components/%s/lib/db/data', JPATH_ADMINISTRATOR, 'com_mailjet');
        $JSONString = '{"apiKey":"'.$post ['username'].'","apiSecret":"'.$post ['password'].'","token":null}';
        if (! JFile::write ($mailjetData, $JSONString))
        {
            JError::raiseWarning (0, JText::_ ('Unable to write data file for Mailjet\'s settings.'));
        }
    }
}