38527-vm/db/config.php
2026-02-18 00:20:13 +00:00

44 lines
1.4 KiB
PHP

<?php
// Generated by setup_mariadb_project.sh — edit as needed.
define('DB_HOST', '127.0.0.1');
define('DB_NAME', 'app_38527');
define('DB_USER', 'app_38527');
define('DB_PASS', 'ded9b4d6-94d1-4a22-b636-1d581ddcb411');
// Registration settings
define('REQUIRE_INVITE_CODE', true); // Set to true to make registration private, false for public
function db() {
static $pdo;
if (!$pdo) {
$pdo = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8mb4', DB_USER, DB_PASS, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]);
}
return $pdo;
}
function enforceChannelLimit($channel_id) {
$stmt = db()->prepare("SELECT message_limit FROM channels WHERE id = ?");
$stmt->execute([$channel_id]);
$channel = $stmt->fetch();
if ($channel && !empty($channel['message_limit'])) {
$limit = (int)$channel['message_limit'];
// Delete oldest messages that exceed the limit
$stmt = db()->prepare("
DELETE FROM messages
WHERE channel_id = ?
AND id NOT IN (
SELECT id FROM (
SELECT id FROM messages
WHERE channel_id = ?
ORDER BY created_at DESC, id DESC
LIMIT " . $limit . "
) as tmp
)
");
$stmt->execute([$channel_id, $channel_id]);
}
}