Change/edit
This commit is contained in:
@@ -1240,6 +1240,7 @@ class ApiKernel
|
||||
$versionId = (int)$this->val($this->in, ['id', 'version_id', 'version'], 0);
|
||||
if ($versionId <= 0) $this->fail('version id required', null, 422);
|
||||
$contentId = (int)$this->val($this->in, ['content_id', 'content'], 0);
|
||||
$force = (int)$this->val($this->in, ['force', 'override'], 0) === 1;
|
||||
|
||||
$versionsTable = $this->contentVersionsTable();
|
||||
$itemsTable = $this->contentItemsTable();
|
||||
@@ -1323,32 +1324,35 @@ class ApiKernel
|
||||
if ($customerId <= 0) $this->fail('Customer context missing', null, 500);
|
||||
$contentId = (int)$this->val($this->in, ['content_id', 'content'], 0);
|
||||
if ($contentId <= 0) $this->fail('content_id required', null, 422);
|
||||
$force = (int)$this->val($this->in, ['force', 'override'], 0) === 1;
|
||||
|
||||
$refsDebug = [];
|
||||
$refs = $this->findTemplateReferences($customerId, $contentId, $refsDebug);
|
||||
if (!empty($refsDebug)) {
|
||||
$this->writeDebugLog('templates_references_debug', $refsDebug);
|
||||
}
|
||||
if (!empty($refs)) {
|
||||
debug_log_write('templates_toggle', [
|
||||
'time' => date(DATE_ATOM),
|
||||
'action' => 'content_versions.deactivate.blocked',
|
||||
'customer_id' => $customerId,
|
||||
'content_id' => $contentId,
|
||||
'references' => $refs,
|
||||
'input' => $this->in,
|
||||
], [
|
||||
'append' => true,
|
||||
'json' => true,
|
||||
'newline' => true,
|
||||
]);
|
||||
$this->respond([
|
||||
'ok' => false,
|
||||
'error' => 'Template wird in anderen Templates verwendet',
|
||||
'content_id' => $contentId,
|
||||
'count' => count($refs),
|
||||
'references' => $refs,
|
||||
], 409);
|
||||
if (!$force) {
|
||||
$refsDebug = [];
|
||||
$refs = $this->findTemplateReferences($customerId, $contentId, $refsDebug);
|
||||
if (!empty($refsDebug)) {
|
||||
$this->writeDebugLog('templates_references_debug', $refsDebug);
|
||||
}
|
||||
if (!empty($refs)) {
|
||||
debug_log_write('templates_toggle', [
|
||||
'time' => date(DATE_ATOM),
|
||||
'action' => 'content_versions.deactivate.blocked',
|
||||
'customer_id' => $customerId,
|
||||
'content_id' => $contentId,
|
||||
'references' => $refs,
|
||||
'input' => $this->in,
|
||||
], [
|
||||
'append' => true,
|
||||
'json' => true,
|
||||
'newline' => true,
|
||||
]);
|
||||
$this->respond([
|
||||
'ok' => false,
|
||||
'error' => 'Template wird in anderen Templates verwendet',
|
||||
'content_id' => $contentId,
|
||||
'count' => count($refs),
|
||||
'references' => $refs,
|
||||
], 409);
|
||||
}
|
||||
}
|
||||
|
||||
$ok = $this->deactivateContentVersion($customerId, $contentId);
|
||||
@@ -1395,6 +1399,37 @@ class ApiKernel
|
||||
$this->fail('Active versions cannot be deleted', ['id' => $versionId], 422);
|
||||
}
|
||||
|
||||
if (!$force && $contentId > 0) {
|
||||
$refsDebug = [];
|
||||
$refs = $this->findTemplateReferences($customerId, $contentId, $refsDebug);
|
||||
if (!empty($refsDebug)) {
|
||||
$this->writeDebugLog('templates_references_debug', $refsDebug);
|
||||
}
|
||||
if (!empty($refs)) {
|
||||
debug_log_write('templates_toggle', [
|
||||
'time' => date(DATE_ATOM),
|
||||
'action' => 'content_versions.delete.blocked',
|
||||
'customer_id' => $customerId,
|
||||
'content_id' => $contentId,
|
||||
'version_id' => $versionId,
|
||||
'references' => $refs,
|
||||
'input' => $this->in,
|
||||
], [
|
||||
'append' => true,
|
||||
'json' => true,
|
||||
'newline' => true,
|
||||
]);
|
||||
$this->respond([
|
||||
'ok' => false,
|
||||
'error' => 'Template wird in anderen Templates verwendet',
|
||||
'content_id' => $contentId,
|
||||
'version_id' => $versionId,
|
||||
'count' => count($refs),
|
||||
'references' => $refs,
|
||||
], 409);
|
||||
}
|
||||
}
|
||||
|
||||
$stmt = $this->pdo->prepare("DELETE FROM `$table` WHERE `id` = :id AND `customer_id` = :cid LIMIT 1");
|
||||
$stmt->execute([':id' => $versionId, ':cid' => $customerId]);
|
||||
$this->respond(['ok' => true, 'deleted' => true, 'id' => $versionId]);
|
||||
|
||||
Reference in New Issue
Block a user