v1.0.0.0
StocketBase
- <?php
-
- declare(strict_types=1);
-
- if (count(get_included_files()) === 1) {
- http_response_code(403);
- exit;
- }
-
- $db = Database::site();
- $action = $_POST['action'] ?? '';
-
- if ($action === 'save_analytics_script') {
- $scriptId = (int) ($_POST['script_id'] ?? 0) ?: null;
- $name = trim((string) ($_POST['name'] ?? ''));
- $scriptCode = (string) ($_POST['script_code'] ?? '');
- $placement = in_array($_POST['placement'] ?? '', ['head', 'body_start', 'body_end'], true) ? $_POST['placement'] : 'head';
- $requiresConsent = isset($_POST['requires_consent']) ? 1 : 0;
- $isActive = isset($_POST['is_active']) ? 1 : 0;
-
- if ($name === '' || $scriptCode === '') {
- return;
- }
-
- if ($scriptId !== null) {
- $statement = $db->prepare(
- 'UPDATE analytics_scripts SET name = :name, script_code = :script_code, placement = :placement, requires_consent = :requires_consent, is_active = :is_active WHERE id = :id'
- );
- $statement->execute([
- 'name' => $name,
- 'script_code' => $scriptCode,
- 'placement' => $placement,
- 'requires_consent' => $requiresConsent,
- 'is_active' => $isActive,
- 'id' => $scriptId,
- ]);
- } else {
- $statement = $db->prepare(
- 'INSERT INTO analytics_scripts (name, script_code, placement, requires_consent, is_active) VALUES (:name, :script_code, :placement, :requires_consent, :is_active)'
- );
- $statement->execute([
- 'name' => $name,
- 'script_code' => $scriptCode,
- 'placement' => $placement,
- 'requires_consent' => $requiresConsent,
- 'is_active' => $isActive,
- ]);
- }
- }
-
- if ($action === 'delete_analytics_script') {
- $scriptId = (int) ($_POST['script_id'] ?? 0);
- if ($scriptId > 0) {
- $statement = $db->prepare('DELETE FROM analytics_scripts WHERE id = :id');
- $statement->execute(['id' => $scriptId]);
- }
- }
-
- if ($action === 'save_consent_settings') {
- $consentEnabled = isset($_POST['consent_manager_enabled']) ? '1' : '0';
- $statement = $db->prepare(
- 'INSERT INTO site_settings (setting_key, setting_value) VALUES (:key, :value) ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value)'
- );
- $statement->execute(['key' => 'consent_manager_enabled', 'value' => $consentEnabled]);
- $statement->execute(['key' => 'consent_footer_icon_enabled', 'value' => isset($_POST['consent_footer_icon_enabled']) ? '1' : '0']);
- }
-