Files
sistema_funcionando_lastwar/telegram_welcome.php

143 lines
6.8 KiB
PHP
Executable File

<?php
require_once __DIR__ . '/includes/session_check.php';
require_once __DIR__ . '/includes/db.php';
// --- Lógica para el Mensaje de Bienvenida ---
try {
$pdo->exec("
CREATE TABLE IF NOT EXISTS telegram_welcome_messages (
id INT AUTO_INCREMENT PRIMARY KEY,
chat_id BIGINT NOT NULL UNIQUE,
welcome_message TEXT,
is_active BOOLEAN NOT NULL DEFAULT TRUE,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
");
} catch (PDOException $e) {
die("Error al verificar la tabla de bienvenida: " . $e->getMessage());
}
// --- Lógica para los Ajustes Generales ---
// Manejar el envío de formularios
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Guardar Mensaje de Bienvenida
if (isset($_POST['save_welcome_message'])) {
$welcomeMessage = $_POST['welcome_message'] ?? '';
$isActive = isset($_POST['is_active']) ? 1 : 0;
$chatId = '-1002578350881'; // Manteniendo el ID de chat original para esta función
try {
$stmt = $pdo->prepare("
INSERT INTO telegram_welcome_messages (chat_id, welcome_message, is_active)
VALUES (?, ?, ?)
ON DUPLICATE KEY UPDATE welcome_message = ?, is_active = ?;
");
$stmt->execute([$chatId, $welcomeMessage, $isActive, $welcomeMessage, $isActive]);
$successMessage = "¡Configuración de bienvenida guardada con éxito!";
} catch (PDOException $e) {
$errorMessage = "Error al guardar la configuración de bienvenida: " . $e->getMessage();
}
}
// Guardar Ajustes Generales (Grupo por defecto)
if (isset($_POST['save_general_settings'])) {
$defaultGroupId = $_POST['default_announcement_group'] ?? '';
try {
$stmt = $pdo->prepare("INSERT INTO settings (setting_key, setting_value) VALUES (?, ?) ON DUPLICATE KEY UPDATE setting_value = ?");
$stmt->execute(['telegram_default_announcement_group', $defaultGroupId, $defaultGroupId]);
$successMessage = "¡Ajustes generales guardados con éxito!";
} catch (PDOException $e) {
$errorMessage = "Error al guardar los ajustes generales: " . $e->getMessage();
}
}
}
// --- Obtener datos para mostrar en la página ---
// Configuración del Mensaje de Bienvenida
$stmt_welcome = $pdo->prepare("SELECT * FROM telegram_welcome_messages WHERE chat_id = ?");
$stmt_welcome->execute(['-1002578350881']);
$welcomeConfig = $stmt_welcome->fetch(PDO::FETCH_ASSOC);
if (!$welcomeConfig) {
$welcomeConfig = [
'welcome_message' => '¡Bienvenido/a {user_name} a nuestro grupo! Esperamos que disfrutes tu estancia.',
'is_active' => true
];
}
// Grupos de Telegram para el selector
$stmt_groups = $pdo->query("SELECT name, platform_id FROM recipients WHERE platform = 'telegram' AND type = 'channel' ORDER BY name ASC");
$telegramGroups = $stmt_groups->fetchAll(PDO::FETCH_ASSOC);
// Configuración del grupo por defecto
$stmt_settings = $pdo->prepare("SELECT setting_value FROM settings WHERE setting_key = ?");
$stmt_settings->execute(['telegram_default_announcement_group']);
$defaultGroupSetting = $stmt_settings->fetchColumn();
$pageTitle = 'Configuración de Telegram';
require_once __DIR__ . '/templates/header.php';
?>
<div class="container-fluid">
<h1 class="mt-4" data-translate="true">Configuración de Telegram</h1>
<?php if (isset($successMessage)): ?>
<div class="alert alert-success" data-translate="true"><?= htmlspecialchars($successMessage) ?></div>
<?php endif; ?>
<?php if (isset($errorMessage)): ?>
<div class="alert alert-danger" data-translate="true"><?= htmlspecialchars($errorMessage) ?></div>
<?php endif; ?>
<!-- Card para Mensaje de Bienvenida -->
<div class="card shadow-sm mb-4">
<div class="card-header"><h5 class="mb-0" data-translate="true">Gestionar Mensaje de Bienvenida</h5></div>
<div class="card-body">
<form method="POST">
<div class="mb-3">
<label for="welcome_message" class="form-label" data-translate="true">Mensaje de Bienvenida</label>
<textarea class="form-control" id="welcome_message" name="welcome_message" rows="5"><?= htmlspecialchars($welcomeConfig['welcome_message']) ?></textarea>
<div class="form-text" data-translate="true">
Puedes usar <code>{user_name}</code> y <code>{chat_title}</code>.
</div>
</div>
<div class="form-check form-switch mb-3">
<input class="form-check-input" type="checkbox" id="is_active" name="is_active" <?= $welcomeConfig['is_active'] ? 'checked' : '' ?>>
<label class="form-check-label" for="is_active" data-translate="true">Activar mensaje de bienvenida</label>
</div>
<button type="submit" name="save_welcome_message" class="btn btn-primary">
<i class="bi bi-save-fill me-1"></i> <span data-translate="true">Guardar Mensaje de Bienvenida</span>
</button>
</form>
</div>
</div>
<!-- Card para Ajustes Generales -->
<div class="card shadow-sm mb-4">
<div class="card-header"><h5 class="mb-0" data-translate="true">Ajustes de Comandos</h5></div>
<div class="card-body">
<form method="POST">
<div class="mb-3">
<label for="default_announcement_group" class="form-label" data-translate="true">Grupo de Anuncios por Defecto</label>
<select class="form-select" id="default_announcement_group" name="default_announcement_group">
<option value="" data-translate="true">-- No seleccionado --</option>
<?php foreach ($telegramGroups as $group): ?>
<option value="<?= htmlspecialchars($group['platform_id']) ?>" <?= ($defaultGroupSetting == $group['platform_id']) ? 'selected' : '' ?>>
<?= htmlspecialchars($group['name']) ?> (ID: <?= htmlspecialchars($group['platform_id']) ?>)
</option>
<?php endforeach; ?>
</select>
<div class="form-text" data-translate="true">Selecciona el grupo al que se enviarán los mensajes al usar el comando "Enviar a grupo #comando" desde el chat del bot.</div>
</div>
<button type="submit" name="save_general_settings" class="btn btn-primary">
<i class="bi bi-save-fill me-1"></i> <span data-translate="true">Guardar Ajustes de Comandos</span>
</button>
</form>
</div>
</div>
</div>
<?php
require_once __DIR__ . '/templates/footer.php';
?>