58 lines
1.6 KiB
PHP
58 lines
1.6 KiB
PHP
<?php
|
|
// update_pdf_page_meta.php
|
|
// Salva i metadati delle pagine del PDF (numero pagine e dimensioni renderizzate)
|
|
// nella colonna pdf_page_meta del template.
|
|
//
|
|
// Riceve JSON: { template_id, pdf_page_meta }
|
|
// dove pdf_page_meta è una stringa JSON tipo:
|
|
// {"pages":3,"dims":[{"page":1,"width":1000,"height":1414}, ...]}
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
include('include/headscript.php');
|
|
|
|
function respond(bool $success, string $message = ''): void
|
|
{
|
|
echo json_encode(['success' => $success, 'message' => $message]);
|
|
exit;
|
|
}
|
|
|
|
$raw = file_get_contents('php://input');
|
|
$data = json_decode($raw, true);
|
|
|
|
if (!is_array($data)) {
|
|
respond(false, 'Invalid JSON payload.');
|
|
}
|
|
|
|
$templateId = isset($data['template_id']) ? (int)$data['template_id'] : 0;
|
|
$pageMeta = $data['pdf_page_meta'] ?? null;
|
|
|
|
if ($templateId <= 0) {
|
|
respond(false, 'Missing or invalid template_id.');
|
|
}
|
|
|
|
// pdf_page_meta deve essere una stringa JSON valida
|
|
if (!is_string($pageMeta)) {
|
|
respond(false, 'pdf_page_meta must be a JSON string.');
|
|
}
|
|
|
|
$decoded = json_decode($pageMeta, true);
|
|
if ($decoded === null && json_last_error() !== JSON_ERROR_NONE) {
|
|
respond(false, 'pdf_page_meta is not valid JSON: ' . json_last_error_msg());
|
|
}
|
|
|
|
try {
|
|
$db = DBHandlerSelect::getInstance();
|
|
$pdo = $db->getConnection();
|
|
|
|
$stmt = $pdo->prepare("UPDATE excel_templates SET pdf_page_meta = :meta WHERE id = :id");
|
|
$stmt->execute([
|
|
':meta' => $pageMeta,
|
|
':id' => $templateId,
|
|
]);
|
|
} catch (Throwable $e) {
|
|
respond(false, 'Database update failed: ' . $e->getMessage());
|
|
}
|
|
|
|
respond(true, 'Page metadata saved.');
|