66 lines
2.2 KiB
PHP
66 lines
2.2 KiB
PHP
<?php
|
|
// include/school_settings_loader.php
|
|
|
|
if (defined('SCHOOL_SETTINGS_LOADED')) return;
|
|
define('SCHOOL_SETTINGS_LOADED', true);
|
|
|
|
global $schoolSettings;
|
|
|
|
$pdo = DBHandlerSelect::getInstance()->getConnection();
|
|
|
|
// 1) Prova a prendere school_id dalla sessione
|
|
$school_id = (int)($_SESSION['school_id'] ?? 0);
|
|
|
|
// 2) Se non c'è, prova a risolverlo dal DB via owner (utente loggato)
|
|
if ($school_id <= 0) {
|
|
$owner_id = (int)($iduserlogin ?? $_SESSION['iduserlogin'] ?? 0);
|
|
|
|
if ($owner_id > 0) {
|
|
$stmt = $pdo->prepare("SELECT id FROM schools WHERE owner_id = ? ORDER BY id DESC LIMIT 1");
|
|
$stmt->execute([$owner_id]);
|
|
$school_id = (int)($stmt->fetchColumn() ?: 0);
|
|
|
|
if ($school_id > 0) {
|
|
$_SESSION['school_id'] = $school_id; // sincronizza sessione
|
|
}
|
|
}
|
|
}
|
|
|
|
// Default settings MINIMI (se non esiste scuola o settings)
|
|
$defaults = [
|
|
'portal_purchases_enabled' => 0,
|
|
'allowed_product_types' => 'subscription,carnet,drop_in',
|
|
'payment_methods' => 'manual',
|
|
'currency_code' => 'EUR',
|
|
'enable_notifications' => 1,
|
|
'allow_freeze_global' => 1,
|
|
'freeze_max_days_global' => 30,
|
|
'auto_propagate_on_purchase' => 1,
|
|
'allow_full_access_rebooking' => 1,
|
|
];
|
|
|
|
if ($school_id <= 0) {
|
|
// Nessuna scuola → default
|
|
$schoolSettings = $defaults;
|
|
} else {
|
|
// Carica settings se esistono
|
|
$stmt = $pdo->prepare("SELECT * FROM school_settings WHERE school_id = ? LIMIT 1");
|
|
$stmt->execute([$school_id]);
|
|
$settings = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if (!$settings) {
|
|
// Se mancano, crea riga base (solo school_id) e ricarica
|
|
$stmtIns = $pdo->prepare("INSERT INTO school_settings (school_id) VALUES (?)");
|
|
$stmtIns->execute([$school_id]);
|
|
|
|
$stmt->execute([$school_id]);
|
|
$settings = $stmt->fetch(PDO::FETCH_ASSOC) ?: [];
|
|
}
|
|
|
|
$schoolSettings = array_merge($defaults, $settings);
|
|
}
|
|
|
|
// Helpers array
|
|
$schoolSettings['payment_methods_array'] = array_filter(array_map('trim', explode(',', $schoolSettings['payment_methods'] ?? '')));
|
|
$schoolSettings['allowed_product_types_array'] = array_filter(array_map('trim', explode(',', $schoolSettings['allowed_product_types'] ?? '')));
|