'EasyCoins', 'token_symbol' => 'EC', 'token_plural' => 'EasyCoins', 'token_description' => 'Platform currency for tips and donations', 'token_icon' => '/f_templates/tpl_frontend/img/default-token.png', 'token_color_primary' => '#FFD700', 'token_color_secondary' => '#FFA500', 'exchange_rate' => '1.00', 'min_purchase' => '1.00', 'max_purchase' => '1000.00', 'enabled' => '1' ]; try { $sql = "SELECT setting_key, setting_value FROM db_settings WHERE setting_key LIKE 'token_%'"; $result = $class_database->execute($sql); $settings = $defaults; while (!$result->EOF) { $key = str_replace('token_', '', $result->fields['setting_key']); $settings[$key] = $result->fields['setting_value']; $result->MoveNext(); } return $settings; } catch (Exception $e) { return $defaults; } } function updateTokenSettings($data) { global $class_database; try { $settings = [ 'token_name' => $class_filter->clr_str($data['token_name']), 'token_symbol' => strtoupper($class_filter->clr_str($data['token_symbol'])), 'token_plural' => $class_filter->clr_str($data['token_plural']), 'token_description' => $class_filter->clr_str($data['token_description']), 'token_color_primary' => $class_filter->clr_str($data['token_color_primary']), 'token_color_secondary' => $class_filter->clr_str($data['token_color_secondary']), 'exchange_rate' => floatval($data['exchange_rate']), 'min_purchase' => floatval($data['min_purchase']), 'max_purchase' => floatval($data['max_purchase']), 'enabled' => isset($data['enabled']) ? '1' : '0' ]; foreach ($settings as $key => $value) { $sql = "INSERT INTO db_settings (setting_key, setting_value, setting_description) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE setting_value = ?"; $description = ucfirst(str_replace('_', ' ', $key)); $class_database->execute($sql, ["token_$key", $value, $description, $value]); } return ['success' => true, 'message' => 'Token settings updated successfully!']; } catch (Exception $e) { return ['success' => false, 'message' => 'Error updating settings: ' . $e->getMessage()]; } } function uploadTokenIcon($file) { if (!isset($file['tmp_name']) || $file['error'] !== UPLOAD_ERR_OK) { return ['success' => false, 'message' => 'No file uploaded or upload error']; } // Validate file type $allowed_types = ['image/png', 'image/jpeg', 'image/gif', 'image/svg+xml']; if (!in_array($file['type'], $allowed_types)) { return ['success' => false, 'message' => 'Invalid file type. Please upload PNG, JPG, GIF, or SVG']; } // Validate file size (max 2MB) if ($file['size'] > 2 * 1024 * 1024) { return ['success' => false, 'message' => 'File too large. Maximum size is 2MB']; } try { $upload_dir = 'f_templates/tpl_frontend/img/tokens/'; if (!is_dir($upload_dir)) { mkdir($upload_dir, 0755, true); } $extension = pathinfo($file['name'], PATHINFO_EXTENSION); $filename = 'token_icon_' . time() . '.' . $extension; $filepath = $upload_dir . $filename; if (move_uploaded_file($file['tmp_name'], $filepath)) { // Update database global $class_database; $sql = "INSERT INTO db_settings (setting_key, setting_value, setting_description) VALUES ('token_icon', ?, 'Token icon image path') ON DUPLICATE KEY UPDATE setting_value = ?"; $icon_path = '/' . $filepath; $class_database->execute($sql, [$icon_path, $icon_path]); return ['success' => true, 'message' => 'Token icon uploaded successfully!']; } else { return ['success' => false, 'message' => 'Failed to upload file']; } } catch (Exception $e) { return ['success' => false, 'message' => 'Upload error: ' . $e->getMessage()]; } } function resetTokenDefaults() { global $class_database; try { $sql = "DELETE FROM db_settings WHERE setting_key LIKE 'token_%'"; $class_database->execute($sql); return ['success' => true, 'message' => 'Token settings reset to defaults!']; } catch (Exception $e) { return ['success' => false, 'message' => 'Error resetting settings: ' . $e->getMessage()]; } } ?>
Reset all token settings to default values. This action cannot be undone.