Files
AsterionWP2026/wp-content/themes/asterion-bricks/templates/page-legal.php
j.foucher 70864129ed feat(en-pages): build remaining 14 pages (Editorial / Forms / Hubs / Legal)
Brings the EN site to 34 live pages, completing the original sitemap
from PDF Strategie & Contenu Partie C.1.

Editorial section (5 pages, page-editorial-detail.php template)
- /why-asterion/, /about/, /customers/, /trust/, /partners/
- inc/editorial-data.php centralizes the copy from D.18-D.21, D.28
- Reuses the industry-detail partial (same section schema)

Conversion section (4 pages, page-conversion-form.php template)
- /request-demo/, /request-te-kit/, /request-quote/, /contact/
- inc/forms-data.php declares fields per page (text/email/select/textarea)
- template-parts/conversion-form.php renders two-column layout
  (form left, promise right), eligibility list (T&E), FAQ (Demo)
- inc/form-handler.php: nonce-protected POST handler with honeypot,
  per-field sanitizer, wp_mail to AV_LEADS_RECIPIENT (defaults to
  jerome.foucher@asterionvr.com, override via wp-config.php define),
  redirect-back-with-status pattern.

Insights & Resources (page-insights-hub.php, page-resources.php)
- /insights/ queries `post`, falls back to placeholder when empty
- /resources/ lists 4 resource groups (datasheets, whitepapers,
  videos, brochures) per D.23

Legal (page-legal.php template, parent + 4 children)
- /legal/, /legal/privacy/, /legal/terms/, /legal/cookies/, /legal/notice/
- Renders page content if filled, falls back to slug-driven section
  skeleton (per D.29) for counsel to draft against.

All 16 new URLs verified HTTP 200, sizes 49-66 KB each. Mu-plugin
asterion-seed-rest.php in LocalWP self-deleted after seeding.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 12:41:36 +02:00

93 lines
3.7 KiB
PHP

<?php
/**
* Template Name: Legal
*
* /legal/privacy/, /legal/terms/, /legal/cookies/, /legal/notice/.
* Renders the WP page content (filled in by counsel) inside the standard
* narrow container with a clean editorial hero.
*
* @package AsterionBricks
*/
defined('ABSPATH') || exit;
get_header();
?>
<section class="av-section">
<div class="av-container av-container--narrow">
<header class="av-section__head">
<span class="av-eyebrow"><?php esc_html_e('Legal', 'asterion-bricks'); ?></span>
<h1 class="av-section__title"><?php the_title(); ?></h1>
<p class="av-section__lead">
<?php esc_html_e('Last updated:', 'asterion-bricks'); ?>
<?php echo esc_html(get_the_modified_date()); ?>
</p>
</header>
<div class="av-prose" style="font-size:var(--text-body-md);line-height:var(--leading-body-md);color:var(--color-text-secondary);">
<?php
if (have_posts()) :
while (have_posts()) : the_post();
the_content();
endwhile;
endif;
// Default skeleton when the page content is empty — populated by counsel later.
$content = get_post_field('post_content', get_queried_object_id());
if (trim($content) === '') :
?>
<p style="padding:var(--space-6);background:var(--color-bg-subtle);border-left:3px solid var(--color-warning);border-radius:var(--radius-sm);">
<strong><?php esc_html_e('Placeholder.', 'asterion-bricks'); ?></strong>
<?php esc_html_e('This page is to be drafted with legal counsel. The structure below outlines the sections expected.', 'asterion-bricks'); ?>
</p>
<?php
// Slug-driven placeholder sections.
$slug = get_post_field('post_name', get_queried_object_id());
$skeletons = [
'privacy' => [
'Data controller (Asterion VR), contact, DPO if relevant',
'Data collected (form submissions, cookie identifiers, IP, etc.)',
'Purpose of processing (sales follow-up, newsletter, analytics)',
'Legal basis (consent, contract, legitimate interest)',
'Retention periods',
'Data sharing (subcontractors, hosts)',
'Data subject rights (access, rectification, deletion, portability, objection)',
'Complaint procedure (CNIL link)',
],
'terms' => [
'Site usage conditions',
'Intellectual property',
'Liability limitations',
'Applicable law and jurisdiction',
],
'cookies' => [
'List of cookies (functional, analytics, marketing)',
'Cookie purpose, retention, third parties',
'Consent management procedure',
],
'notice' => [
'Asterion VR — RCS 821 520 970 Rennes — NAF 6201Z — SIRET 821 520 970 00012',
'Adresse, téléphone, e-mail, directeur de la publication',
'Hébergeur',
],
];
if (isset($skeletons[$slug])) :
?>
<h2 style="font-family:var(--font-display);font-size:var(--text-h3);margin-top:var(--space-10);margin-bottom:var(--space-4);"><?php esc_html_e('Sections to include', 'asterion-bricks'); ?></h2>
<ul style="display:flex;flex-direction:column;gap:var(--space-2);padding-left:var(--space-6);">
<?php foreach ($skeletons[$slug] as $line) : ?>
<li style="list-style:disc;"><?php echo esc_html($line); ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php endif; ?>
</div>
</div>
</section>
<?php get_footer(); ?>