Files
2026-08-08 17:19:44 +08:00

37 lines
1.9 KiB
PHP

<?php
$n = $n ?? null;
$layoutArr = [];
if (!empty($n['layout'])) { $d = json_decode($n['layout'], true); if (is_array($d)) $layoutArr = $d; }
// 模式渲染:可视化编辑(builder)且有 layout → 画布;否则固定版式(正文富文本)
$useBuilder = !empty($layoutArr) && ($n['mode'] ?? '') !== 'fixed';
?>
<section class="page-hero">
<div class="container">
<h1><?php echo e($n['title']); ?></h1>
<p><?php echo e(format_date($n['published_at'])); ?> · <?php echo e($n['author']); ?></p>
</div>
</section>
<div class="container">
<nav class="breadcrumb"><a href="<?php echo site_url(); ?>">首页</a> / <a href="<?php echo site_url('news'); ?>">新闻动态</a> / <?php echo e($n['title']); ?></nav>
</div>
<?php if ($useBuilder): ?>
<?php echo \Core\View::buffer('parts/canvas', ['layout' => $layoutArr, 'item' => $n, 'module' => 'news']); ?>
<?php else: ?>
<section class="section" style="padding-top:10px">
<div class="container" style="max-width:780px">
<article class="detail-desc detail-rich" style="font-size:16px"><?php echo $n['content']; ?></article>
</div>
</section>
<?php endif; ?>
<section class="section" style="padding-top:0">
<div class="container" style="max-width:780px">
<div style="display:flex;justify-content:space-between;margin-top:40px;gap:12px;flex-wrap:wrap">
<?php if ($prev): ?><a class="btn btn-ghost" href="<?php echo site_url('news/' . $prev['slug']); ?>">← <?php echo e(mb_substr($prev['title'],0,14)); ?></a><?php else: ?><span></span><?php endif; ?>
<?php if ($next): ?><a class="btn btn-ghost" href="<?php echo site_url('news/' . $next['slug']); ?>"><?php echo e(mb_substr($next['title'],0,14)); ?> →</a><?php else: ?><span></span><?php endif; ?>
</div>
<div style="text-align:center;margin-top:30px"><a class="more-link" href="<?php echo site_url('news'); ?>">返回新闻列表</a></div>
</div>
</section>