Файловый менеджер - Редактировать - /home/wuectly/www/administrator/components/com_mailjet/controller.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 to this file defined('_JEXEC') or die('Restricted access'); ini_set('display_errors', 0); // import Joomla controller library jimport('joomla.application.component.controller'); 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('JControllerLegacy')) { class_alias('JController','JControllerLegacy'); } /** * General Controller of HelloWorld component */ class MailjetController extends JControllerLegacy { /** * display task * * @return void */ function display($cachable = false, $urlparams = false) { require_once JPATH_COMPONENT.'/helpers/mailjet.php'; // set default view if not set JRequest::setVar('view', JRequest::getCmd('view', 'mailjet')); $view = $this->input->get('view', 'messages'); $layout = $this->input->get('layout', 'default'); $id = $this->input->getInt('id'); MailjetHelper::addSubmenu($this->input->get('view', 'mailjet')); // call parent behavior parent::display($cachable); } function save () { JRequest::checkToken () or jexit ('Invalid Token'); $error = FALSE; $mailjetConfig = sPrintF ('%s/components/%s/config.php', JPATH_ADMINISTRATOR, 'com_mailjet'); $fileConfig = JPATH_ROOT.'/configuration.php'; 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 = JRequest::get ('post'); $fields ['enable'] = isSet ($data ['enable']); $fields ['test'] = isSet ($data ['test']); $fields ['test_address'] = $data ['test_address']; $fields ['username'] = $data ['username']; $fields ['password'] = $data ['password']; $fields ['host'] = $host; $configs = array (array ('ssl://', 465), array ('tls://', 587), array ('', 587), array ('', 588), array ('tls://', 25), array ('', 25), array ('', 80)); $connected = FALSE; for ($i = 0; $i < count ($configs); ++$i) { $soc = @ fSockOpen ($configs [$i] [0].$host, $configs [$i] [1], $errno, $errstr, 5); if ($soc) { fClose ($soc); $connected = TRUE; break; } } if ($connected) { if ('ssl://' == $configs [$i] [0]) { $fields ['secure'] = 'ssl'; } elseif ('tls://' == $configs [$i] [0]) { $fields ['secure'] = 'tls'; } else { $fields ['secure'] = 'none'; } $fields ['port'] = $configs [$i] [1]; } else { JError::raiseWarning (0, sPrintF (JText::_('COM_MAILJET_CONTACT_SUPPORT_ERROR'), $errno, $errstr)); } jimport ('joomla.mail.helper'); if ($fields ['test'] && (empty ($fields ['test_address']) || ! JMailHelper::isEmailAddress ($fields ['test_address']))) { JError::raiseWarning (0, JText::_('COM_MAILJET_RECIPIENT_INVALID', $fields ['test_address'])); $error = TRUE; } if (empty ($fields ['username']) || empty ($fields ['password'])) { JError::raiseWarning (0, JText::_('COM_MAILJET_SETTINGS_MANDATORY')); $error = TRUE; } if (! $error) { jimport ('joomla.filesystem.path'); jimport ('joomla.filesystem.file'); $config = new JRegistry ('config'); $config->loadArray ($fields); $configString = $config->toString ('PHP', array ('class' => 'JMailjetConfig', 'closingtag' => false)); if (! JFile::write ($mailjetConfig, $configString)) { JError::raiseWarning (0, JText::_ ('COM_MAILJET_CONFIG_FILE_UNWRITABLE')); } $mailjetData = sPrintF ('%s/components/%s/lib/db/data', JPATH_ADMINISTRATOR, 'com_mailjet'); $JSONString = json_encode(array( 'apiKey' => $fields['username'], 'apiSecret' => $fields['password'], 'token' => null, 'test_address' => $fields['test_address'], 'enable' => $fields['enable'], )); if (! JFile::write ($mailjetData, $JSONString)) { JError::raiseWarning (0, JText::_ ('Unable to write data file for Mailjet\'s settings.')); } if ($fields ['enable']) { $prev ['mailer'] = 'smtp'; $prev ['smtpauth'] = '1'; $prev ['smtpuser'] = $fields ['username']; $prev ['smtppass'] = $fields ['password']; $prev ['smtphost'] = $fields ['host']; $prev ['smtpsecure'] = $fields ['secure']; $prev ['smtpport'] = $fields ['port']; } else { $prev ['mailer'] = $fields ['bak_mailer']; $prev ['smtpauth'] = $fields ['bak_smtpauth']; $prev ['smtpuser'] = $fields ['bak_smtpuser']; $prev ['smtppass'] = $fields ['bak_smtppass']; $prev ['smtphost'] = $fields ['bak_smtphost']; $prev ['smtpsecure'] = $fields ['bak_smtpsecure']; $prev ['smtpport'] = $fields ['bak_smtpport']; } $config = new JRegistry ('config'); $config->loadArray ($prev); if (!JPath::setPermissions ($fileConfig, '0644')) { JError::raiseNotice ('SOME_ERROR_CODE', JText::_ ('COM_CONFIG_ERROR_CONFIGURATION_PHP_NOTWRITABLE')); } $configString = $config->toString('PHP', array ('class' => 'JConfig', 'closingtag' => false)); if (!JFile::write($fileConfig, $configString)) { JError::raiseWarning (0, JText::_ ('COM_CONFIG_ERROR_WRITE_FAILED')); } if (!JPath::setPermissions($fileConfig, '0444')) { JError::raiseNotice ('SOME_ERROR_CODE', JText::_ ('COM_CONFIG_ERROR_CONFIGURATION_PHP_NOTUNWRITABLE')); } // Extablish API connection because we will need it to check if the API Key and Secrect Key are correct require_once(dirname(__FILE__).'/lib/lib/mailjet-api-strategy.php'); $api = new Mailjet_Api($fields['username'], $fields['password']); if($api->apiUrl === null){ JError::raiseWarning (0, JText::_ ('COM_MAILJET_API_KEY_ERROR')); } if ($fields ['test']) { $jversion = new JVersion(); if (version_compare($jversion->getShortVersion(), '2.5.6', 'lt')) { if (JUtility::sendMail ($prev ['mailfrom'], $prev ['fromname'], $fields ['test_address'], JText::_ ('Your test mail from Mailjet and Joomla'), JText::_ ('COM_MAILJET_CONFIG_OK')) !== TRUE) { JError::raiseNotice (500, JText:: _ ('COM_MAILJET_TEST_EMAIL_NOT_SENT')); } } else { $mail = JMail::getInstance(); $mail->useSMTP(true, $prev ['smtphost'], $prev ['smtpuser'], $prev ['smtppass'], 'tls', 587); if ($mail->sendMail ($prev ['mailfrom'], $prev ['fromname'], $fields ['test_address'], JText::_ ('Your test mail from Mailjet and Joomla'), JText::_ ('COM_MAILJET_CONFIG_OK')) !== TRUE) { JError::raiseNotice (500, JText:: _ ('COM_MAILJET_TEST_EMAIL_NOT_SENT')); } } } JFactory::getApplication()->enqueueMessage(JText:: _ ('COM_MAILJET_SETTINGS_SAVED')); } $this->display(); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка