55 lines
2.6 KiB
PHP
55 lines
2.6 KiB
PHP
|
|
<?php
|
||
|
|
$pageTitle = 'Posts';
|
||
|
|
$posts = $posts ?? [];
|
||
|
|
ob_start();
|
||
|
|
?>
|
||
|
|
<section class="admin-card">
|
||
|
|
<div class="badge">Blog</div>
|
||
|
|
<div style="display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:16px;">
|
||
|
|
<div>
|
||
|
|
<h1 style="font-size:28px; margin:0;">Posts</h1>
|
||
|
|
<p style="color: var(--muted); margin-top:6px;">Publish news updates and announcements.</p>
|
||
|
|
</div>
|
||
|
|
<a href="/admin/posts/new" class="btn small">New Post</a>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div style="margin-top:18px; display:grid; gap:10px;">
|
||
|
|
<div style="display:grid; grid-template-columns: 2fr 1fr 140px 140px 160px 120px; gap:12px; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:0.2em;">
|
||
|
|
<div>Title</div>
|
||
|
|
<div>Slug</div>
|
||
|
|
<div>Author</div>
|
||
|
|
<div>Status</div>
|
||
|
|
<div>Published</div>
|
||
|
|
<div>Actions</div>
|
||
|
|
</div>
|
||
|
|
<?php if (!$posts): ?>
|
||
|
|
<div style="color: var(--muted); font-size:13px;">No posts yet.</div>
|
||
|
|
<?php else: ?>
|
||
|
|
<?php foreach ($posts as $post): ?>
|
||
|
|
<div style="display:grid; grid-template-columns: 2fr 1fr 140px 140px 160px 120px; gap:12px; align-items:center; padding:10px 12px; border-radius:16px; border:1px solid var(--stroke); background: rgba(14,14,16,0.9);">
|
||
|
|
<div style="font-weight:600;"><?= htmlspecialchars((string)($post['title'] ?? ''), ENT_QUOTES, 'UTF-8') ?></div>
|
||
|
|
<div style="font-size:12px; color:var(--muted); font-family: 'IBM Plex Mono', monospace;">
|
||
|
|
<?= htmlspecialchars((string)($post['slug'] ?? ''), ENT_QUOTES, 'UTF-8') ?>
|
||
|
|
</div>
|
||
|
|
<div style="font-size:12px; color:var(--muted);">
|
||
|
|
<?= htmlspecialchars((string)($post['author_name'] ?? ''), ENT_QUOTES, 'UTF-8') ?>
|
||
|
|
</div>
|
||
|
|
<div style="font-size:12px; color:<?= ((int)($post['is_published'] ?? 0) === 1) ? 'var(--accent-2)' : 'var(--muted)' ?>;">
|
||
|
|
<?= ((int)($post['is_published'] ?? 0) === 1) ? 'Published' : 'Draft' ?>
|
||
|
|
</div>
|
||
|
|
<div style="font-size:12px; color:var(--muted);">
|
||
|
|
<?= htmlspecialchars((string)($post['published_at'] ?? ''), ENT_QUOTES, 'UTF-8') ?>
|
||
|
|
</div>
|
||
|
|
<div style="display:flex; gap:8px;">
|
||
|
|
<a href="/admin/posts/edit?id=<?= (int)$post['id'] ?>" class="btn outline small">Edit</a>
|
||
|
|
<a href="/news/<?= htmlspecialchars((string)($post['slug'] ?? ''), ENT_QUOTES, 'UTF-8') ?>" class="btn outline small">View</a>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
<?php endforeach; ?>
|
||
|
|
<?php endif; ?>
|
||
|
|
</div>
|
||
|
|
</section>
|
||
|
|
<?php
|
||
|
|
$content = ob_get_clean();
|
||
|
|
require __DIR__ . '/../../../admin/views/layout.php';
|