From efd9f350eb1ac647a7010950b3d89f64c5655432 Mon Sep 17 00:00:00 2001 From: Oleksandr Mykhailenko Date: Tue, 22 Oct 2024 21:12:11 +0300 Subject: [PATCH] Prepare plugin for Joomla 5 --- README.md | 7 +- packages/com_mailjet.zip | Bin 554549 -> 556385 bytes packages/com_mailjet/admin/com_mailjet.xml | 44 ++++++++++ packages/com_mailjet/admin/controller.php | 83 ++++++++---------- packages/com_mailjet/admin/models/mailjet.php | 2 +- .../admin/views/campaigns/view.html.php | 3 +- .../admin/views/contacts/view.html.php | 9 +- .../admin/views/mailjet/view.html.php | 5 +- .../admin/views/statistics/view.html.php | 20 ++--- packages/com_mailjet/front/controller.php | 14 +-- packages/com_mailjet/front/models/mailjet.php | 12 +-- packages/mod_mailjet.zip | Bin 41775 -> 41746 bytes pkg_mailjet.xml | 4 +- 13 files changed, 116 insertions(+), 87 deletions(-) create mode 100644 packages/com_mailjet/admin/com_mailjet.xml diff --git a/README.md b/README.md index 82da6f0..6572f85 100755 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ Tags: email, marketing, signup, newsletter, widget, smtp, mailjet Requires at least: 3.0.0 -Tested up to: 4.4.8 -Stable tag: 4.0 +Tested up to: 5.2.0 +Stable tag: 4.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -81,6 +81,9 @@ Once your Mailjet plugin is installed, click on "Extensions" in the top menu and ## Changelog += 4.1 = +* Make plugin compatible with Joomla 5. + = 4.0 = * Make plugin compatible with Joomla 4. diff --git a/packages/com_mailjet.zip b/packages/com_mailjet.zip index d2e1bb5734cab64d7fc3a6dff756dbd7810c632e..796c3bb622552c5e8819d3e6f64af95e61e893d8 100644 GIT binary patch delta 40129 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 U4tJHiN}G+kZ}P9;V;|rAAMwAsMgRZ+ delta 38823 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 diff --git a/packages/com_mailjet/admin/com_mailjet.xml b/packages/com_mailjet/admin/com_mailjet.xml new file mode 100644 index 0000000..a8a1741 --- /dev/null +++ b/packages/com_mailjet/admin/com_mailjet.xml @@ -0,0 +1,44 @@ + + + Mailjet + Mailjet SAS + http://www.mailjet.com + plugins@mailjet.com + June 2014 + http://www.mailjet.com/ + 4.1 + Copyright (C) 2014 Mailjet SAS. + GNU General Public License version 2 or later; see LICENSE + Mailjet Email component. + + installer.php + + mailjet.php + controller.php + styles.css + models + views + + + + COM_MAILJET_MENU + + COM_MAILJET_SETTINGS + COM_MAILJET_CONTACTS + COM_MAILJET_CAMPAIGNS + COM_MAILJET_STATS + + + mailjet.php + controller.php + config.php + styles.css + views + models + language + images + lib + helpers + + + diff --git a/packages/com_mailjet/admin/controller.php b/packages/com_mailjet/admin/controller.php index a422161..9ef5063 100644 --- a/packages/com_mailjet/admin/controller.php +++ b/packages/com_mailjet/admin/controller.php @@ -24,8 +24,8 @@ class_alias('JController', 'JControllerLegacy'); class MailjetController extends JControllerLegacy { /** - * @param bool $cachable - * @param bool $urlparams + * @param bool $cachable + * @param bool $urlparams * * @return void * @throws Exception @@ -50,9 +50,9 @@ public function save(): void { Session::checkToken() or jexit('Invalid Token'); - $error = false; + $error = false; $mailjetConfig = sPrintF('%s/components/%s/config.php', JPATH_ADMINISTRATOR, 'com_mailjet'); - $fileConfig = JPATH_ROOT . '/configuration.php'; + $fileConfig = JPATH_ROOT . '/configuration.php'; require_once($mailjetConfig); @@ -61,22 +61,22 @@ public function save(): void $prev = new JConfig(); $prev = ArrayHelper::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_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']; + $fields['bak_smtpport'] = $prev['smtpport']; $data = Factory::getApplication()->input->post->getArray(); - $fields['enable'] = isset($data['enable']) && $data['enable'] === 'on'; - $fields['test'] = isset($data['test']); + $fields['enable'] = isset($data['enable']) && $data['enable'] === 'on'; + $fields['test'] = isset($data['test']); $fields['test_address'] = $data['test_address']; - $fields['username'] = $data['username']; - $fields['password'] = $data['password']; - $fields['host'] = $host; + $fields['username'] = $data['username']; + $fields['password'] = $data['password']; + $fields['host'] = $host; $configs = [['ssl://', 465], ['tls://', 587], @@ -101,21 +101,18 @@ public function save(): void if ($connected) { if ('ssl://' == $configs [$i] [0]) { $fields ['secure'] = 'ssl'; - } - elseif ('tls://' == $configs [$i] [0]) { + } elseif ('tls://' == $configs [$i] [0]) { $fields ['secure'] = 'tls'; - } - else { + } else { $fields ['secure'] = 'none'; } $fields ['port'] = $configs [$i] [1]; - } - else { + } else { Factory::getApplication()->enqueueMessage( json_encode([ 'message' => \Joomla\CMS\Language\Text::_('COM_MAILJET_CONTACT_SUPPORT_ERROR'), - 'error' => $errno, - 'str' => $errstr + 'error' => $errno, + 'str' => $errstr ]), \Joomla\CMS\Application\CMSApplication::MSG_WARNING ); @@ -127,7 +124,7 @@ public function save(): void Factory::getApplication()->enqueueMessage( json_encode([ 'message' => \Joomla\CMS\Language\Text::_('COM_MAILJET_RECIPIENT_INVALID'), - 'error' => $fields['test_address'], + 'error' => $fields['test_address'], ]), \Joomla\CMS\Application\CMSApplication::MSG_WARNING ); @@ -159,11 +156,11 @@ public function save(): void } $mailjetData = sPrintF('%s/components/%s/lib/db/data', JPATH_ADMINISTRATOR, 'com_mailjet'); - $JSONString = json_encode(array( - 'apiKey' => $fields['username'], - 'apiSecret' => $fields['password'], + $JSONString = json_encode(array( + 'apiKey' => $fields['username'], + 'apiSecret' => $fields['password'], 'test_address' => $fields['test_address'], - 'enable' => $fields['enable'], + 'enable' => $fields['enable'], )); if (!\Joomla\Filesystem\File::write($mailjetData, $JSONString)) { @@ -174,22 +171,21 @@ public function save(): void } if ($fields['enable']) { - $prev['mailer'] = 'smtp'; - $prev['smtpauth'] = '1'; - $prev['smtpuser'] = $fields['username']; - $prev['smtppass'] = $fields['password']; - $prev['smtphost'] = $fields['host']; + $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['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']; + $prev['smtpport'] = $fields['bak_smtpport']; } $config = new \Joomla\Registry\Registry('config'); @@ -239,8 +235,7 @@ public function save(): void \Joomla\CMS\Application\CMSApplication::MSG_NOTICE ); } - } - else { + } else { $mail = Factory::getContainer()->get(\Joomla\CMS\Mail\MailerFactoryInterface::class)->createMailer(); $mail->useSMTP(true, $prev['smtphost'], $prev['smtpuser'], $prev['smtppass'], 'tls', 587); if ($mail->sendMail($prev['mailfrom'], $prev['fromname'], $fields['test_address'], diff --git a/packages/com_mailjet/admin/models/mailjet.php b/packages/com_mailjet/admin/models/mailjet.php index 73b3772..983102e 100644 --- a/packages/com_mailjet/admin/models/mailjet.php +++ b/packages/com_mailjet/admin/models/mailjet.php @@ -1 +1 @@ -input; $post = $jInput->post->getArray(); $data ['enable'] = isset($post['enable']) && $post['enable'] === 'on'; $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; } /** * @return array * @since 4.0 */ public function getAsRecord(): array { $mailjetConfig = sPrintF('%s/config.php', JPATH_COMPONENT); require_once($mailjetConfig); $conf = new JMailjetConfig(); $host = $conf->host; $prev = new JConfig(); $prev = ArrayHelper::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; } /** * @param $key * @param $value * * @return void * @throws Exception * @since 4.0 */ 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 Version(); 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 (!\Joomla\Filesystem\File::write($mailjetConfig, $configString)) { Factory::getApplication()->enqueueMessage( \Joomla\CMS\Language\Text::_('Unable to write configuration file for Mailjet\'s settings.'), \Joomla\CMS\Application\CMSApplication::MSG_WARNING ); } $mailjetData = sPrintF('%s/components/%s/lib/db/data', JPATH_ADMINISTRATOR, 'com_mailjet'); $JSONString = '{"apiKey":"' . $post['username'] . '","apiSecret":"' . $post['password'] . '","token":null}'; if (!\Joomla\Filesystem\File::write($mailjetData, $JSONString)) { Factory::getApplication()->enqueueMessage( \Joomla\CMS\Language\Text::_('Unable to write data file for Mailjet\'s settings.'), \Joomla\CMS\Application\CMSApplication::MSG_WARNING ); } } } \ No newline at end of file +input; $post = $jInput->post->getArray(); $data ['enable'] = isset($post['enable']) && $post['enable'] === 'on'; $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; } /** * @return array * @since 4.0 */ public function getAsRecord(): array { $mailjetConfig = sPrintF('%s/config.php', JPATH_COMPONENT); require_once($mailjetConfig); $conf = new JMailjetConfig(); $host = $conf->host; $prev = new JConfig(); $prev = ArrayHelper::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; } /** * @param $key * @param $value * * @return void * @throws Exception * @since 4.0 */ 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 Version(); if (version_compare($jversion->getShortVersion(), '2.5.6', 'lt')) { $config->setValue($key, $value); } else { $config->set($key, $value); } $configString = $config->toString('PHP', ['class' => 'JMailjetConfig', 'closingtag' => false]); if (!\Joomla\Filesystem\File::write($mailjetConfig, $configString)) { Factory::getApplication()->enqueueMessage( \Joomla\CMS\Language\Text::_('Unable to write configuration file for Mailjet\'s settings.'), \Joomla\CMS\Application\CMSApplication::MSG_WARNING ); } $mailjetData = sPrintF('%s/components/%s/lib/db/data', JPATH_ADMINISTRATOR, 'com_mailjet'); $JSONString = '{"apiKey":"' . $post['username'] . '","apiSecret":"' . $post['password'] . '","token":null}'; if (!\Joomla\Filesystem\File::write($mailjetData, $JSONString)) { Factory::getApplication()->enqueueMessage( \Joomla\CMS\Language\Text::_('Unable to write data file for Mailjet\'s settings.'), \Joomla\CMS\Application\CMSApplication::MSG_WARNING ); } } } \ No newline at end of file diff --git a/packages/com_mailjet/admin/views/campaigns/view.html.php b/packages/com_mailjet/admin/views/campaigns/view.html.php index bc79974..48020b7 100644 --- a/packages/com_mailjet/admin/views/campaigns/view.html.php +++ b/packages/com_mailjet/admin/views/campaigns/view.html.php @@ -38,13 +38,12 @@ class_alias('JModel','JModelLegacy'); class MailjetViewCampaigns extends JViewLegacy { /** - * HelloWorlds view display method * @return void + * @throws Exception */ function display($tpl = null) { JToolBarHelper::title (JText::_("COM_MAILJET_CAMPAIGNS"), 'logo.png' ); - //JToolBarHelper::save (); $this->sidebar = JHtmlSidebar::render(); diff --git a/packages/com_mailjet/admin/views/contacts/view.html.php b/packages/com_mailjet/admin/views/contacts/view.html.php index 1b2ff85..fd2aa80 100644 --- a/packages/com_mailjet/admin/views/contacts/view.html.php +++ b/packages/com_mailjet/admin/views/contacts/view.html.php @@ -11,12 +11,6 @@ // import Joomla view library jimport('joomla.application.component.view'); -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('JViewLegacy')) { class_alias('JView','JViewLegacy'); } @@ -38,13 +32,12 @@ class_alias('JModel','JModelLegacy'); class MailjetViewContacts extends JViewLegacy { /** - * HelloWorlds view display method * @return void + * @throws Exception */ function display($tpl = null) { JToolBarHelper::title (JText::_("COM_MAILJET_CONTACTS"), 'logo.png' ); - //JToolBarHelper::save (); $this->sidebar = JHtmlSidebar::render(); diff --git a/packages/com_mailjet/admin/views/mailjet/view.html.php b/packages/com_mailjet/admin/views/mailjet/view.html.php index eec5a22..e6d37f0 100644 --- a/packages/com_mailjet/admin/views/mailjet/view.html.php +++ b/packages/com_mailjet/admin/views/mailjet/view.html.php @@ -11,15 +11,14 @@ // import Joomla view library jimport('joomla.application.component.view'); -if (!class_exists('JViewLegacy')) -{ +if (!class_exists('JViewLegacy')) { class_alias('JView', 'JViewLegacy'); } class MailjetViewMailjet extends JViewLegacy { /** - * @param null $tpl + * @param null $tpl * * @return void * @throws Exception diff --git a/packages/com_mailjet/admin/views/statistics/view.html.php b/packages/com_mailjet/admin/views/statistics/view.html.php index 89faea4..cf0ba18 100644 --- a/packages/com_mailjet/admin/views/statistics/view.html.php +++ b/packages/com_mailjet/admin/views/statistics/view.html.php @@ -11,18 +11,12 @@ // import Joomla view library jimport('joomla.application.component.view'); -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('JViewLegacy')) { - class_alias('JView','JViewLegacy'); + class_alias('JView', 'JViewLegacy'); } if (!class_exists('JModelLegacy')) { - class_alias('JModel','JModelLegacy'); + class_alias('JModel', 'JModelLegacy'); } $jversion = new JVersion; @@ -31,23 +25,23 @@ class_alias('JModel','JModelLegacy'); $lang = \Joomla\CMS\Factory::getApplication()->getLanguage(); $extension = 'com_mailjet'; $base_dir = JPATH_SITE; -$language_tag = $lang->getTag(); +$language_tag = $lang->getTag(); $reload = true; $lang->load($extension, $base_dir, $language_tag, $reload); class MailjetViewStatistics extends JViewLegacy { /** - * @since 4.0 * @return void + * @since 4.0 */ public function display($tpl = null) { - \Joomla\CMS\Toolbar\ToolbarHelper::title (\Joomla\CMS\Language\Text::_("COM_MAILJET_STATS"), 'logo.png' ); + \Joomla\CMS\Toolbar\ToolbarHelper::title(\Joomla\CMS\Language\Text::_("COM_MAILJET_STATS"), 'logo.png'); //JToolBarHelper::save (); - + $this->sidebar = \Joomla\CMS\HTML\Helpers\Sidebar::render(); - parent::display ($tpl); + parent::display($tpl); } } \ No newline at end of file diff --git a/packages/com_mailjet/front/controller.php b/packages/com_mailjet/front/controller.php index 644642b..7419744 100644 --- a/packages/com_mailjet/front/controller.php +++ b/packages/com_mailjet/front/controller.php @@ -7,26 +7,28 @@ */ error_reporting(E_ALL & ~E_NOTICE); // no direct access -defined( '_JEXEC' ) or die ( 'Restricted access' ); +defined('_JEXEC') or die ('Restricted access'); jimport('joomla.application.component.controller'); if (!class_exists('JControllerLegacy')) { - class_alias('JController','JControllerLegacy'); + class_alias('JController', 'JControllerLegacy'); } -class MailjetController extends JControllerLegacy { +class MailjetController extends JControllerLegacy +{ - function save() { + public function save() + { global $result; $model = $this->getModel(); $result = $model->store(); if ($result != false) { - $this->display(); + $this->display(); } else { - header('HTTP/1.0 404 Not Found'); + header('HTTP/1.0 404 Not Found'); } } } diff --git a/packages/com_mailjet/front/models/mailjet.php b/packages/com_mailjet/front/models/mailjet.php index 98f41de..a9d5c41 100644 --- a/packages/com_mailjet/front/models/mailjet.php +++ b/packages/com_mailjet/front/models/mailjet.php @@ -30,18 +30,18 @@ class MailjetModelMailjet extends JModelLegacy public function __construct() { parent::__construct(); - $this->params = $this->getAsRecord(); + $this->params = $this->getAsRecord(); $this->mjClient = Mailjet_Api_Helper::getMailjetClient($this->params['username'], $this->params['password']); } /** - * @since 4.0 * @return bool + * @since 4.0 */ public function store(): bool { // Get the data which we'll save - $email = filter_var($_POST['mailjet-email'], FILTER_SANITIZE_EMAIL); + $email = filter_var($_POST['mailjet-email'], FILTER_SANITIZE_EMAIL); $list_id = filter_var($_POST['mailjet-list_id'], FILTER_SANITIZE_NUMBER_INT); if (empty($email)) { $email = filter_var($_GET['mailjet-email'], FILTER_SANITIZE_EMAIL); @@ -55,7 +55,7 @@ public function store(): bool $body = [ 'Action' => 'addforce', - 'Email' => $email + 'Email' => $email ]; $response = $this->mjClient->post(\Mailjet\Resources::$ContactslistManagecontact, ['id' => $list_id, 'body' => $body]); @@ -67,8 +67,8 @@ public function store(): bool } /** - * @since 4.0 * @return array|void + * @since 4.0 */ public function getAsRecord() { @@ -77,7 +77,7 @@ public function getAsRecord() if (file_exists($credentials)) { $pre_data = null; - $content = trim(file_get_contents($credentials)); + $content = trim(file_get_contents($credentials)); if ($content) { $pre_data = json_decode($content); } diff --git a/packages/mod_mailjet.zip b/packages/mod_mailjet.zip index 35e99c5d99d32adbe16ed122a6021894aaf0350d..61898e2de446569b7ac74f104303e17c0b0a2277 100644 GIT binary patch delta 4156 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 delta 4126 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 - + Mailjet Email Marketing Mailjet SAS http://www.mailjet.com plugins@mailjet.com June 2014 http://www.mailjet.com/ - 4.0 + 4.1 mailjet Mailjet SAS http://www.mailjet.com/