Current File : /home/pacjaorg/www/kmm/administrator/components/com_akeebabackup/src/Field/BackupprofilesField.php |
<?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2024 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
namespace Akeeba\Component\AkeebaBackup\Administrator\Field;
defined('_JEXEC') || die();
use Joomla\CMS\Factory;
use Joomla\CMS\Form\Field\ListField;
use Joomla\CMS\Language\Text;
use Joomla\Database\DatabaseDriver;
use Joomla\Database\DatabaseInterface;
/**
* Our main element class, creating a multi-select list out of an SQL statement
*/
class BackupprofilesField extends ListField
{
protected $type = 'Backupprofiles';
protected function getInput()
{
// The default option goes on top
$showNone = $this->element['show_none'] ? (string) $this->element['show_none'] : '';
$showNone = in_array(strtolower($showNone), ['yes', '1', 'true', 'on']);
if ($showNone)
{
$this->addOption(Text::_('COM_AKEEBABACKUP_FILTER_SELECT_PROFILEID'), [
'value' => ''
]);
}
// Add options for each and every backup profile
/** @var DatabaseDriver $db */
$db = method_exists($this, 'getDatabase')
? $this->getDatabase()
:Factory::getContainer()->get(DatabaseInterface::class);
$query = (method_exists($db, 'createQuery') ? $db->createQuery() : $db->getQuery(true))
->select([
$db->qn('id'),
$db->qn('description'),
])->from($db->qn('#__akeebabackup_profiles'));
$db->setQuery($query);
$objectList = $db->loadObjectList() ?? [];
foreach ($objectList as $o)
{
$this->addOption("#{$o->id}: {$o->description}", [
'value' => $o->id,
]);
}
// Call the parent method and be done with it
return parent::getInput();
}
}