Init Git Prod Mars 2026
This commit is contained in:
commit
d81efe93b1
362 files changed
+86627
No files matched your search
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
if (($_GET['page'] ?? '') !== 'maintenance') return;
|
||||
if (session_status() !== PHP_SESSION_ACTIVE) session_start();
|
||||
|
||||
$roles = (array)($_SESSION['role'] ?? []);
|
||||
if (!in_array('admin', $roles, true)) {
|
||||
echo '<div class="container my-4"><div class="alert alert-danger">'.htmlspecialchars(($translations['non_autorise'] ?? 'Accès refusé.'), ENT_QUOTES, 'UTF-8').'</div></div>';
|
||||
return;
|
||||
}
|
||||
|
||||
$e = static fn($s) => htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8');
|
||||
$siteRoot = realpath(__DIR__ . '/../../');
|
||||
|
||||
$statDir = function($path){
|
||||
$n=0; $s=0;
|
||||
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS));
|
||||
foreach($it as $f){
|
||||
if($f->isFile()){ $n++; $s += $f->getSize(); }
|
||||
}
|
||||
return [$n,$s];
|
||||
};
|
||||
|
||||
$uploads = $siteRoot.'/messages/uploads';
|
||||
$backups = $siteRoot.'/backups/db';
|
||||
$logsDir = $siteRoot.'/logs';
|
||||
@is_dir($backups) || @mkdir($backups,0755,true);
|
||||
|
||||
$uploadsStat = is_dir($uploads) ? $statDir($uploads) : [0,0];
|
||||
$backupsList = array_map('basename', glob($backups.'/db_*.sql*') ?: []);
|
||||
usort($backupsList, fn($a,$b)=>strcmp($b,$a));
|
||||
$lastBackup = $backupsList[0] ?? ($translations['maint_none'] ?? '(aucun)');
|
||||
?>
|
||||
|
||||
<div class="shadow p-4 rounded bg-light">
|
||||
<div class="container my-4">
|
||||
<h3 class="mb-3"><?= $e($translations['maintenance'] ?? 'Centre de maintenance') ?></h3>
|
||||
|
||||
<div class="row g-3">
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title"><?= $e($translations['backup_db'] ?? 'Sauvegardes DB') ?></h5>
|
||||
<p class="mb-1">
|
||||
<strong><?= $e($translations['maint_last_backup'] ?? 'Dernier backup:') ?></strong>
|
||||
<?= $e($lastBackup) ?>
|
||||
</p>
|
||||
<p class="text-muted small">
|
||||
<?= $e($translations['maint_folder'] ?? 'Dossier:') ?>
|
||||
<code><?= $e($backups) ?></code>
|
||||
</p>
|
||||
<a class="btn btn-dark" href="?page=backup_db">
|
||||
<?= $e($translations['maint_manage_backups'] ?? 'Gérer les sauvegardes') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title"><?= $e($translations['maint_uploads_messaging'] ?? 'Uploads messagerie') ?></h5>
|
||||
<p class="mb-1">
|
||||
<strong><?= $e($translations['maint_files'] ?? 'Fichiers:') ?></strong>
|
||||
<?= (int)$uploadsStat[0] ?>
|
||||
— <strong><?= $e($translations['maint_size'] ?? 'Taille:') ?></strong>
|
||||
<?= number_format($uploadsStat[1]/1024/1024, 2) ?> MB
|
||||
</p>
|
||||
<p class="text-muted small">
|
||||
<?= $e($translations['maint_folder'] ?? 'Dossier:') ?>
|
||||
<code><?= $e($uploads) ?></code>
|
||||
</p>
|
||||
<a class="btn btn-outline-dark" href="?page=purger_mess_upload">
|
||||
<?= $e($translations['purger_mess_upload'] ?? 'Purger orphelins') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title"><?= $e($translations['purger_messages'] ?? 'Conversations supprimées') ?></h5>
|
||||
<p class="text-muted small"><?= $e($translations['maint_purge_conversations_help'] ?? 'Supprimer définitivement les conversations retirées des deux côtés.') ?></p>
|
||||
<a class="btn btn-outline-dark" href="?page=purge_conversations">
|
||||
<?= $e($translations['maint_open'] ?? 'Ouvrir') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title"><?= $e($translations['afficher_logs'] ?? 'Journaux & erreurs') ?></h5>
|
||||
<p class="text-muted small"><?= $e($translations['maint_logs_help'] ?? 'Consulter, télécharger, vider, appliquer la rotation.') ?></p>
|
||||
<a class="btn btn-outline-dark" href="?page=logs">
|
||||
<?= $e($translations['maint_view_logs'] ?? 'Voir les logs') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title"><?= $e($translations['cleanup_rdv'] ?? 'Nettoyage RDV') ?></h5>
|
||||
<p class="text-muted small"><?= $e($translations['maint_cleanup_rdv_help'] ?? 'Lister & purger les rendez-vous non désirés.') ?></p>
|
||||
<a class="btn btn-outline-dark" href="?page=cleanup_rdv">
|
||||
<?= $e($translations['maint_open'] ?? 'Ouvrir') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title"><?= $e($translations['audit'] ?? 'Journal d’audit') ?></h5>
|
||||
<p class="text-muted small"><?= $e($translations['maint_audit_help'] ?? 'Historique des actions administrateur.') ?></p>
|
||||
<a class="btn btn-outline-dark" href="?page=audit">
|
||||
<?= $e($translations['maint_consult'] ?? 'Consulter') ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in new issue
Block a user