Switch PHP views to Twig and add 2FA/UI enhancements

Migrate many view templates from raw PHP to Twig and modernize UI/UX for 2FA and settings. Controllers updated to provide avatar data and two-factor info (ProfileController, UserController) and SettingsController now includes timezone lists, notification preset selection, cron path, cached update state and rollback availability. ErrorHandler now attempts to render error pages via a new Core\TwigService with a safe fallback to raw PHP views. TwoFactorService generation silences deprecated warnings during QR code creation. Numerous .php view files were removed and replaced with .twig equivalents (2fa setup/verify/backup-codes and many auth, dashboard, domains, errors, layout, users, tags, tld-registry, etc.), and core/TwigService was added. These changes move the app toward a Twig-based templating system, improve 2FA flows, surface avatar images in lists/profiles, and make error rendering more robust.
This commit is contained in:
Hosteroid
2026-03-03 18:21:32 +02:00
parent cd4e3e6bcc
commit 4818172bc6
73 changed files with 9948 additions and 10686 deletions

View File

@@ -49,6 +49,11 @@ class UserController extends Controller
// Get filtered users
$users = $this->userModel->getFiltered($filters, $sort, strtoupper($order), $perPage, $offset);
foreach ($users as &$u) {
$u['avatar'] = \App\Helpers\AvatarHelper::getAvatar($u, 40);
}
unset($u);
$this->view('users/index', [
'users' => $users,
@@ -240,6 +245,17 @@ class UserController extends Controller
// Get 2FA status
$twoFactorStatus = $this->userModel->getTwoFactorStatus($userId);
// Avatar for profile header
$userAvatar = \App\Helpers\AvatarHelper::getAvatar($user, 64);
// Registrar distribution
$registrarCounts = [];
foreach ($domains as $d) {
$reg = !empty($d['registrar']) ? $d['registrar'] : 'Unknown';
$registrarCounts[$reg] = ($registrarCounts[$reg] ?? 0) + 1;
}
arsort($registrarCounts);
$this->view('users/show', [
'title' => htmlspecialchars($user['full_name']) . ' - User Profile',
'user' => $user,
@@ -248,6 +264,8 @@ class UserController extends Controller
'tags' => $tags,
'groups' => $groups,
'twoFactorStatus' => $twoFactorStatus,
'userAvatar' => $userAvatar,
'registrarCounts' => $registrarCounts,
]);
}