Files
FamilyBook/templates/home/_card_movies.php
T
laoyang 9a66068c33 v62:纪念日列表修正 / 分类图标与设置菜单 / 首页卡片体系
- 纪念日列表:display:flex 从 td 移到内层 div(写在 td 上会破坏表格列算法,
  表现为关联人列与其它列高度不一致);行内列序按表头对齐;
  改完再点「新建」不再带出上次修改的数据;文案改为「与我相关」「来自名册」;
  别人记的、把我挂成关联人的条目一并显示(split() 返回 hiddenIds,
  路由层据此过滤「接下来的日子」,与两张表同一套可见性)
- 分类图标:新增 app/AnnivIcon.php(17 个行内 SVG 图标 + 同 key 的 emoji
  供日历纯文本处使用,内网无 CDN 不用 FontAwesome);去掉「看日历」按钮;
  设置按钮改为菜单,第一项进 days/settings 独立页;分类可自选图标,
  列表徽标与日历条目都按分类显示
- 首页卡片:新增 app/HomeCards.php 与 templates/home_cards.php;
  8 格宽 × 高 2/4/6/8;首页拆成 templates/home/_card_*.php 共 8 个片段;
  home/cards 可改尺寸、调顺序、开关
2026-10-19 12:51:17 +08:00

41 lines
1.6 KiB
PHP

<?php
/**
* 首页卡片 · 观影(v62 新增)。
*
* 数据来自 `HomeCards::moviesData()`(最近 8 条,只查卡片要用的那几列 ——
* 不用 Movie::all():那个会顺带查同行人与影评统计,卡片上都不显示)。
*
* @var array $cardData['movies'] 每项含 id/title/starts_at/poster_key/cinema_name
*/
$mvRows = (array)($cardData['movies'] ?? []);
?>
<div class="hc-body">
<?php if (!$mvRows): ?>
<p class="empty-hint">还没有观影记录。</p>
<?php else: ?>
<ul class="hc-mv-list">
<?php foreach ($mvRows as $m): ?>
<li class="hc-mv">
<a class="hc-mv-poster" href="<?= e(url('movies/show', ['id' => (int)$m['id']])) ?>">
<?php if (!empty($m['poster_key'])): ?>
<img src="<?= e(media_url((string)$m['poster_key'])) ?>" alt="" loading="lazy">
<?php else: ?>
<span class="hc-mv-ph" aria-hidden="true">🎬</span>
<?php endif; ?>
</a>
<div class="hc-mv-main">
<a class="hc-mv-t" href="<?= e(url('movies/show', ['id' => (int)$m['id']])) ?>"
title="<?= e((string)$m['title']) ?>"><?= e((string)$m['title']) ?></a>
<span class="small muted">
<?= e(substr((string)($m['starts_at'] ?? ''), 0, 10)) ?>
<?php if (trim((string)($m['cinema_name'] ?? '')) !== ''): ?>
· <?= e((string)$m['cinema_name']) ?>
<?php endif; ?>
</span>
</div>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>