reprogrammed functionality
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
// include/school_settings_loader.php
|
||||
|
||||
// Evita inclusioni multiple
|
||||
if (defined('SCHOOL_SETTINGS_LOADED')) return;
|
||||
define('SCHOOL_SETTINGS_LOADED', true);
|
||||
|
||||
global $schoolSettings; // o usa $_SESSION['school_settings'] se preferisci
|
||||
|
||||
$school_id = (int)($_SESSION['school_id'] ?? 0);
|
||||
|
||||
if ($school_id <= 0) {
|
||||
// Nessuna scuola selezionata → valori di default minimi
|
||||
$schoolSettings = [
|
||||
'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,
|
||||
// ... aggiungi tutti gli altri campi con default sensati
|
||||
];
|
||||
} else {
|
||||
$pdo = DBHandlerSelect::getInstance()->getConnection();
|
||||
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT *
|
||||
FROM school_settings
|
||||
WHERE school_id = ?
|
||||
LIMIT 1
|
||||
");
|
||||
$stmt->execute([$school_id]);
|
||||
$settings = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if ($settings) {
|
||||
$schoolSettings = $settings;
|
||||
} else {
|
||||
// Scuola senza impostazioni → crea record con default
|
||||
$stmt_insert = $pdo->prepare("
|
||||
INSERT INTO school_settings (school_id) VALUES (?)
|
||||
");
|
||||
$stmt_insert->execute([$school_id]);
|
||||
|
||||
// Ricarica dopo insert
|
||||
$stmt = $pdo->prepare("SELECT * FROM school_settings WHERE school_id = ? LIMIT 1");
|
||||
$stmt->execute([$school_id]);
|
||||
$schoolSettings = $stmt->fetch(PDO::FETCH_ASSOC) ?: [];
|
||||
}
|
||||
|
||||
// Fallback per campi che potrebbero essere NULL
|
||||
$schoolSettings = array_merge([
|
||||
'portal_purchases_enabled' => 1,
|
||||
'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,
|
||||
// ... tutti gli altri campi che vuoi default
|
||||
], $schoolSettings);
|
||||
}
|
||||
|
||||
// Trasforma stringhe separate da virgola in array (molto comodo)
|
||||
$schoolSettings['payment_methods_array'] = array_filter(explode(',', $schoolSettings['payment_methods'] ?? ''));
|
||||
$schoolSettings['allowed_product_types_array'] = array_filter(explode(',', $schoolSettings['allowed_product_types'] ?? ''));
|
||||
Reference in New Issue
Block a user