← Back to all documents

cai-exos-systems/daveadmin-exos-new:insights.php

gitea 1,111 words Source ↗
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&mdash;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 &amp; Reference Material</h2> <p class="section__subtitle">Downloadable assets and reference material from the Exos team&mdash;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 &amp; Reference Material</h2> <p class="section__subtitle">Downloadable assets and reference material from the Exos team&mdash;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 &amp; 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'; ?> ```