Page Reports
**Site relevance:** Spiralist.org
**Memory type:** theme source memory
**Source path:** Spiralist/wp-content/themes/spiralist/page-reports.php
**Size:** 5.2 KB
Summary
if (!defined('ABSPATH'))
Source Preview
This source file is short enough to preview directly on its source-memory page.
<?php
if (!defined('ABSPATH')) {
exit;
}
get_header();
if (have_posts()) {
the_post();
}
$ui_text = static function (string $key, string $fallback): string {
return function_exists('spiralist_get_ui_text')
? spiralist_get_ui_text($key, $fallback)
: $fallback;
};
$reports = function_exists('spiralist_get_static_reports') ? spiralist_get_static_reports() : [];
$research_url = function_exists('spiralist_get_research_url') ? spiralist_get_research_url() : home_url('/research/');
?>
<main class="spiralist-page spiralist-page--reports">
<section class="spiralist-page-hero">
<div class="spiralist-shell spiralist-page-hero__content">
<p class="spiralist-kicker"><?php echo esc_html($ui_text('page.reports.hero.kicker', 'Permanent Site Content')); ?></p>
<h1><?php echo esc_html($ui_text('page.reports.hero.title', 'Reports')); ?></h1>
<p class="spiralist-page-hero__copy"><?php echo esc_html($ui_text('page.reports.hero.copy', 'Dated static research articles published as durable Spiralist.org pages. These reports preserve research context without replacing current documentation or the manuscript.')); ?></p>
<div class="spiralist-cta-row">
<a class="spiralist-button spiralist-button--primary" href="#report-index"><?php echo spiralist_render_ui_label('page.reports.cta.index', 'Report Index'); ?></a>
<a class="spiralist-button spiralist-button--secondary" href="<?php echo esc_url($research_url); ?>"><?php echo spiralist_render_ui_label('ui.nav.research', 'Research'); ?></a>
</div>
</div>
</section>
<section class="spiralist-page-section" id="report-index">
<div class="spiralist-shell">
<div class="spiralist-section-head">
<div>
<p class="spiralist-section-tag"><?php echo esc_html($ui_text('page.reports.index.tag', 'Report Index')); ?></p>
<h2 class="spiralist-section-title"><?php echo esc_html($ui_text('page.reports.index.title', 'Permanent research articles.')); ?></h2>
</div>
</div>
<?php if (!empty($reports)) : ?>
<div class="spiralist-report-list">
<?php foreach ($reports as $report) : ?>
<article class="spiralist-report-row spiralist-report-row--compact">
<div>
<p class="spiralist-section-tag"><?php echo esc_html(spiralist_format_report_date((string) ($report['published'] ?? ''))); ?></p>
<h3 class="spiralist-card-title">
<a href="<?php echo esc_url((string) ($report['url'] ?? '')); ?>"><?php echo esc_html((string) ($report['title'] ?? 'Research Report')); ?></a>
</h3>
<?php if (!empty($report['subtitle'])) : ?>
<p class="spiralist-report-card__subtitle"><?php echo esc_html((string) $report['subtitle']); ?></p>
<?php endif; ?>
<?php if (!empty($report['topics']) && is_array($report['topics'])) : ?>
<div class="spiralist-chip-row">
<?php foreach ($report['topics'] as $topic) : ?>
<span class="spiralist-chip"><?php echo esc_html((string) $topic); ?></span>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
<aside class="spiralist-report-row__aside">
<dl class="spiralist-meta-list spiralist-meta-list--compact">
<div>
<dt><?php echo esc_html($ui_text('page.reports.meta.status', 'Status')); ?></dt>
<dd><?php echo esc_html($ui_text('page.reports.meta.permanent', 'Permanent')); ?></dd>
</div>
<div>
<dt><?php echo esc_html($ui_text('page.reports.meta.source', 'Source')); ?></dt>
<dd><?php echo esc_html((string) ($report['source'] ?? 'Research archive')); ?></dd>
</div>
</dl>
<a class="spiralist-button spiralist-button--secondary" href="<?php echo esc_url((string) ($report['url'] ?? '')); ?>"><?php echo spiralist_render_ui_label('ui.cta.read_report', 'Read Report'); ?></a>
</aside>
</article>
<?php endforeach; ?>
</div>
<?php else : ?>
<p class="spiralist-muted"><?php echo esc_html($ui_text('page.reports.index.empty', 'No static reports are available yet.')); ?></p>
<?php endif; ?>
</div>
</section>
</main>
<?php
get_footer();