← Back to all documents

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

gitea 340 words Source ↗
blog.php ```text <?php /** * Exos Systems - Blog */ require_once __DIR__ . '/config/config.php'; enforcePublicModuleVisible('page_blog', [ 'current_page' => 'blog', 'page_title' => 'Blog unavailable | Exos Systems', 'page_description' => 'The blog page is not currently public.', ]); $page = getPage('blog'); $posts = getBlogPosts([ 'public_only' => true, ]); $currentPage = 'insights'; $pageTitle = $page['meta_title'] ?? 'Blog | Exos Systems'; $pageDescription = $page['meta_description'] ?? 'Read Exos blog posts on telecom delivery, BSS transformation, AI enablement, and operating model change.'; $pageSeoExtra = [ 'og_title' => $pageTitle, 'og_description' => $pageDescription, 'og_image' => $page['og_image'] ?? '', 'twitter_card' => 'summary_large_image', 'canonical_url' => SITE_URL . '/blog.php', 'meta_title' => $pageTitle, 'meta_description' => $pageDescription, ]; $pageJsonLd = getJsonLd('BreadcrumbList', [ 'items' => [ ['label' => 'Home', 'url' => 'index.php'], ['label' => 'Insights', 'url' => 'insights.php'], ['label' => 'Blog', 'url' => 'blog.php'], ], ]); require_once EXOS_INCLUDES_PATH . '/header.php'; ?> <section class="page-hero"> <div class="container" data-animate="fade-up"> <?= buildBreadcrumb([['label' => 'Insights', 'url' => 'insights.php'], ['label' => 'Blog']]) ?> <h1 class="page-hero__title"><?= sanitize($page['title'] ?? 'Blog') ?></h1> <p class="page-hero__subtitle"><?= sanitize($page['subtitle'] ?? 'Opinionated notes, observations, and practical telecom delivery commentary.') ?></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"> <?php if ($posts): ?> <div class="blog-grid"> <?php foreach ($posts as $i => $post): ?> <a href="<?= sanitize(getBlogPostUrl($post)) ?>" class="blog-card" data-animate="fade-up" data-delay="<?= $i * 80 ?>"> <?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> <h2 class="blog-card__title"><?= sanitize($post['title']) ?></h2> <p class="blog-card__excerpt"><?= sanitize($post['excerpt']) ?></p> <span class="service-card__cta">Read Exos viewpoint</span> </a> <?php endforeach; ?> </div> <?php else: ?> <div class="glass-card" data-animate="fade-up"> <p>No blog posts are published yet.</p> </div> <?php endif; ?> </div> </section> <?php require_once EXOS_INCLUDES_PATH . '/footer.php'; ?> ```