| Server IP : 172.67.191.97 / Your IP : 104.23.243.196 Web Server : Apache/2.4.63 (Ubuntu) System : Linux adminpruebas-Virtual-Machine 6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.4.5 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/icaoc/administrator/components/com_sppagebuilder/editor/traits/ |
Upload File : |
<?php
/**
* @package SP Page Builder
* @author JoomShaper http://www.joomshaper.com
* @copyright Copyright (c) 2010 - 2025 JoomShaper
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
*/
use Joomla\CMS\Factory;
// No direct access
defined('_JEXEC') or die('Restricted access');
/**
* Trait of saved addons providers.
*
* @version 4.1.0
*/
trait SavedPresetsTrait
{
/**
* Icon API endpoint for saved addons.
*
* @return void
* @version 4.1.0
*/
public function savedPresets()
{
$method = $this->getInputMethod();
$this->checkNotAllowedMethods(['PUT', 'PATCH'], $method);
switch ($method)
{
case 'GET':
$this->getSavedPresetById();
break;
case 'POST':
$this->savePreset();
break;
}
}
/**
* Get all the saved addons form the database.
*
* @return void
*/
private function getSavedPresetById()
{
$id = $this->getInput('id', null, 'INT');
try
{
$db = Factory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('id', 'title', 'preset', 'is_default', 'created', 'created_by')));
$query->from($db->quoteName('#__sppagebuilder_presets'));
$query->order($db->quoteName('ordering') . ' ASC');
$query->where($db->quoteName('id') . ' = ' . $db->quote($id));
$db->setQuery($query);
$result = $db->loadObject();
if (!empty($result))
{
$result->created = (new DateTime($result->created))->format('j F, Y');
$result->author = Factory::getUser($result->created_by)->get('name');
$result->preset = $result->preset;
}
$this->sendResponse($result);
}
catch (\Exception $e)
{
$response['message'] = $e->getMessage();
$this->sendResponse($response, 500);
}
}
/**
* Save Addon for future use.
*
* @return void
*/
private function savePreset()
{
$title = $this->getInput('title', '', 'STRING');
$addonName = $this->getInput('addon_name', '', 'STRING');
$preset = $this->getInput('preset', '', 'RAW');
if (empty($title) || empty($preset))
{
$response['message'] = 'Information missing';
$this->sendResponse($response, 404);
}
if (is_array($preset))
{
$preset = json_encode($preset);
}
$data = new stdClass;
$data->title = $title;
$data->preset = $preset;
$data->addon_name = $addonName;
$data->created = Factory::getDate()->toSql();
$data->created_by = Factory::getUser()->id;
try
{
$db = Factory::getDbo();
$db->insertObject('#__sppagebuilder_presets', $data, 'id');
$this->sendResponse($db->insertid(), 201);
}
catch (\Exception $e)
{
$response['message'] = $e->getMessage();
$this->sendResponse($response, 500);
}
}
}