This commit is contained in:
2026-01-19 00:59:24 +01:00
parent 64d1fb072a
commit e761b62ac2
2 changed files with 32 additions and 19 deletions

View File

@@ -947,24 +947,42 @@
&& !hasPages
&& (parsedState.components || parsedState.styles);
if (isArray) {
ed.setComponents(parsedState);
applied = true;
log('CONTENT', 'JSON-Komponenten (Array) angewendet.', 'orange');
} else if (isLegacy) {
if (parsedState.components) {
ed.setComponents(parsedState.components);
} else {
const looksHtmlWrapper = parsedState.length === 1 && parsedState[0] && parsedState[0].type === 'html';
if (!looksHtmlWrapper) {
ed.setComponents(parsedState);
applied = true;
log('CONTENT', 'JSON-Komponenten (Array) angewendet.', 'orange');
} else {
log('CONTENT WARN', 'JSON enthält nur HTML-Wrapper, nutze HTML-Fallback.', 'orange', 'warn');
applied = false;
}
if (parsedState.styles) {
ed.setStyle(parsedState.styles);
} else if (isLegacy) {
const legacyComponents = parsedState.components || parsedState;
const looksHtmlWrapper = Array.isArray(legacyComponents)
&& legacyComponents.length === 1
&& legacyComponents[0]
&& legacyComponents[0].type === 'html';
if (!looksHtmlWrapper) {
ed.setComponents(legacyComponents);
if (parsedState.styles) {
ed.setStyle(parsedState.styles);
}
applied = true;
log('CONTENT', 'Legacy JSON (components/styles) angewendet.', 'orange');
} else {
log('CONTENT WARN', 'Legacy JSON enthält nur HTML-Wrapper, nutze HTML-Fallback.', 'orange', 'warn');
applied = false;
}
applied = true;
log('CONTENT', 'Legacy JSON (components/styles) angewendet.', 'orange');
} else if (parsedState && typeof parsedState === 'object' && !hasPages) {
ed.setComponents(parsedState);
applied = true;
log('CONTENT', 'JSON ohne Pages als Komponenten angewendet.', 'orange');
const looksHtmlWrapper = parsedState && parsedState.type === 'html';
if (!looksHtmlWrapper) {
ed.setComponents(parsedState);
applied = true;
log('CONTENT', 'JSON ohne Pages als Komponenten angewendet.', 'orange');
} else {
log('CONTENT WARN', 'JSON ohne Pages ist HTML-Wrapper, nutze HTML-Fallback.', 'orange', 'warn');
applied = false;
}
} else {
ed.loadProjectData(parsedState);
applied = true;

View File

@@ -481,11 +481,6 @@ class ApiKernel
$gjsComponents = $this->parseHtmlToGjsComponents($topHtml);
}
if ($editorType === 'grapesjs' && $jsonCol && empty($topContent) && $topHtml !== null) {
$pendingUpdate[$jsonCol] = $this->encodeJson($gjsComponents);
$topContent = $pendingUpdate[$jsonCol];
$rowOut[$jsonCol] = $pendingUpdate[$jsonCol];
}
if ($editorType === 'craftjs' && $craftCol) {
$craftPayload = isset($row[$craftCol]) ? (string)$row[$craftCol] : '';
if ($craftPayload === '') {