/
home
/
assocoweys
/
sompe
/
administrator
/
components
/
com_sppagebuilder
/
editor
/
traits
/
Upload File
HOME
<?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\Http\Http; use Joomla\CMS\Component\ComponentHelper; // No direct access defined('_JEXEC') or die('Restricted access'); /** * Layout Import Trait */ trait LayoutImportTrait { use CommonTrait; public function import() { $method = $this->getInputMethod(); $this->checkNotAllowedMethods(['PUT', 'DELETE', 'PATCH'], $method); switch ($method) { case 'GET': $this->uploadLayout(); break; } } private function uploadLayout() { $http = new Http; $params = ComponentHelper::getParams('com_sppagebuilder'); $id = $this->getInput('id', 0, 'INT'); $type = $this->getInput('type', 'template', 'STRING'); $email = $params->get('joomshaper_email'); $apiKey = $params->get('joomshaper_license_key'); if (empty($id)) { $response['message'] = 'Invalid layout ID given!'; $this->sendResponse($response, 500); } if (empty($email) || empty($apiKey)) { $response['message'] = 'Invalid email and license key!'; $this->sendResponse($response, 500); } $apiURL = 'https://www.joomshaper.com/index.php?option=com_layouts&task=' . $type . '.download&support=4beyond&id=' . $id . '&email=' . $email . '&api_key=' . $apiKey; $pageResponse = $http->get($apiURL); $pageData = $pageResponse->body; if ($pageResponse->code !== 200) { $response['message'] = 'Something wrong there.'; $this->sendResponse($response, 500); } if (!empty($pageData)) { $pageData = json_decode($pageData); $updatedFieldIds = []; $updatedCollectionIds = []; if (isset($pageData->status) && !$pageData->status && $pageData->authorised) { $this->sendResponse(['message' => $pageData->authorised], 403); } $pageDataContent = $pageData->content; if(isset($pageDataContent->dynamicContentData) && !empty($pageDataContent->dynamicContentData)) { $updatedData = $this->importDynamicContentData($pageDataContent->dynamicContentData); $updatedFieldIds = $updatedData['globalFieldsMap'] ?? []; $updatedCollectionIds = $updatedData['globalCollectionsIdMap'] ?? []; } $content = (object) ['template' => '', 'css' => '']; if (!isset($pageDataContent->template)) { $content->template = json_encode($pageDataContent); } else { $pageDataContent->template = !\is_string($pageDataContent->template) ? json_encode($pageDataContent->template) : $pageDataContent->template; $content = $pageDataContent; } require_once JPATH_COMPONENT_SITE . '/helpers/helper.php'; $content->template = ApplicationHelper::sanitizePageText($content->template); $content->template = $this->updateDynamicIds($content->template, $updatedFieldIds, $updatedCollectionIds); $this->sendResponse(($content), 200); } } }