共享给谁](只对我自己的本子有意义) * $hiddenCals 我关掉的那些本子 id * $people 名册(共享下拉用) * $editing 正在编辑的那一本(?edit=) */ $isEditing = !empty($editing); $canWrite = \App\Auth::canWrite(); $hiddenIds = array_map('intval', (array)($hiddenCals ?? [])); $cals = (array)($cals ?? []); $shared = (array)($shared ?? []); $backView = (string)($view ?? 'month'); /* 「所有的日历都放在一块」:先把"我的"排完,再排"共享给我的"。 ⚠️ 两组的边界要在页面上**看得出来**(见下面的 `.cal-books-sep`), 但**仍然是同一张清单**(用户要的是"放一块",不是"分两张表")。 */ $allRows = []; foreach ($cals as $c) { $c['_mine'] = true; $allRows[] = $c; } foreach ($shared as $c) { $c['_mine'] = false; $allRows[] = $c; } $totalCount = count($allRows); ?>

日历本

共 本
只读账号访客只能查看日历本,不能新建或修改。

`(会弹 Windows 系统取色框)。 这里只出"按钮 + 隐藏域",模态框在页尾统一放一份。 */ $cpName = 'color'; $cpValue = (string)old('color', $editing['color'] ?? '#4A7C82'); $cpPalette = \App\Calendar::PRESET_CAL_COLORS; require __DIR__ . '/../_color_picker.php'; ?>
套进大表单里(套了就整个失效)。 */ ?>

全部日历本 勾上就在日历里画出来;取消勾选只是不显示,数据都还在

还没有日历本。

$c): ?>
别人共享给我的 只读的不能改,要改请找主人
$cid]; $cpLabel = '改「' . (string)$c['name'] . '」的颜色'; require __DIR__ . '/../_color_picker.php'; ?> 系统预置 $c['owner_name'] ?? '', 'my_nickname' => $c['owner_nick'] ?? '', ]); ?> 共享给我 不可修改 导出 编辑
已共享给

观影、旅行、有截止时间的任务会自动出现在这里,不用另建本子。

取消

默认打开时看 打开日程页默认落在哪个视图

$vw): ?>

导入 ics 把别的日历导出的 .ics 文件整批装进来

同一个文件导两次也不会重复:每条日程有个全球唯一的 UID, 已经导过的会被更新,而不是再插一条。

CalDAV 订阅 在手机日历 / DAVx⁵ / Thunderbird 里订阅你的日历本

填下面这个地址 + 你的姓名或手机号 + DAV 口令,就能把「我的日历本」 同步到别的日历程序里。这是只读订阅的 —— 在手机上改日程请回到本站来改。
口令与登录密码是分开的,而且通讯录同步也用同一把(不用配两遍)。

在日历客户端里填这一条即可,会列出你所有的日历本。
口令在「个人设置 → DAV 同步」里管理
` 兜底。12 本 ⇒ 整页 5.9 MB / 近万个 input ⇒ 浏览器与密码管理器逐个扫描,慢得能感觉到。 */ ?>