cai-exos-systems/daveadmin-exos-new:insights.php
insights.php
```text
<?php
/**
* Exos Systems - Insights Hub
*/
require_once __DIR__ . '/config/config.php';
enforcePublicModuleVisible('page_insights', [
'current_page' => 'insights',
'page_title' => 'Insights unavailable | Exos Systems',
'page_description' => 'The insights hub is not currently public.',
]);
$page = getPage('insights');
$currentPage = 'insights';
$pageTitle = $page['meta_title'] ?? 'Insights Hub | Exos Systems';
$pageDescription = $page['meta_description'] ?? 'Explore Exos resources, blog posts, reports, and telecom transformation commentary in the Insights Hub.';
$pageSeoExtra = [
'og_title' => $page['og_title'] ?? $pageTitle,
'og_description' => $page['og_description'] ?? $pageDescription,
'og_image' => $page['og_image'] ?? '',
'twitter_card' => $page['twitter_card'] ?? 'summary_large_image',
'canonical_url' => $page['canonical_url'] ?? SITE_URL . '/insights.php',
'meta_title' => $pageTitle,
'meta_description' => $pageDescription,
];
$hub = getInsightsHubData();
$newsletterTitle = getSetting('newsletter_signup_title', 'Stay Current with Exos Field Notes');
$newsletterDescription = getSetting('newsletter_signup_description', 'Practical dispatches from active CSP transformations, operating model insights, and Exos product updates. No spam, ever.');
$newsletterNotice = getSetting('newsletter_demo_notice', 'Newsletter signups are captured for workflow testing only. Outbound email is not enabled in this environment.');
$pageJsonLd = getJsonLd('BreadcrumbList', [
'items' => [
['label' => 'Home', 'url' => 'index.php'],
['label' => 'Insights', 'url' => 'insights.php'],
],
]);
require_once EXOS_INCLUDES_PATH . '/header.php';
?>
<section class="page-hero">
<div class="container" data-animate="fade-up">
<?= buildBreadcrumb([['label' => 'Insights']]) ?>
<h1 class="page-hero__title"><?= sanitize($page['title'] ?? 'Insights Hub') ?></h1>
<p class="page-hero__subtitle"><?= sanitize($page['subtitle'] ?? 'Resources, field notes, and point-of-view content from the Exos team.') ?></p>
</div>
</section>
<?php if (!empty($page['content'])): ?>
<section class="section">
<div class="container" data-animate="fade-up">
<div class="cms-content"><?= $page['content'] ?></div>
</div>
</section>
<?php endif; ?>
<section class="section">
<div class="container">
<div class="section__visual-break" style="margin: 0 auto;" data-animate="fade-up">
<img src="assets/images/pages/insights-research.jpg" alt="Exos Insights — Telecom Research & Analysis" loading="lazy">
</div>
</div>
</section>
<?php if (!empty($hub['directories'])): ?>
<section class="section section--alt">
<div class="container">
<div class="section__header section__header--center" data-animate="fade-up">
<div class="section__label">Resource Library</div>
<h2 class="section__title">Browse by Category</h2>
<p class="section__subtitle">Telecom transformation material organised by topic—from architecture notes and delivery guides to buyer-ready reports and compliance checklists.</p>
</div>
<div class="client-grid">
<?php foreach ($hub['directories'] as $i => $directory): ?>
<a href="resources.php?directory=<?= urlencode($directory['slug']) ?>" class="client-card" data-animate="fade-up" data-delay="<?= $i * 80 ?>">
<div class="service-card__eyebrow">Directory</div>
<h3 class="client-card__title"><?= sanitize($directory['name']) ?></h3>
<p class="client-card__summary"><?= sanitize($directory['description']) ?></p>
<div class="client-card__stats">
<span><?= (int)$directory['resource_count'] ?> published resources</span>
</div>
<span class="service-card__cta">
Open Directory
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
</span>
</a>
<?php endforeach; ?>
</div>
</div>
</section>
<?php endif; ?>
<?php if (!empty($hub['featured_resources'])): ?>
<section class="section">
<div class="container">
<div class="section__header section__header--center" data-animate="fade-up">
<div class="section__label">Featured Resources</div>
<h2 class="section__title">Reports, Guides & Reference Material</h2>
<p class="section__subtitle">Downloadable assets and reference material from the Exos team—covering BSS architecture, TM Forum alignment, delivery readiness, and transformation strategy.</p>
</div>
insights.php <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> </span> </a> <?php endforeach; ?> </div> </div> </section> <?php endif; ?> <?php if (!empty($hub['featured_resources'])): ?> <section class="section"> <div class="container"> <div class="section__header section__header--center" data-animate="fade-up"> <div class="section__label">Featured Resources</div> <h2 class="section__title">Reports, Guides & Reference Material</h2> <p class="section__subtitle">Downloadable assets and reference material from the Exos team—covering BSS architecture, TM Forum alignment, delivery readiness, and transformation strategy.</p> </div> <div class="services-grid"> <?php foreach ($hub['featured_resources'] as $i => $resource): ?> <a href="<?= sanitize(getInsightResourceUrl($resource)) ?>" class="service-card service-card--link resource-card" data-animate="fade-up" data-delay="<?= $i * 90 ?>"> <div class="resource-card__preview"> <?php if (!empty($resource['thumbnail_url'])): ?> <img src="<?= sanitize($resource['thumbnail_url']) ?>" alt="<?= sanitize($resource['title']) ?>"> <?php else: ?> <?= $resource['file_icon_svg'] ?> <?php endif; ?> </div> <div class="service-card__eyebrow"><?= sanitize(strtoupper($resource['resource_type'])) ?></div> <h3 class="service-card__title"><?= sanitize($resource['title']) ?></h3> <p class="service-card__desc"><?= sanitize($resource['summary']) ?></p> <div class="service-card__meta"> <?php if (!empty($resource['directory_name'])): ?> <span><?= sanitize($resource['directory_name']) ?></span> <?php endif; ?> <?php if (!empty($resource['file_extension'])): ?> <span><?= sanitize(strtoupper($resource['file_extension'])) ?></span> <?php endif; ?> </div> <span class="service-card__cta"> View Resource <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> </span> </a> <?php endforeach; ?> </div> <div class="section-actions" data-animate="fade-up"> <a href="resources.php" class="btn btn--outline">Browse All Resources</a> </div> </div> </section> <?php endif; ?> <?php if (!empty($hub['latest_posts'])): ?> <section class="section section--alt"> <div class="container"> <div class="section__header section__header--center" data-animate="fade-up"> <div class="section__label">Latest Posts</div> <h2 class="section__title">Field Notes & Point of View</h2> <p class="section__subtitle">Named perspectives from the Exos team on agentic BSS, telecom delivery, and the operating model shifts we see across the industry.</p> </div> <div class="blog-grid"> <?php foreach ($hub['latest_posts'] as $i => $post): ?> <a href="<?= sanitize(getBlogPostUrl($post)) ?>" class="blog-card" data-animate="fade-up" data-delay="<?= $i * 100 ?>"> <?php if (!empty($post['cover_image'])): ?> <div class="blog-card__media"> <img src="<?= sanitize(getPublicAssetUrl($post['cover_image'])) ?>" alt="<?= sanitize($post['title']) ?>"> </div> <?php endif; ?> <div class="blog-card__meta"> <span><?= sanitize($post['author_name'] ?: 'Exos Systems') ?></span> <?php if (!empty($post['published_at'])): ?> <span><?= sanitize(formatDate($post['published_at'], 'M j, Y')) ?></span> <?php endif; ?> </div> <h3 class="blog-card__title"><?= sanitize($post['title']) ?></h3> <p class="blog-card__excerpt"><?= sanitize($post['excerpt']) ?></p> <span class="service-card__cta"> Read Article <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> </span> </a> <?php endforeach; ?> </div> <div class="section-actions" data-animate="fade-up"> <a href="blog.php" class="btn btn--primary">View the Blog</a> </div> </div> </section> <?php endif; ?> <section class="section"> <div class="container"> <div class="newsletter-panel" data-animate="fade-up"> <div> <div class="section__label">Newsletter</div> <h2 class="section__title"><?= sanitize($newsletterTitle) ?></h2> <p class="section__subtitle" style="margin-bottom: 0.75rem;"><?= sanitize($newsletterDescription) ?></p> <!-- Newsletter notice hidden for production --> </div>
insights.php <span class="service-card__cta"> Read Article <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> </span> </a> <?php endforeach; ?> </div> <div class="section-actions" data-animate="fade-up"> <a href="blog.php" class="btn btn--primary">View the Blog</a> </div> </div> </section> <?php endif; ?> <section class="section"> <div class="container"> <div class="newsletter-panel" data-animate="fade-up"> <div> <div class="section__label">Newsletter</div> <h2 class="section__title"><?= sanitize($newsletterTitle) ?></h2> <p class="section__subtitle" style="margin-bottom: 0.75rem;"><?= sanitize($newsletterDescription) ?></p> <!-- Newsletter notice hidden for production --> </div> <form method="POST" action="newsletter-subscribe.php" class="newsletter-form"> <input type="hidden" name="redirect_url" value="insights.php"> <input type="hidden" name="source_page" value="insights"> <div class="form-row"> <div class="form-group"> <label for="newsletter_name">Name</label> <input class="form-input" type="text" id="newsletter_name" name="full_name" placeholder="Your name"> </div> <div class="form-group"> <label for="newsletter_company">Company</label> <input class="form-input" type="text" id="newsletter_company" name="company" placeholder="Company name"> </div> </div> <div class="form-group"> <label for="newsletter_email">Email</label> <input class="form-input" type="email" id="newsletter_email" name="email" placeholder="you@company.com" required> </div> <button type="submit" class="btn btn--primary">Join the List</button> <?php if (isset($_GET['newsletter'])): ?> <div class="newsletter-feedback"> <?php $state = $_GET['newsletter']; if ($state === 'subscribed') { echo 'Subscription captured in the CMS. Outbound email is intentionally disabled in this environment.'; } elseif ($state === 'exists') { echo 'That email is already in the newsletter list.'; } else { echo 'Please enter a valid email address to continue.'; } ?> </div> <?php endif; ?> </form> </div> </div> </section> <?php require_once EXOS_INCLUDES_PATH . '/footer.php'; ?> ```
insights.php <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> </span> </a> <?php endforeach; ?> </div> </div> </section> <?php endif; ?> <?php if (!empty($hub['featured_resources'])): ?> <section class="section"> <div class="container"> <div class="section__header section__header--center" data-animate="fade-up"> <div class="section__label">Featured Resources</div> <h2 class="section__title">Reports, Guides & Reference Material</h2> <p class="section__subtitle">Downloadable assets and reference material from the Exos team—covering BSS architecture, TM Forum alignment, delivery readiness, and transformation strategy.</p> </div> <div class="services-grid"> <?php foreach ($hub['featured_resources'] as $i => $resource): ?> <a href="<?= sanitize(getInsightResourceUrl($resource)) ?>" class="service-card service-card--link resource-card" data-animate="fade-up" data-delay="<?= $i * 90 ?>"> <div class="resource-card__preview"> <?php if (!empty($resource['thumbnail_url'])): ?> <img src="<?= sanitize($resource['thumbnail_url']) ?>" alt="<?= sanitize($resource['title']) ?>"> <?php else: ?> <?= $resource['file_icon_svg'] ?> <?php endif; ?> </div> <div class="service-card__eyebrow"><?= sanitize(strtoupper($resource['resource_type'])) ?></div> <h3 class="service-card__title"><?= sanitize($resource['title']) ?></h3> <p class="service-card__desc"><?= sanitize($resource['summary']) ?></p> <div class="service-card__meta"> <?php if (!empty($resource['directory_name'])): ?> <span><?= sanitize($resource['directory_name']) ?></span> <?php endif; ?> <?php if (!empty($resource['file_extension'])): ?> <span><?= sanitize(strtoupper($resource['file_extension'])) ?></span> <?php endif; ?> </div> <span class="service-card__cta"> View Resource <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> </span> </a> <?php endforeach; ?> </div> <div class="section-actions" data-animate="fade-up"> <a href="resources.php" class="btn btn--outline">Browse All Resources</a> </div> </div> </section> <?php endif; ?> <?php if (!empty($hub['latest_posts'])): ?> <section class="section section--alt"> <div class="container"> <div class="section__header section__header--center" data-animate="fade-up"> <div class="section__label">Latest Posts</div> <h2 class="section__title">Field Notes & Point of View</h2> <p class="section__subtitle">Named perspectives from the Exos team on agentic BSS, telecom delivery, and the operating model shifts we see across the industry.</p> </div> <div class="blog-grid"> <?php foreach ($hub['latest_posts'] as $i => $post): ?> <a href="<?= sanitize(getBlogPostUrl($post)) ?>" class="blog-card" data-animate="fade-up" data-delay="<?= $i * 100 ?>"> <?php if (!empty($post['cover_image'])): ?> <div class="blog-card__media"> <img src="<?= sanitize(getPublicAssetUrl($post['cover_image'])) ?>" alt="<?= sanitize($post['title']) ?>"> </div> <?php endif; ?> <div class="blog-card__meta"> <span><?= sanitize($post['author_name'] ?: 'Exos Systems') ?></span> <?php if (!empty($post['published_at'])): ?> <span><?= sanitize(formatDate($post['published_at'], 'M j, Y')) ?></span> <?php endif; ?> </div> <h3 class="blog-card__title"><?= sanitize($post['title']) ?></h3> <p class="blog-card__excerpt"><?= sanitize($post['excerpt']) ?></p> <span class="service-card__cta"> Read Article <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> </span> </a> <?php endforeach; ?> </div> <div class="section-actions" data-animate="fade-up"> <a href="blog.php" class="btn btn--primary">View the Blog</a> </div> </div> </section> <?php endif; ?> <section class="section"> <div class="container"> <div class="newsletter-panel" data-animate="fade-up"> <div> <div class="section__label">Newsletter</div> <h2 class="section__title"><?= sanitize($newsletterTitle) ?></h2> <p class="section__subtitle" style="margin-bottom: 0.75rem;"><?= sanitize($newsletterDescription) ?></p> <!-- Newsletter notice hidden for production --> </div>
insights.php <span class="service-card__cta"> Read Article <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg> </span> </a> <?php endforeach; ?> </div> <div class="section-actions" data-animate="fade-up"> <a href="blog.php" class="btn btn--primary">View the Blog</a> </div> </div> </section> <?php endif; ?> <section class="section"> <div class="container"> <div class="newsletter-panel" data-animate="fade-up"> <div> <div class="section__label">Newsletter</div> <h2 class="section__title"><?= sanitize($newsletterTitle) ?></h2> <p class="section__subtitle" style="margin-bottom: 0.75rem;"><?= sanitize($newsletterDescription) ?></p> <!-- Newsletter notice hidden for production --> </div> <form method="POST" action="newsletter-subscribe.php" class="newsletter-form"> <input type="hidden" name="redirect_url" value="insights.php"> <input type="hidden" name="source_page" value="insights"> <div class="form-row"> <div class="form-group"> <label for="newsletter_name">Name</label> <input class="form-input" type="text" id="newsletter_name" name="full_name" placeholder="Your name"> </div> <div class="form-group"> <label for="newsletter_company">Company</label> <input class="form-input" type="text" id="newsletter_company" name="company" placeholder="Company name"> </div> </div> <div class="form-group"> <label for="newsletter_email">Email</label> <input class="form-input" type="email" id="newsletter_email" name="email" placeholder="you@company.com" required> </div> <button type="submit" class="btn btn--primary">Join the List</button> <?php if (isset($_GET['newsletter'])): ?> <div class="newsletter-feedback"> <?php $state = $_GET['newsletter']; if ($state === 'subscribed') { echo 'Subscription captured in the CMS. Outbound email is intentionally disabled in this environment.'; } elseif ($state === 'exists') { echo 'That email is already in the newsletter list.'; } else { echo 'Please enter a valid email address to continue.'; } ?> </div> <?php endif; ?> </form> </div> </div> </section> <?php require_once EXOS_INCLUDES_PATH . '/footer.php'; ?> ```