Files
FamilyBook/templates/movies/_settings_menu.php
T

38 lines
1.9 KiB
PHP
Raw Normal View History

<?php
/**
* 观影模块的「⚙ 设置」下拉 —— 影院管理 / 高级搜索 / 统计 / 年度报告。
*
* 为什么抽成片段:v11 这个下拉只长在观影列表页一个地方;用户随后要求
* 「设置这个按钮,在观影详情等页面也都要出现,就出现在返回等按钮的旁边」。
* 与其把同一段 <details> 复制到六七个页头(改一处就得改六处、迟早漏),
* 不如让所有观影页 require 同一个片段。
*
* 用法(include 前 set 好):
* $setCurrent 当前页的 key('list' | 'cinemas' | 'search' | 'stats' | 'report' | 'show' | 'form')
* —— 用来高亮菜单里对应的那一项。空串表示都不高亮。
* $setCanWrite 是否显示「影院管理」(只有能写的人才有管理入口)
*
* ⚠️ 高亮用 `a.on`(.movie-set .menu-list a.on 已有样式)。**不做「隐藏当前页那一项」**:
* 隐藏会让菜单在不同页面长短不一,用户更难认出「这是同一套入口」。
*/
$setCurrent = (string)($setCurrent ?? '');
$setCanWrite = (bool)($setCanWrite ?? false);
$setOn = static function (string $key) use ($setCurrent): string {
return $setCurrent === $key ? ' class="on"' : '';
};
?>
<details class="movie-set menu">
<summary class="btn btn-ghost" title="观影设置">⚙ 设置</summary>
<div class="menu-list">
<?php if ($setCanWrite): ?>
<a href="<?= e(url('movies/cinemas')) ?>"<?= $setOn('cinemas') ?>>影院管理</a>
<?php endif; ?>
<a href="<?= e(url('movies/search')) ?>"<?= $setOn('search') ?>>高级搜索</a>
<a href="<?= e(url('movies/stats')) ?>"<?= $setOn('stats') ?>>统计</a>
<a href="<?= e(url('movies/report')) ?>"<?= $setOn('report') ?>>年度报告</a>
</div>
</details>
<?php
// 用完即清,避免残留在后续 include 里(与 _datetime.php 同一纪律)
unset($setCurrent, $setCanWrite, $setOn);
?>