Server : LiteSpeed System : Linux server 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 User : alsaif ( 1057) PHP Version : 7.4.33 Disable Function : show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/alsaif/public_html/plugins/system/nrframework/fields/ |
<?php
/**
* @author Tassos Marinos <info@tassos.gr>
* @link https://www.tassos.gr
* @copyright Copyright © 2024 Tassos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
// No direct access to this file
defined('_JEXEC') or die;
use Joomla\CMS\Form\Field\GroupedlistField;
use Joomla\CMS\HTML\HTMLHelper;
use NRFramework\Extension;
class JFormFieldAcymailing extends GroupedlistField
{
/**
* Method to get the field option groups.
*
* @return array The field option objects as a nested array in groups.
*
* @since 1.6
*/
public function getGroups()
{
$groups = [];
$lists = [];
if ($acymailing_5_is_installed = Extension::isInstalled('com_acymailing'))
{
$lists['5'] = $this->getAcym5Lists();
}
if ($acymailing_6_is_installed = Extension::isInstalled('com_acym'))
{
$lists['6'] = $this->getAcym6Lists();
}
foreach ($lists as $group_key => $group)
{
if (!is_array($group))
{
continue;
}
foreach ($group as $list)
{
$groupLabel = 'AcyMailing ' . ($group_key == '5' ? $group_key : '');
$groups[$groupLabel][] = HTMLHelper::_('select.option', $list->id, $list->name);
}
}
return $groups;
}
/**
* Get AcyMailing 6 lists
*
* @return mixed Array on success, null on failure
*/
private function getAcym6Lists()
{
$lists = \NRFramework\Helpers\AcyMailingHelper::getAllLists();
if (!is_array($lists))
{
return;
}
// Add 6: prefix to each list id.
foreach ($lists as $key => &$list)
{
$list->id = '6:' . $list->id;
}
return $lists;
}
/**
* Get AcyMailing 5 lists
*
* @return mixed Array on success, null on failure
*/
private function getAcym5Lists()
{
if (!@include_once(JPATH_ADMINISTRATOR . '/components/com_acymailing/helpers/helper.php'))
{
return;
}
$lists = acymailing_get('class.list')->getLists();
if (!is_array($lists))
{
return;
}
// The getGroups method expects the id property
foreach ($lists as $key => $list)
{
$list->id = $list->listid;
}
return $lists;
}
}