68 lines
1.7 KiB
PHP
68 lines
1.7 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @package MokoSuiteBackup
|
||
|
|
* @subpackage com_mokosuitebackup
|
||
|
|
* @author Moko Consulting <hello@mokoconsulting.tech>
|
||
|
|
* @copyright Copyright (C) 2026 Moko Consulting. All rights reserved.
|
||
|
|
* @license GNU General Public License version 3 or later; see LICENSE
|
||
|
|
*/
|
||
|
|
|
||
|
|
namespace Joomla\Component\MokoSuiteBackup\Administrator\Model;
|
||
|
|
|
||
|
|
defined('_JEXEC') or die;
|
||
|
|
|
||
|
|
use Joomla\CMS\Factory;
|
||
|
|
use Joomla\CMS\MVC\Model\AdminModel;
|
||
|
|
|
||
|
|
class RemoteModel extends AdminModel
|
||
|
|
{
|
||
|
|
public function getForm($data = [], $loadData = true)
|
||
|
|
{
|
||
|
|
$form = $this->loadForm(
|
||
|
|
'com_mokosuitebackup.remote',
|
||
|
|
'remote',
|
||
|
|
['control' => 'jform', 'load_data' => $loadData]
|
||
|
|
);
|
||
|
|
|
||
|
|
return $form ?: false;
|
||
|
|
}
|
||
|
|
|
||
|
|
protected function loadFormData(): object
|
||
|
|
{
|
||
|
|
$data = Factory::getApplication()->getUserState('com_mokosuitebackup.edit.remote.data', []);
|
||
|
|
|
||
|
|
if (empty($data)) {
|
||
|
|
$data = $this->getItem();
|
||
|
|
}
|
||
|
|
|
||
|
|
return is_array($data) ? (object) $data : $data;
|
||
|
|
}
|
||
|
|
|
||
|
|
public function getTable($name = 'Remote', $prefix = 'Administrator', $options = [])
|
||
|
|
{
|
||
|
|
return parent::getTable($name, $prefix, $options);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Get all enabled remotes for a given profile.
|
||
|
|
*
|
||
|
|
* @param int $profileId The profile ID
|
||
|
|
*
|
||
|
|
* @return array Array of remote objects
|
||
|
|
*/
|
||
|
|
public function getEnabledByProfile(int $profileId): array
|
||
|
|
{
|
||
|
|
$db = $this->getDatabase();
|
||
|
|
$query = $db->getQuery(true)
|
||
|
|
->select('*')
|
||
|
|
->from($db->quoteName('#__mokosuitebackup_remotes'))
|
||
|
|
->where($db->quoteName('profile_id') . ' = ' . (int) $profileId)
|
||
|
|
->where($db->quoteName('enabled') . ' = 1')
|
||
|
|
->order($db->quoteName('ordering') . ' ASC');
|
||
|
|
$db->setQuery($query);
|
||
|
|
|
||
|
|
return $db->loadObjectList() ?: [];
|
||
|
|
}
|
||
|
|
}
|