- Add comprehensive error handling system with custom error pages - Implement professional enterprise-style design with Tailwind CSS - Create modular HMVC architecture with clean separation of concerns - Add security features: CSRF protection, XSS filtering, Argon2ID hashing - Include CLI tools for development workflow - Add error reporting dashboard with system monitoring - Implement responsive design with consistent slate color scheme - Replace all emoji icons with professional SVG icons - Add comprehensive test suite with PHPUnit - Include database migrations and seeders - Add proper exception handling with fallback pages - Implement template engine with custom syntax support - Add helper functions and facades for clean code - Include proper logging and debugging capabilities
202 lines
5.2 KiB
PHP
202 lines
5.2 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{{ $title }}</title>
|
|
<style>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
font-family: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
background: #f8f9fa;
|
|
color: #333;
|
|
}
|
|
|
|
.header {
|
|
background: white;
|
|
padding: 1rem 2rem;
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
|
|
.header h1 {
|
|
color: #667eea;
|
|
font-size: 1.5rem;
|
|
}
|
|
|
|
.nav-links {
|
|
display: flex;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.nav-links a {
|
|
color: #667eea;
|
|
text-decoration: none;
|
|
padding: 0.5rem 1rem;
|
|
border-radius: 5px;
|
|
transition: background-color 0.3s ease;
|
|
}
|
|
|
|
.nav-links a:hover {
|
|
background: #f0f0f0;
|
|
}
|
|
|
|
.container {
|
|
max-width: 800px;
|
|
margin: 2rem auto;
|
|
padding: 0 2rem;
|
|
}
|
|
|
|
.page-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.page-header h2 {
|
|
color: #333;
|
|
font-size: 1.8rem;
|
|
}
|
|
|
|
.btn {
|
|
background: #667eea;
|
|
color: white;
|
|
padding: 0.75rem 1.5rem;
|
|
border: none;
|
|
border-radius: 5px;
|
|
text-decoration: none;
|
|
font-weight: 500;
|
|
transition: background-color 0.3s ease;
|
|
display: inline-block;
|
|
}
|
|
|
|
.btn:hover {
|
|
background: #5a6fd8;
|
|
}
|
|
|
|
.btn-danger {
|
|
background: #dc3545;
|
|
}
|
|
|
|
.btn-danger:hover {
|
|
background: #c82333;
|
|
}
|
|
|
|
.btn-secondary {
|
|
background: #6c757d;
|
|
margin-right: 0.5rem;
|
|
}
|
|
|
|
.btn-secondary:hover {
|
|
background: #5a6268;
|
|
}
|
|
|
|
.card {
|
|
background: white;
|
|
padding: 2rem;
|
|
border-radius: 10px;
|
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.user-info {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
.info-item {
|
|
padding: 1rem;
|
|
background: #f8f9fa;
|
|
border-radius: 5px;
|
|
}
|
|
|
|
.info-label {
|
|
font-weight: 600;
|
|
color: #495057;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.info-value {
|
|
color: #333;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.actions {
|
|
margin-top: 2rem;
|
|
padding-top: 2rem;
|
|
border-top: 1px solid #e9ecef;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="header">
|
|
<h1>NovaCore Framework</h1>
|
|
<div class="nav-links">
|
|
<a href="/dashboard">Dashboard</a>
|
|
<a href="/users">Users</a>
|
|
<a href="/logout">Logout</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container">
|
|
<div class="page-header">
|
|
<h2>User Details</h2>
|
|
<div>
|
|
<a href="/users/{{ $user['id'] }}/edit" class="btn btn-secondary">Edit User</a>
|
|
<a href="/users" class="btn">Back to Users</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="user-info">
|
|
<div class="info-item">
|
|
<div class="info-label">ID</div>
|
|
<div class="info-value">{{ $user['id'] }}</div>
|
|
</div>
|
|
|
|
<div class="info-item">
|
|
<div class="info-label">Name</div>
|
|
<div class="info-value">{{ $user['name'] }}</div>
|
|
</div>
|
|
|
|
<div class="info-item">
|
|
<div class="info-label">Email</div>
|
|
<div class="info-value">{{ $user['email'] }}</div>
|
|
</div>
|
|
|
|
<div class="info-item">
|
|
<div class="info-label">Created At</div>
|
|
<div class="info-value">{{ date('M j, Y g:i A', strtotime($user['created_at'])) }}</div>
|
|
</div>
|
|
|
|
<div class="info-item">
|
|
<div class="info-label">Updated At</div>
|
|
<div class="info-value">{{ date('M j, Y g:i A', strtotime($user['updated_at'])) }}</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="actions">
|
|
<form method="POST" action="/users/{{ $user['id'] }}" style="display: inline;">
|
|
@csrf
|
|
@method('DELETE')
|
|
<button type="submit" class="btn btn-danger"
|
|
onclick="return confirm('Are you sure you want to delete this user?')">
|
|
Delete User
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
</html> |