首页卡片都被关掉了 到 首页卡片 里重新勾几张出来。

> "`(v81 的 `assets/js/add_modal.js` 认这个),弹框 id 由登记表 `add_modal` 给出。 ⚠️ 任务的弹框仍由老脚本 `task_add.js` + `data-tk-add-open` 管 (v78 已上线,不动它以免回归);所以这里**按登记表决定挂哪个属性**, 不是一刀切换掉 —— 两种写法并存但各自有唯一来源。 */ ?>
$hcAddData): ?> date('Y-m'), 'view' => 'day', // 首页日程卡就是"日视图那样" 'anchor' => date('Y-m-d'), 'new_at' => '', 'back' => 'home', ]; require __DIR__ . '/calendar/_add_modal.php'; /* ⚠️ 🔴 v82 再修:这段 unset 清单**必须与片段真实赋过的名字一致**。 第一版抄的是模块页的老变量名(`$writable/$ym/$view/$anchor/$newAt`)—— 那是片段改用 `$cal*` 前缀**之前**的清单,抄过来有两个问题: ① 那五个名字**片段已经不再赋值**,unset 它们等于**误杀宿主** —— 首页后面还有别的卡片在用(尤其 `$writable`); ② 片段真正留下的 `$cal*` 反而没清干净。 ⇒ 现在按片段的真实输出逐个清:`$calCanNew/$calWritable/$calCtx` 三个入参 + 片段内部那 7 个 `$cal*` + `_event_fields.php` 那 8 个。 ⚠️ 加新变量时**先回片段末尾那段清单对一遍**再往这里抄。 */ unset($calCanNew, $calWritable, $calCtx, $calYm, $calView, $calAnchor, $calNewAt, $calBack, $calThisYm, $calBooks, $firstCal, $hasPersonal, $defDay, $defHM, $defEndH, $evFields, $evAllDay, $evMvStyle, /* ⚠️ 片段自己会设 `$fbAddModalAttr`(按 `$calBack` 判定); 外层循环每轮也要设它,不清掉会让第二轮拿到上一轮的值。 */ $fbAddModalAttr); } elseif ($hcAddKey === 'contacts') { /* 🔴 v82(用户 2026-10-23):「名册,也没有新增成员这个按钮。」 ⇒ 首页「联系人」卡片右上角一颗「新增成员」,点开的是**与名册页同一张** 表单(`templates/people/form.php` 新加的弹框形态)。 ⚠️ 这套开关(`$pfModalOnly` / `$pfModal` / `$pfOpen`)是 v82 才加到 people/form.php 的,之前那页只能整页打开 —— 所以这里**必须**逐个给全, 漏一个就会退回"整页表单塞进卡片里"那种坏形态。 ⚠️ `$person = null` + `$isEdit = false` 是新增态的判据(模板第一行按 `$person['id']` 算 $isEdit),不要靠"不传"来默认。 */ $pfModalOnly = true; $pfModal = true; $pfOpen = false; $person = null; $errors = []; $canEditAll = true; $isSelf = false; $jobRows = [[]]; // 工作经历先给一行空白(与 people/new 一致) $myNote = ''; $myTags = []; $tagChoices = (array)($hcAddData['tagChoices'] ?? []); $myNick = ''; $contacts = []; require __DIR__ . '/people/form.php'; unset($pfModalOnly, $pfModal, $pfOpen, $person, $errors, $canEditAll, $isSelf, $jobRows, $myNote, $myTags, $tagChoices, $myNick, $contacts); } unset($fbAddModalAttr); ?>