feat(industries): build 5-page Industries section
Implements the Industries hub + 4 detail pages (Police, Special Forces, Military, Firefighters) following the same data + partial + custom template pattern as Solutions. - inc/industries-data.php: 4 industries keyed by slug, copy verbatim from PDF Strategie & Contenu D.7-D.10. - template-parts/industry-detail.php: hero + section iterator + shared conversion banner. Hero differs from Solution's: eyebrow + tagline-as-H1 (no trademark concat), no upsell block. - templates/page-industry-detail.php: Custom Template assigned to the 4 child pages, looks up slug in industries-data. - templates/page-industries-overview.php: Hub /industries/ with 4 cards. 5 pages seeded by one-shot mu-plugin (asterion-seed-industries.php in LocalWP) and verified HTTP 200: /industries/ 55 KB /industries/police/ 63 KB /industries/special-forces/ 62 KB /industries/military/ 60 KB /industries/firefighters/ 60 KB Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
/**
|
||||
* Template Name: Industries Overview
|
||||
*
|
||||
* Hub page /industries/ — lists the 4 industries as cards.
|
||||
*
|
||||
* @package AsterionBricks
|
||||
*/
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
get_header();
|
||||
$home_url = home_url('/');
|
||||
|
||||
$industries = [
|
||||
[
|
||||
'eyebrow' => 'National & Municipal',
|
||||
'title' => 'Police',
|
||||
'excerpt' => 'Vehicle stops, identity checks, urban CQB, de-escalation, riot containment. Built for the realities of contemporary policing.',
|
||||
'href' => '/industries/police/',
|
||||
'gradient' => 'linear-gradient(135deg,#1F3252,#0B1F3A)',
|
||||
],
|
||||
[
|
||||
'eyebrow' => 'Tactical units',
|
||||
'title' => 'Special Forces',
|
||||
'excerpt' => 'Hostage rescue, dynamic entries, hostile crowd extraction, sniper-spotter coordination. Built for the units where every error has a name.',
|
||||
'href' => '/industries/special-forces/',
|
||||
'gradient' => 'linear-gradient(135deg,#1F3252,#0B1F3A)',
|
||||
],
|
||||
[
|
||||
'eyebrow' => 'Armed forces',
|
||||
'title' => 'Military',
|
||||
'excerpt' => 'MOUT, convoy escort, FOB defense, IED awareness, joint operation drills. Built for armed forces that deploy fast and adapt faster.',
|
||||
'href' => '/industries/military/',
|
||||
'gradient' => 'linear-gradient(135deg,#1F3252,#0B1F3A)',
|
||||
],
|
||||
[
|
||||
'eyebrow' => 'Emergency services',
|
||||
'title' => 'Firefighters',
|
||||
'excerpt' => "Structure fires, hazmat, multi-casualty triage, confined-space rescue, industrial accidents. Built for first responders who can't rehearse the worst day at full scale.",
|
||||
'href' => '/industries/firefighters/',
|
||||
'gradient' => 'linear-gradient(135deg,#1F3252,#0B1F3A)',
|
||||
],
|
||||
];
|
||||
?>
|
||||
|
||||
<section class="av-hero" aria-labelledby="industries-headline">
|
||||
<div class="av-hero__media" aria-hidden="true">
|
||||
<div style="width:100%;height:100%;background:
|
||||
radial-gradient(ellipse at 50% 40%, rgba(11,31,58,0.4), transparent 65%),
|
||||
linear-gradient(135deg, #081427 0%, #0B1F3A 50%, #1F3252 100%);"></div>
|
||||
</div>
|
||||
<div class="av-container">
|
||||
<div class="av-hero__inner">
|
||||
<p class="av-hero__eyebrow"><?php esc_html_e('Industries', 'asterion-bricks'); ?></p>
|
||||
<h1 id="industries-headline" class="av-hero__headline">Built with operators, for operators.</h1>
|
||||
<p class="av-hero__sub">
|
||||
PROSERVE™ is not a generic VR platform repackaged for the public sector. Every scenario, every weapon profile, every instructor metric was specified by serving and former operators in close partnership with our engineering team.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="av-section" data-av-reveal>
|
||||
<div class="av-container">
|
||||
<div class="av-grid-4" style="grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));">
|
||||
<?php foreach ($industries as $i) : ?>
|
||||
<article class="av-card">
|
||||
<a href="<?php echo esc_url($home_url . ltrim($i['href'], '/')); ?>" class="av-card__media" aria-hidden="true" tabindex="-1" style="background:<?php echo esc_attr($i['gradient']); ?>;display:block;"></a>
|
||||
<div class="av-card__body">
|
||||
<span class="av-card__eyebrow"><?php echo esc_html($i['eyebrow']); ?></span>
|
||||
<h2 class="av-card__title"><a href="<?php echo esc_url($home_url . ltrim($i['href'], '/')); ?>" style="color:inherit;text-decoration:none;"><?php echo esc_html($i['title']); ?></a></h2>
|
||||
<p class="av-card__excerpt"><?php echo esc_html($i['excerpt']); ?></p>
|
||||
<div class="av-card__cta">
|
||||
<a href="<?php echo esc_url($home_url . ltrim($i['href'], '/')); ?>" class="av-link av-link--with-arrow"><?php echo esc_html($i['title']); ?> training</a>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php get_footer(); ?>
|
||||
Reference in New Issue
Block a user