Files
toolvana/app/Views/admin/guides_form.php
T
deepseek beaf0e1f37 Toolvana: production-ready media tools platform (CodeIgniter 4)
- 134-tool registry with programmatic SEO (unique titles/H1/descriptions,
  JSON-LD graphs, sitemap index, canonical 301 enforcement via required filter)
- DB-backed job queue (SKIP LOCKED) with drivers: Ffmpeg, Images (GD),
  Pdf (qpdf/gs/poppler), Youtube (thumbnails), Qr (server-side PNG)
- Security: SSRF guard, MIME validation, rate limits, API-key auth,
  bcrypt admin login, security headers
- Admin panel: dashboard, tools/categories/guides CRUD, SEO audit,
  analytics, job inspector with retry, system health, feature flags
- Docker deployment (nginx + web/api FPM pools + scalable workers),
  PHPUnit suite (19 tests / 1139 assertions), PWA manifest + service worker
2026-08-23 07:10:30 +00:00

24 lines
1.9 KiB
PHP

<?= view('partials/admin_nav') ?>
<h1 style="font-size:1.7rem;margin-bottom:1rem"><?= $guide ? 'Edit guide' : 'New guide' ?></h1>
<form method="post" action="/admin/guides<?= $guide ? '/' . (int)$guide['id'] : '' ?>" class="tool-panel" style="max-width:820px">
<?= csrf_field() ?>
<div class="opt-grid" style="padding-top:0">
<div><label>Title *</label><input type="text" name="title" required value="<?= esc($guide['title'] ?? '') ?>"></div>
<div><label>Slug *</label><input type="text" name="slug" required pattern="[a-z0-9-]+" value="<?= esc($guide['slug'] ?? '') ?>"></div>
<div><label>SEO title</label><input type="text" name="seo_title" value="<?= esc($guide['seo_title'] ?? '') ?>"></div>
<div><label>Status</label>
<select name="status"><?php foreach (['published','draft'] as $st): ?><option value="<?= $st ?>" <?= ($guide['status'] ?? 'draft')===$st?'selected':'' ?>><?= $st ?></option><?php endforeach ?></select></div>
</div>
<div style="margin-top:1rem"><label>Excerpt</label>
<textarea name="excerpt" class="tool-area" style="min-height:55px"><?= esc($guide['excerpt'] ?? '') ?></textarea></div>
<div class="opt-grid" style="margin-top:.6rem">
<div style="grid-column:span 2"><label>Tool slugs to interlink (comma separated)</label>
<input type="text" name="tool_slugs" value="<?= esc(implode(', ', json_decode((string)($guide['tool_slugs'] ?? '[]'), true) ?: [])) ?>"></div>
<div><label>Meta description</label>
<input type="text" name="seo_description" value="<?= esc($guide['seo_description'] ?? '') ?>"></div>
</div>
<div style="margin-top:1rem"><label>Body (Markdown)</label>
<textarea name="body_md" class="tool-area" style="min-height:420px;font-family:ui-monospace,monospace;font-size:.86rem"><?= esc($guide['body_md'] ?? '') ?></textarea></div>
<button class="btn-primary" type="submit" style="margin-top:1rem"><?= $guide ? 'Save' : 'Create' ?></button>
</form>