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>
101 lines
4.9 KiB
PHP
101 lines
4.9 KiB
PHP
<?php
|
|
/**
|
|
* Template Name: Resources
|
|
*
|
|
* /resources/ — datasheets, whitepapers, videos, brochures.
|
|
*
|
|
* @package AsterionBricks
|
|
*/
|
|
defined('ABSPATH') || exit;
|
|
|
|
get_header();
|
|
$home_url = home_url('/');
|
|
|
|
$groups = [
|
|
[
|
|
'eyebrow' => 'Datasheets',
|
|
'title' => 'Technical specifications.',
|
|
'items' => [
|
|
['title' => 'PROSERVE — full datasheet', 'note' => 'Hardware specifications, software capabilities, scenarios. Gated, light form.'],
|
|
['title' => 'MY PROSERVE — quick datasheet', 'note' => '4-page summary.'],
|
|
['title' => 'PROSERVE FLEX — quick datasheet', 'note' => '4-page summary.'],
|
|
['title' => 'PROSERVE ACADEMY — quick datasheet', 'note' => '4-page summary.'],
|
|
['title' => 'PROSERVE+ — customization brochure', 'note' => 'Hardware add-ons, custom scenarios, process.'],
|
|
],
|
|
],
|
|
[
|
|
'eyebrow' => 'Whitepapers',
|
|
'title' => 'Long-form analyses.',
|
|
'items' => [
|
|
['title' => 'VR vs Live Fire: the 2026 cost-benefit comparison', 'note' => 'Quantified comparison across cost, fidelity, scalability, environmental.'],
|
|
['title' => "The Instructor's Guide to VR Training Programs", 'note' => "Methodology, drill design, AAR debriefing, assessment frameworks."],
|
|
['title' => 'Use of Force Training: how immersive simulation reduces tactical errors', 'note' => 'Reviews academic literature and Asterion deployment data.'],
|
|
['title' => 'Sovereignty in security simulation: why your training data must never leave your network', 'note' => 'For procurement and IT teams.'],
|
|
],
|
|
],
|
|
[
|
|
'eyebrow' => 'Videos',
|
|
'title' => 'Show, not tell.',
|
|
'items' => [
|
|
['title' => 'PROSERVE — 90-second product film', 'note' => 'Cinematic overview.'],
|
|
['title' => 'Instructor Cockpit walkthrough (3 minutes)', 'note' => 'Inside the instructor PC.'],
|
|
['title' => 'AAR replay — annotated example (4 minutes)', 'note' => 'A drill replayed with overlays.'],
|
|
['title' => 'MY PROSERVE — unboxing & first deployment (6 min)', 'note' => 'From mini-case to first scenario in real time.'],
|
|
['title' => 'Customer story — [name redacted unit] (8 min)', 'note' => 'Operational deployment, instructor interview, AAR excerpts.'],
|
|
],
|
|
],
|
|
[
|
|
'eyebrow' => 'Brochures',
|
|
'title' => 'For procurement and end-user briefs.',
|
|
'items' => [
|
|
['title' => 'PROSERVE general brochure', 'note' => '8 pages, EN/FR.'],
|
|
['title' => 'Industry-specific brochures', 'note' => 'Police, Special Forces, Military, Firefighters — one PDF each.'],
|
|
],
|
|
],
|
|
];
|
|
?>
|
|
|
|
<section class="av-hero" aria-labelledby="resources-headline">
|
|
<div class="av-hero__media" aria-hidden="true">
|
|
<div style="width:100%;height:100%;background:linear-gradient(135deg, #081427 0%, #0B1F3A 50%, #13294B 100%);"></div>
|
|
</div>
|
|
<div class="av-container">
|
|
<div class="av-hero__inner">
|
|
<p class="av-hero__eyebrow"><?php esc_html_e('Resources', 'asterion-bricks'); ?></p>
|
|
<h1 id="resources-headline" class="av-hero__headline">Everything to evaluate, justify, and procure.</h1>
|
|
<p class="av-hero__sub">
|
|
Whether you are building an internal pitch, drafting a procurement specification, or briefing your team — these resources are designed to help.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<?php foreach ($groups as $idx => $group) :
|
|
$is_dark = ($idx % 2 === 1);
|
|
$section_class = 'av-section' . ($is_dark ? ' av-section--dark' : '');
|
|
?>
|
|
<section class="<?php echo esc_attr($section_class); ?>" data-av-reveal>
|
|
<div class="av-container">
|
|
<div class="av-section__head">
|
|
<span class="av-eyebrow<?php echo $is_dark ? ' av-eyebrow--gold' : ''; ?>"><?php echo esc_html($group['eyebrow']); ?></span>
|
|
<h2 class="av-section__title"><?php echo esc_html($group['title']); ?></h2>
|
|
</div>
|
|
<div class="av-grid-3">
|
|
<?php foreach ($group['items'] as $item) : ?>
|
|
<article class="av-card<?php echo $is_dark ? ' is-on-dark' : ''; ?>">
|
|
<div class="av-card__body">
|
|
<h3 class="av-card__title" style="font-size:var(--text-h4);"><?php echo esc_html($item['title']); ?></h3>
|
|
<p class="av-card__excerpt"><?php echo esc_html($item['note']); ?></p>
|
|
<div class="av-card__cta">
|
|
<a href="<?php echo esc_url($home_url . 'contact/'); ?>" class="av-link<?php echo $is_dark ? ' av-link--on-dark' : ''; ?> av-link--with-arrow"><?php esc_html_e('Request access', 'asterion-bricks'); ?></a>
|
|
</div>
|
|
</div>
|
|
</article>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<?php endforeach; ?>
|
|
|
|
<?php get_footer(); ?>
|