File manager - Edit - /home/webapp69.cm.in.th/u69319090039/Shop39/database/app/Models/SiteSetting.php
Back
<?php class SiteSetting extends Model { protected string $table = 'site_settings'; private static ?array $cachedSettings = null; /** * Get all site settings as key-value associative array */ public static function getAll(): array { if (self::$cachedSettings !== null) { return self::$cachedSettings; } $defaults = [ 'site_name' => 'Marketplace', 'site_description' => 'แพลตฟอร์มตลาดออนไลน์ระดับพรีเมียม ศูนย์รวมสินค้าราคาดีจากร้านค้าที่ผ่านการรับรองทั่วประเทศ', 'contact_address' => 'Bangkok, Thailand', 'contact_email' => 'support@marketplace.com', 'contact_phone' => '02-123-4567', 'social_facebook' => 'https://facebook.com', 'social_instagram' => 'https://instagram.com', 'social_line' => 'https://line.me', 'social_youtube' => 'https://youtube.com', ]; try { $db = Database::getInstance(); // Check if table exists $t = $db->query("SHOW TABLES LIKE 'site_settings'"); if ($t && $t->rowCount() > 0) { $stmt = $db->query("SELECT setting_key, setting_value FROM site_settings"); $rows = $stmt->fetchAll(PDO::FETCH_KEY_PAIR); self::$cachedSettings = array_merge($defaults, $rows ?: []); return self::$cachedSettings; } } catch (Exception $e) { error_log("[SiteSetting] Error loading settings: " . $e->getMessage()); } self::$cachedSettings = $defaults; return self::$cachedSettings; } /** * Get single setting value by key with optional default */ public static function get(string $key, string $default = ''): string { $all = self::getAll(); return $all[$key] ?? $default; } /** * Save/update multiple settings */ public static function setMultiple(array $settings): bool { try { $db = Database::getInstance(); $stmt = $db->prepare(" INSERT INTO site_settings (setting_key, setting_value) VALUES (:key, :val) ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value) "); foreach ($settings as $key => $val) { $stmt->execute([ 'key' => Security::sanitizeString($key), 'val' => is_string($val) ? trim($val) : (string)$val ]); } self::$cachedSettings = null; // Clear cache return true; } catch (Exception $e) { error_log("[SiteSetting] Error updating settings: " . $e->getMessage()); return false; } } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.24 |
proxy
|
phpinfo
|
Settings