三傻遊肯亞
+觀看進度:第 1 季・第 2 集・看到 28:40
+三人剛被扔進野外,表情比獅子還慌。
+diff --git a/.vscode/settings.json b/.vscode/settings.json index 6f3a291..8a6063c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,5 @@ { + // 本地預覽:雙擊專案根目錄 preview.bat + // 或在 Cursor:Ctrl+Shift+P →「執行工作」→「預覽網站」 "liveServer.settings.port": 5501 -} \ No newline at end of file +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..d10c1b0 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,23 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "預覽網站", + "detail": "本機 http://127.0.0.1:5501(等同雙擊 preview.bat)", + "type": "shell", + "command": "${workspaceFolder}\\preview.bat", + "options": { + "cwd": "${workspaceFolder}" + }, + "problemMatcher": [], + "presentation": { + "reveal": "always", + "panel": "dedicated", + "focus": false + }, + "runOptions": { + "instanceLimit": 1 + } + } + ] +} diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..b8098cb --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,103 @@ +# 水晶男孩推廣部 — AI 工作上下文 + +> 這個檔案讓 AI 在任何裝置(家/學校)都能快速恢復上下文。 +> **每次對話做了重要決定,請叫我更新這裡,然後 git commit。** + +--- + +## 專案簡介 + +水晶男孩(Sechs Kies)推廣粉絲網站。靜態 HTML + PHP + 原生 CSS/JS,無框架。 +站主(Noopy)2016 年入坑,藝廊式創作風格。 + +--- + +## 規範速查(詳細見 `developer-rules/rules/`) + +| 規範 | 檔案 | +|------|------| +| 改檔行為守則(必問再改) | `agent-must-ask.md` | +| 變更邊界(只改被點名的) | `ai-change-boundaries.md` | +| CSS 顏色 Token | `color-tokens.md` | +| 版面視覺預設 | `design-defaults.md` | +| Git commit 規範 | `git-commit-required.md` | +| 導覽邏輯(portal-nav) | `portal-nav-rules.md` | +| 文案語調 | `site-voice.md` | + +**最重要的三條:** +1. 沒說「執行」→ 不改檔 +2. 只改被點名的那一頁/區塊 +3. 改完必附 commit 指令(禁止在 sandbox 跑 git) + +--- + +## 架構重點 + +- **全站導覽**:`assets/js/portal-nav.js`(`COMING_SOON_PAGES` 控制開放) +- **全站 CSS**:`assets/css/style.css`(定義所有 color token) +- **首頁**:`index.html` +- **站主索引**(自用):`extra/site-guide.html`(`data-portal-nav-all-open`,不對外) +- **內頁 header class**:`inner-page-header`(禁改回舊名) + +### variety/ 頁面 + +| 檔案 | 頁面標題 | 說明 | +|------|----------|------| +| `variety/bangxiao.html` | 世紀級寶藏 / 爆笑養老院 | 甜蜜負擔計量器;六人卡片選取 + jQuery 計算;CTA → `totoga2/ebook.html` | +| `variety/variety-shows.html` | 全員發瘋 | 綜藝節目存檔表;tabs + 搜尋;已對齊 albums.html 扁平結構 | +| `variety/NJTW/NJTW5.html` | 新西遊記5 | 各自暴走專頁 | + +--- + +## portal-nav 操作守則(血淚版) + +> 每次新增或修改導覽,必須先讀這裡再動手。 + +1. **先查 `extra/site-guide.html` 確認層級**,再動 `portal-nav.js`。 + site-guide 的 depth 數字 = nav 的層級:depth-1 是第一層 `
上半場
+ +下半場
+ ++ 有些夜晚適合考古黃色奇蹟,有些夜晚則是——螢幕一亮,人就栽進另一個世界。 + 綜藝裡的失控笑聲、戲劇裡的心跳停拍,都值得被好好記下來:看到哪一季、哪一集、哪一句台詞剛把你釘在沙發上。 +
++ 這裡先收兩部最近在追的:一部是把人丟進肯亞還能笑到缺氧的韓綜, + 一部是把 1997 年的青春寫得又甜又疼的韓劇。 + 點進去,進度與入口都在;先別急著一次追完,慢慢養也很好看。 +
+
+ 此頁為線上靜態預覽。完整資料庫與後台 CRUD(乙級第三題骨架)請本機 XAMPP 匯入
+ variety/vedio-list/dramas.sql 後,開啟
+ variety/vedio-list/。
+
先用類型找——綜藝還是戲劇,跟 OTT 首頁那排分類一樣直覺。
+ +觀看進度:第 1 季・第 2 集・看到 28:40
+三人剛被扔進野外,表情比獅子還慌。
+觀看進度:第 1 季・第 5 集・看到 41:12
+宿舍夜談剛結束,收音機還在響,心卻已經開始亂。
+這個類型目前還沒有作品——換「全部」看看?
+ + +"; + print_r($array); + echo ""; +} + +function to($url) +{ + header("location:$url"); +} + +$Drama = new DB('dramas'); diff --git a/variety/vedio-list/api/del.php b/variety/vedio-list/api/del.php new file mode 100644 index 0000000..59453c1 --- /dev/null +++ b/variety/vedio-list/api/del.php @@ -0,0 +1,5 @@ +del($_POST['id']); diff --git a/variety/vedio-list/api/show.php b/variety/vedio-list/api/show.php new file mode 100644 index 0000000..5bd5d7e --- /dev/null +++ b/variety/vedio-list/api/show.php @@ -0,0 +1,6 @@ +find($_POST['id']); +$row['sh'] = ((int)$row['sh'] + 1) % 2; +$Drama->save($row); diff --git a/variety/vedio-list/api/sw.php b/variety/vedio-list/api/sw.php new file mode 100644 index 0000000..cdcff71 --- /dev/null +++ b/variety/vedio-list/api/sw.php @@ -0,0 +1,13 @@ +find($_POST['ids'][0]); +$row2 = $table->find($_POST['ids'][1]); + +$tmp = $row1['rank']; +$row1['rank'] = $row2['rank']; +$row2['rank'] = $tmp; + +$table->save($row1); +$table->save($row2); diff --git a/variety/vedio-list/back/add.php b/variety/vedio-list/back/add.php new file mode 100644 index 0000000..b360961 --- /dev/null +++ b/variety/vedio-list/back/add.php @@ -0,0 +1,96 @@ +q("SELECT MAX(`rank`) AS m FROM `dramas`"); + $nextRank = ((int)($maxRank[0]['m'] ?? 0)) + 1; + + $data = [ + 'title' => trim($_POST['title'] ?? ''), + 'type' => $_POST['type'] ?? 'drama', + 'platform' => $_POST['platform'] ?? '其他', + 'watch_url' => trim($_POST['watch_url'] ?? ''), + 'current_season' => max(1, (int)($_POST['current_season'] ?? 1)), + 'current_episode' => max(0, (int)($_POST['current_episode'] ?? 0)), + 'current_position' => trim($_POST['current_position'] ?? ''), + 'progress_note' => trim($_POST['progress_note'] ?? ''), + 'status' => $_POST['status'] ?? 'want', + 'rating' => $_POST['rating'] !== '' ? $_POST['rating'] : null, + 'intro' => trim($_POST['intro'] ?? ''), + 'note' => trim($_POST['note'] ?? ''), + 'sh' => 1, + 'rank' => $nextRank, + ]; + + // DB::save 用字串拼接;null 改空字串避免 SQL 破掉 + if ($data['rating'] === null) { + $data['rating'] = ''; + } + + $Drama->save($data); + to("?do=drama"); + exit; +} +?> + +
尚無資料,先新增一部作品吧。
+ +找不到這筆資料。
'; + return; +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $row['title'] = trim($_POST['title'] ?? $row['title']); + $row['type'] = $_POST['type'] ?? $row['type']; + $row['platform'] = $_POST['platform'] ?? $row['platform']; + $row['watch_url'] = trim($_POST['watch_url'] ?? ''); + $row['current_season'] = max(1, (int)($_POST['current_season'] ?? 1)); + $row['current_episode'] = max(0, (int)($_POST['current_episode'] ?? 0)); + $row['current_position'] = trim($_POST['current_position'] ?? ''); + $row['progress_note'] = trim($_POST['progress_note'] ?? ''); + $row['status'] = $_POST['status'] ?? $row['status']; + $row['rating'] = ($_POST['rating'] !== '') ? $_POST['rating'] : ''; + $row['intro'] = trim($_POST['intro'] ?? ''); + $row['note'] = trim($_POST['note'] ?? ''); + $Drama->save($row); + to("?do=drama"); + exit; +} +?> + +乙級第三題骨架:清單、詳情、進度、後台 CRUD。訂票不做。
+ +找不到這部作品,或它目前未公開顯示。
'; + echo ''; + return; +} + +$typeLabels = [ + 'variety' => '綜藝', + 'drama' => '戲劇', +]; +$statusLabels = [ + 'want' => '想看', + 'watching' => '追劇中', + 'done' => '已追完', + 'paused' => '暫停', + 'dropped' => '棄劇', +]; + +$typeText = $typeLabels[$row['type']] ?? $row['type']; +$statusText = $statusLabels[$row['status']] ?? $row['status']; +?> + += nl2br(htmlspecialchars($row['intro'], ENT_QUOTES, 'UTF-8')) ?>
+ + ++ 觀看進度:第 = (int)$row['current_season'] ?> 季|第 = (int)$row['current_episode'] ?> 集 + + |= htmlspecialchars($row['current_position'], ENT_QUOTES, 'UTF-8') ?> + +
+ += htmlspecialchars($row['progress_note'], ENT_QUOTES, 'UTF-8') ?>
+ +狀態:= htmlspecialchars($statusText, ENT_QUOTES, 'UTF-8') ?> + + · 評分:= htmlspecialchars($row['rating'], ENT_QUOTES, 'UTF-8') ?> + +
+ + += nl2br(htmlspecialchars($row['note'], ENT_QUOTES, 'UTF-8')) ?>
+ + + ++ 有些夜晚適合考古黃色奇蹟,有些夜晚則是——螢幕一亮,人就栽進另一個世界。 + 綜藝裡的失控笑聲、戲劇裡的心跳停拍,都值得被好好記下來:看到哪一季、哪一集、哪一句台詞剛把你釘在沙發上。 +
++ 這裡的清單來自資料庫:類型先分綜藝與戲劇, + 進度與「繼續觀看」入口都能改。慢慢養也很好看。 +
+先用類型找——綜藝還是戲劇,跟 OTT 首頁那排分類一樣直覺。
+ + + + +這個類型目前還沒有作品——換「全部」看看,或到後台新增一筆。
+ ++ 觀看進度:第 = (int)$row['current_season'] ?> 季・第 = (int)$row['current_episode'] ?> 集 + + ・看到 = htmlspecialchars($row['current_position'], ENT_QUOTES, 'UTF-8') ?> + +
+ += htmlspecialchars($row['progress_note'], ENT_QUOTES, 'UTF-8') ?>
+ +狀態:= htmlspecialchars($statusText, ENT_QUOTES, 'UTF-8') ?>
+ + +找不到這部作品。
'; + echo ''; + return; +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $row['current_season'] = max(1, (int)($_POST['current_season'] ?? 1)); + $row['current_episode'] = max(0, (int)($_POST['current_episode'] ?? 0)); + $row['current_position'] = trim($_POST['current_position'] ?? ''); + $row['progress_note'] = trim($_POST['progress_note'] ?? ''); + $row['status'] = $_POST['status'] ?? $row['status']; + $Drama->save($row); + to("?do=detail&id=" . (int)$row['id']); + exit; +} +?> + +記下你停在哪一季、哪一集、哪一秒——以及當時螢幕上正在發生什麼,之後才找得回那個心跳瞬間。
+Crystal Practice Room
++ 水晶練習室是水晶男孩推廣部底下的粉絲向練習工具,結合水晶熱舞社、水晶歌詞社與水晶嘻哈社概念,將歌曲、舞蹈、歌詞、Rap 與應援整理成可以反覆練習的互動頁面。第一版先以舞蹈影片練習與歌詞段落整理為主,未來可擴充唱歌、Rap、應援詞、錄音回放與練習紀錄。 +
+以舞蹈影片為核心,支援鏡像、慢速播放、逐段練習與 A-B 循環,適合整理經典舞台、翻跳練習與應援舞蹈。
+整理歌曲段落、中文理解、韓文歌詞位置與跟唱提示,未來可加入羅馬拼音、逐句練唱與原唱開關。
+針對 Rap 段落設計節奏、flow、咬字與慢速練習,未來可加入節拍器與錄音比較。
+整理演唱會應援詞、口號、手燈節奏與粉絲活動資訊,讓新加入的 Yellowkies 可以更快跟上。
+請放入水晶熱舞社練習影片
+ 支援本機或合法來源影片替換 +練習重點:副歌動作、隊形感、甜感表情
+ 可作為第一首示範歌 +練習重點:強拍、Rap 段落、舞台氣勢
+ 未來擴充 +練習重點:節奏、力量、舞台感
+ 未來擴充 +先熟悉站位與進場節奏。
+