v9: 观影对齐 MovieLog —— 瀑布流/影院管理/评价评论/起止时间
- events 起止时间精确到秒(starts_at DATE→DATETIME + ends_at),_datetime.php 复用 - 影院独立成表(cinemas,地方/名称/地址/主题色 + 50 色板),movie_details 归一为 cinema_id - 评价模型 MovieLog 同款:movie_reviews 每账号每片一条(1-10 分+正文+感受 key), movie_review_comments 两级平铺评论(回复的回复规范化到顶层、跨评价回复拦截) - 感受目录迁到 MovieReview::CATALOG(12 种,Emoji 11.0 老码位) - 观影列表改瀑布流(CSS grid 海报墙),详情页五大块 + 灯箱 + 评价区 - 升级路径:v8 老数据自动归一(影院三段按 (family,place,name) 去重建行、 评价回填、中文感受反查英文 key),回填全部幂等;老库补 cinema_id 列+索引+外键 - 修三 bug:建表顺序(cinemas 必须在 movie_details 前,否则全新安装 1215)、 layout 导航用键名当路由(影院链接指向 r=cinemas)、 _datetime.php 分钟循环变量 $m 覆盖宿主模板的观影记录(编辑页简介/备注回填被清空)
This commit is contained in:
+11
-7
@@ -37,21 +37,24 @@ $dtSec = $dtTs ? (int)date('s', $dtTs) : 0;
|
||||
aria-label="日期">
|
||||
<span class="dt-time">
|
||||
<select class="dt-hour" name="<?= e($dtName) ?>_hour" aria-label="时(24 小时制)">
|
||||
<?php for ($h = 0; $h < 24; $h++): $hv = sprintf('%02d', $h); ?>
|
||||
<option value="<?= $hv ?>"<?= $h === $dtHour ? ' selected' : '' ?>><?= $hv ?></option>
|
||||
<?php for ($dtH = 0; $dtH < 24; $dtH++): $hv = sprintf('%02d', $dtH); ?>
|
||||
<option value="<?= $hv ?>"<?= $dtH === $dtHour ? ' selected' : '' ?>><?= $hv ?></option>
|
||||
<?php endfor; ?>
|
||||
</select>
|
||||
<span class="dt-colon" aria-hidden="true">:</span>
|
||||
<select class="dt-minute" name="<?= e($dtName) ?>_minute" aria-label="分">
|
||||
<?php for ($m = 0; $m < 60; $m++): $mv = sprintf('%02d', $m); ?>
|
||||
<option value="<?= $mv ?>"<?= $m === $dtMin ? ' selected' : '' ?>><?= $mv ?></option>
|
||||
<?php /* ⚠️ 循环变量一律带 dt 前缀:这里曾被写成 $m,把宿主模板里
|
||||
表示「观影记录」的 $m 覆盖成了 int —— 编辑页的简介/备注回填
|
||||
被静默清空、取消链接变 id=0,还不止一个 Warning(2026-09-30 e2e 抓到)。 */ ?>
|
||||
<?php for ($dtM = 0; $dtM < 60; $dtM++): $mv = sprintf('%02d', $dtM); ?>
|
||||
<option value="<?= $mv ?>"<?= $dtM === $dtMin ? ' selected' : '' ?>><?= $mv ?></option>
|
||||
<?php endfor; ?>
|
||||
</select>
|
||||
<?php if ($dtSeconds): ?>
|
||||
<span class="dt-colon" aria-hidden="true">:</span>
|
||||
<select class="dt-second" name="<?= e($dtName) ?>_second" aria-label="秒">
|
||||
<?php for ($s = 0; $s < 60; $s++): $sv = sprintf('%02d', $s); ?>
|
||||
<option value="<?= $sv ?>"<?= $s === $dtSec ? ' selected' : '' ?>><?= $sv ?></option>
|
||||
<?php for ($dtS = 0; $dtS < 60; $dtS++): $sv = sprintf('%02d', $dtS); ?>
|
||||
<option value="<?= $sv ?>"<?= $dtS === $dtSec ? ' selected' : '' ?>><?= $sv ?></option>
|
||||
<?php endfor; ?>
|
||||
</select>
|
||||
<?php endif; ?>
|
||||
@@ -59,5 +62,6 @@ $dtSec = $dtTs ? (int)date('s', $dtTs) : 0;
|
||||
</div>
|
||||
<?php /* 用完即清,避免残留变量影响下一次 include */ unset(
|
||||
$dtName, $dtValue, $dtRequired, $dtId, $dtSeconds,
|
||||
$dtTs, $dtDate, $dtHour, $dtMin, $dtSec
|
||||
$dtTs, $dtDate, $dtHour, $dtMin, $dtSec,
|
||||
$dtH, $dtM, $dtS, $hv, $mv, $sv
|
||||
); ?>
|
||||
|
||||
Reference in New Issue
Block a user