Files
trf_certest/public/userarea/update_pdf_page_meta.php
2026-08-18 16:00:06 +02:00

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.');