Files
FamilyBook/templates/home/_card_books.php
T

48 lines
1.9 KiB
PHP
Raw Normal View History

<?php
/**
* 首页卡片 · 读书(v62 新增)。
*
* 数据来自 `HomeCards::booksData()`:**在读优先**,其余按新加进来的顺序排(最多 6 本)。
*
* @var array $cardData['books'] 每项含 id/title/author/status/progress/chapter_count/cover_key
*/
$bkRows = (array)($cardData['books'] ?? []);
?>
<div class="hc-body">
<?php if (!$bkRows): ?>
<p class="empty-hint">书架还是空的。</p>
<?php else: ?>
<ul class="hc-bk-list">
<?php foreach ($bkRows as $b): ?>
<?php
$bkStatus = \App\Book::normalizeStatus((string)($b['status'] ?? 'wish'));
$bkCh = (int)($b['chapter_count'] ?? 0);
$bkPr = (int)($b['progress'] ?? 0);
$bkPct = $bkCh > 0 ? min(100, (int)round($bkPr / $bkCh * 100)) : 0;
?>
<li class="hc-bk">
<a class="hc-bk-cover" href="<?= e(url('books/show', ['id' => (int)$b['id']])) ?>">
<?php if (!empty($b['cover_key'])): ?>
<img src="<?= e(media_url((string)$b['cover_key'])) ?>" alt="" loading="lazy">
<?php else: ?>
<span class="hc-bk-ph" aria-hidden="true">📖</span>
<?php endif; ?>
</a>
<div class="hc-bk-main">
<a class="hc-bk-t" href="<?= e(url('books/show', ['id' => (int)$b['id']])) ?>"
title="<?= e((string)$b['title']) ?>"><?= e((string)$b['title']) ?></a>
<span class="small muted">
<?= e((string)($b['author'] ?? '')) ?>
<?php if ($bkCh > 0): ?>
· <?= $bkPr ?>/<?= $bkCh ?> 章
<?php endif; ?>
</span>
<span class="hc-bk-bar" aria-hidden="true"><i style="width: <?= (int)$bkPct ?>%"></i></span>
</div>
<span class="hc-bk-st is-<?= e($bkStatus) ?>"><?= e(\App\Book::statusWord($bkStatus)) ?></span>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>