@extends('layouts.dashboard') @section('content') @php /** * Full-page content-page editor (create + edit). Replaces the old modal, and is deliberately the * same screen as the blog editor: same top bar, same 8/4 split, same Publish card on the right โ * two editors in one admin should not be two different shapes. * * The modal drove its FAQ / legal guidance and its core-page draft lock from JavaScript, because a * single dialog had to re-dress itself for whichever row was clicked. A page knows its own slug * before it renders, so both are decided here in PHP and the script is gone. * * @var array|null $page existing page when editing, null when creating * @var array $seo search-result settings ['title','description','image','noindex'] * @var array $coreSlugs footer-linked slugs that must stay published */ $isEdit = $page !== null; $seo = $seo ?? ['title' => '', 'description' => '', 'image' => '', 'noindex' => false]; $slug = strtolower((string) ($page['slug'] ?? '')); $status = (string) ($page['status'] ?? 'published'); // Core pages are linked in the footer and the server force-publishes them, so the option is // disabled rather than offered and then silently overruled. $isCore = in_array($slug, $coreSlugs, true); // A legal page's table of contents is built from its heading structure, so that markup contract is // stated on the page that has it and nowhere else. $isLegal = in_array($slug, ['privacy', 'terms', 'cookies', 'refund', 'refund-policy', 'cookie-policy'], true); @endphp @php /* .qm-d2: the dashboard density standard (app.css ยง35) */ @endphp