__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?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 JoomShaper\SPPageBuilder\DynamicContent\Controllers\CollectionImportExportController;
// No direct access
defined('_JEXEC') or die('Restricted access');
/**
* Layout Import Trait
*/
trait CommonTrait
{
/**
* Import dynamic content data.
*
* @param string $data
* @return array
*/
private function importDynamicContentData($data)
{
$dynamicContentExportImportController = new CollectionImportExportController();
return $dynamicContentExportImportController->importDynamicContent(json_decode($data, true));
}
/**
* Update dynamic ids in the content.
*
* @param string $content
* @param array $updatedFieldIds
* @param array $updatedCollectionIds
* @return string
*/
private function updateDynamicIds($content, $updatedFieldIds = [], $updatedCollectionIds = [])
{
if (empty($updatedFieldIds) || empty($updatedCollectionIds)) {
return $content;
}
$data = $content;
$this->recursivelyUpdateIds($data, $updatedFieldIds, $updatedCollectionIds);
return $data;
}
/**
* Recursively update ids in the data.
*
* @param mixed $data
* @param array $updatedFieldIds
* @param array $updatedCollectionIds
*/
private function recursivelyUpdateIds(&$data, $updatedFieldIds, $updatedCollectionIds)
{
if (!is_array($data) && !is_object($data)) {
return;
}
if (is_object($data)) {
$data = json_decode(json_encode($data), true);
}
foreach ($data as $key => &$value) {
if($key === 'source') {
if(isset($value) && isset($updatedCollectionIds[$value])) {
$value = $updatedCollectionIds[$value];
}
} elseif($key === 'field_name') {
if(isset($value) && isset($updatedFieldIds[$value])) {
$value = $updatedFieldIds[$value];
}
} elseif (is_array($value)) {
if ($key === 'attribute') {
if(isset($value['id']) && isset($updatedFieldIds[$value['id']])) {
$value['id'] = $updatedFieldIds[$value['id']];
}
if(isset($value['path'])) {
$path = $value['path'];
$pathExploded = explode('.', $path);
$updatedIds = [];
foreach ($pathExploded as $attributeId) {
if(isset($updatedFieldIds[$attributeId])) {
$updatedIds[] = $updatedFieldIds[$attributeId];
} else {
$updatedIds[] = $attributeId;
}
}
$value['path'] = implode('.', $updatedIds);
}
}
$this->recursivelyUpdateIds($value, $updatedFieldIds, $updatedCollectionIds);
} elseif (is_object($value)) {
$arrayValue = json_decode(json_encode($value), true);
if ($key === 'attribute') {
if(isset($arrayValue['id']) && isset($updatedFieldIds[$arrayValue['id']])) {
$arrayValue['id'] = $updatedFieldIds[$arrayValue['id']];
}
if(isset($arrayValue['path'])) {
$path = $arrayValue['path'];
$pathExploded = explode('.', $path);
$updatedIds = [];
foreach ($pathExploded as $attributeId) {
if(isset($updatedFieldIds[$attributeId])) {
$updatedIds[] = $updatedFieldIds[$attributeId];
} else {
$updatedIds[] = $attributeId;
}
}
$value['path'] = implode('.', $updatedIds);
}
}
$this->recursivelyUpdateIds($arrayValue, $updatedFieldIds, $updatedCollectionIds);
$value = json_decode(json_encode($arrayValue));
}
}
if (is_object($data)) {
$data = json_decode(json_encode($data));
}
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| AddToMenuTrait.php | File | 2.69 KB | 0664 |
|
| AddonsTrait.php | File | 7.77 KB | 0664 |
|
| AiContentTrait.php | File | 10 KB | 0664 |
|
| AiContentUploadTrait.php | File | 8.14 KB | 0664 |
|
| AllFontsTrait.php | File | 1.32 KB | 0664 |
|
| AppConfig.php | File | 5.33 KB | 0664 |
|
| ApplicationSettingsTrait.php | File | 16.47 KB | 0664 |
|
| BulkExportTrait.php | File | 16.66 KB | 0664 |
|
| BulkImportTrait.php | File | 18.55 KB | 0664 |
|
| CommonTrait.php | File | 4.56 KB | 0664 |
|
| ExportTrait.php | File | 11.07 KB | 0664 |
|
| FontsTrait.php | File | 12.45 KB | 0664 |
|
| GlobalColorsTrait.php | File | 3.37 KB | 0664 |
|
| IconProvidersTrait.php | File | 928 B | 0664 |
|
| IconsListTrait.php | File | 1.39 KB | 0664 |
|
| IconsTrait.php | File | 14.71 KB | 0664 |
|
| ImageShapesTrait.php | File | 5.56 KB | 0664 |
|
| ImportTrait.php | File | 16.82 KB | 0664 |
|
| IntegrationTrait.php | File | 4.64 KB | 0664 |
|
| LanguageTrait.php | File | 6.6 KB | 0664 |
|
| LayoutImportTrait.php | File | 2.89 KB | 0664 |
|
| Media.php | File | 17.78 KB | 0664 |
|
| MediaFolderTrait.php | File | 9.5 KB | 0664 |
|
| MenuByPageIdTrait.php | File | 952 B | 0664 |
|
| MenuListTrait.php | File | 791 B | 0664 |
|
| PageContentById.php | File | 1.22 KB | 0664 |
|
| PageDuplicateTrait.php | File | 1.35 KB | 0664 |
|
| PageOrderTrait.php | File | 1.16 KB | 0664 |
|
| PageTemplateTrait.php | File | 3.1 KB | 0664 |
|
| PageTrait.php | File | 9.74 KB | 0664 |
|
| ParentItemsTrait.php | File | 1.01 KB | 0664 |
|
| PluginsTrait.php | File | 2.93 KB | 0664 |
|
| PopupTemplateTrait.php | File | 2.34 KB | 0664 |
|
| ProductPageContentById.php | File | 2 KB | 0664 |
|
| PurgeCssTrait.php | File | 810 B | 0664 |
|
| SaveIgTokenTrait.php | File | 2.01 KB | 0664 |
|
| SavedAddonsOrderTrait.php | File | 1.19 KB | 0664 |
|
| SavedAddonsTrait.php | File | 4.06 KB | 0664 |
|
| SavedPresetsTrait.php | File | 3.17 KB | 0664 |
|
| SavedSectionsOrderTrait.php | File | 1.21 KB | 0664 |
|
| SavedSectionsTrait.php | File | 4.12 KB | 0664 |
|
| SectionLibraryTrait.php | File | 2.84 KB | 0664 |
|
| SettingsTrait.php | File | 1.07 KB | 0664 |
|
| UploadFontTrait.php | File | 5.48 KB | 0664 |
|