三傻遊肯亞
-觀看進度:第 1 季・第 2 集・看到 28:40
-三人剛被扔進野外,表情比獅子還慌。
-diff --git a/AGENTS.md b/AGENTS.md index 785f50d..5a5cabf 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -39,13 +39,14 @@ - **站主索引**(自用):`extra/site-guide.html`(`data-portal-nav-all-open`,不對外) - **內頁 header class**:`inner-page-header`(禁改回舊名) -### variety/ 頁面 +### vedio/ 頁面(原 variety/,已改名) | 檔案 | 頁面標題 | 說明 | |------|----------|------| -| `variety/bangxiao.html` | 世紀級寶藏 / 爆笑養老院 | 甜蜜負擔計量器;六人卡片選取 + jQuery 計算;CTA → `totoga2/ebook.html` | -| `variety/variety-shows.html` | 全員發瘋 | 綜藝節目存檔表;tabs + 搜尋;已對齊 albums.html 扁平結構 | -| `variety/NJTW/NJTW5.html` | 新西遊記5 | 各自暴走專頁 | +| `vedio/bangxiao.html` | 世紀級寶藏 / 爆笑養老院 | 甜蜜負擔計量器;六人卡片選取 + jQuery 計算;CTA → `totoga2/ebook.html` | +| `vedio/variety-shows.html` | 全員發瘋 | 綜藝節目存檔表;tabs + 搜尋;已對齊 albums.html 扁平結構 | +| `vedio/NJTW/NJTW5.html` | 新西遊記5 | 各自暴走專頁 | +| `vedio/vedio-list.html` | 影視清單 | 追劇進度預覽頁(乙級第三題骨架,PHP 後台在 `vedio/vedio-list/`) | --- @@ -57,7 +58,7 @@ site-guide 的 depth 數字 = nav 的層級:depth-1 是第一層 `
鏡頭一開就跑偏、台詞唸不完,卻總能把段子的節奏剪成「非他不可」——這是最容易被路人一眼看見的瘋勁,也是綜藝剪輯願意一路卡特寫給他的理由。
-卸妝後的聊天、運動場上的暴走、對成員毫不修飾的吐槽;那些看起來像日常,其實比劇本更誇張。
-全員發瘋:團綜「隊長帶弟弟」與個綜「各自暴走」分表整理;名場面與入坑路線仍會陸續補在本區。
-
- 這是一場驚心動魄(搞笑)的鬼怪盛宴!
- 六位成員化身世界各地的經典鬼怪,展開一場前往香港與北海道的爆笑冒險。
-
|
-
-
-
-
-
-
-
-
-
-
-
- 姜鎬臉男 姜鎬童 -吃得津津有味的鬼怪 -
-
-
-
-
-
- 視覺
-
-
-
-
-
- 注目度
-
-
-
-
- 可愛
-
-
-
- #吃貨精靈 #低聲細語 - |
-
-
-
-
-
-
-
-
-
-
- 鬼娃恰吉 李壽根 -不搞笑會死的鬼怪 -
-
-
-
-
-
- 娃娃美
-
-
-
-
- 語言能力
-
-
-
-
- 體能
-
-
-
- #最強短腿 #瘋狂跑動 - |
-
-
-
-
-
-
-
-
-
-
- 陰間使者 殷志源 -戴上黑帽子 神志源回來了! -
-
-
-
-
-
- 化妝消化力
-
-
-
-
- 黑眼圈
-
-
-
-
- 暴走
-
-
-
- #瘋子使者 #最帥鬼怪 - |
-
-
-
-
-
-
-
-
-
- OB 隊:老練的瘋子們-
-
-
-
-
-
-
- 看他們玩遊戲不是在看技術,是在看如何「鑽漏洞」和「互相背叛」。他們不用說話,光是一個眼神就能知道對方在想什麼(通常是壞主意)。 -圈粉亮點:鎬童的食量、壽根的即興才藝、志源那種「初丁」卻天才的直覺。 -
-
-
- 老練度
-
-
-
-
- 體力值
-
-
-
- 口頭禪:喔嗚!吃吧! - |
-
|
-
-
-
-
-
-
-
-
- YB 隊:新瘋子隊-
-
-
-
-
-
-
- 一開始以為是來幫哥哥們打雜的,結果卻是一個比一個還瘋的「瘋子新秀」。他們擁有體力優勢,卻常常在簡單的常識題中全軍覆沒。 -圈粉亮點:安宰賢的紙片人運動神經、宋旻浩的藝術靈魂與神手指、P.O 的超大聲反應。 -
-
-
- 老練度
-
-
-
-
- 體力值
-
-
-
- 口頭禪:哥!對不起! - |
-
-
-
-
-
-
-
-
-
-
- 帥氣殭屍 安宰賢 -美貌&藝能兼具 八面玲瓏的帥氣殭屍 -
-
-
-
-
-
- 帥氣度
-
-
-
-
- 瘋癲
-
-
-
-
- 臉紅紅
-
-
-
- #美男殭屍 #運動白痴 - |
-
-
-
-
-
-
-
-
-
-
- 現代鬼 宋旻浩 -獨特的文藝青年 現代鬼怪 -
-
-
-
-
-
- 髮型
-
-
-
-
- 清純美
-
-
-
-
- 時髦度
-
-
-
- #長髮宋 #綜藝神降臨 - |
-
-
-
-
-
-
-
-
-
-
- 德古拉 P.O -新血降臨!華麗誤答轟炸機! -
-
-
-
-
-
- 腦力
-
-
-
-
- 披風+領子
-
-
-
-
- 藝能感
-
-
-
- #新弟子 #德古拉 - |
-
+ 這是一場驚心動魄(搞笑)的鬼怪盛宴!
+ 六位成員化身世界各地的經典鬼怪,展開一場前往香港與北海道的爆笑冒險。
+
|
+
+
+
+
+
+
+
+
+
+
+
+ 姜鎬臉男 姜鎬童 +吃得津津有味的鬼怪 +
+
+
+
+
+
+ 視覺
+
+
+
+
+
+ 注目度
+
+
+
+
+ 可愛
+
+
+
+ #吃貨精靈 #低聲細語 + |
+
+
+
+
+
+
+
+
+
+
+ 鬼娃恰吉 李壽根 +不搞笑會死的鬼怪 +
+
+
+
+
+
+ 娃娃美
+
+
+
+
+ 語言能力
+
+
+
+
+ 體能
+
+
+
+ #最強短腿 #瘋狂跑動 + |
+
+
+
+
+
+
+
+
+
+
+ 陰間使者 殷志源 +戴上黑帽子 神志源回來了! +
+
+
+
+
+
+ 化妝消化力
+
+
+
+
+ 黑眼圈
+
+
+
+
+ 暴走
+
+
+
+ #瘋子使者 #最帥鬼怪 + |
+
+
+
+
+
+
+
+
+
+ OB 隊:老練的瘋子們+
+
+
+
+
+
+
+ 看他們玩遊戲不是在看技術,是在看如何「鑽漏洞」和「互相背叛」。他們不用說話,光是一個眼神就能知道對方在想什麼(通常是壞主意)。 +圈粉亮點:鎬童的食量、壽根的即興才藝、志源那種「初丁」卻天才的直覺。 +
+
+
+ 老練度
+
+
+
+
+ 體力值
+
+
+
+ 口頭禪:喔嗚!吃吧! + |
+
|
+
+
+
+
+
+
+
+
+ YB 隊:新瘋子隊+
+
+
+
+
+
+
+ 一開始以為是來幫哥哥們打雜的,結果卻是一個比一個還瘋的「瘋子新秀」。他們擁有體力優勢,卻常常在簡單的常識題中全軍覆沒。 +圈粉亮點:安宰賢的紙片人運動神經、宋旻浩的藝術靈魂與神手指、P.O 的超大聲反應。 +
+
+
+ 老練度
+
+
+
+
+ 體力值
+
+
+
+ 口頭禪:哥!對不起! + |
+
+
+
+
+
+
+
+
+
+
+ 帥氣殭屍 安宰賢 +美貌&藝能兼具 八面玲瓏的帥氣殭屍 +
+
+
+
+
+
+ 帥氣度
+
+
+
+
+ 瘋癲
+
+
+
+
+ 臉紅紅
+
+
+
+ #美男殭屍 #運動白痴 + |
+
+
+
+
+
+
+
+
+
+
+ 現代鬼 宋旻浩 +獨特的文藝青年 現代鬼怪 +
+
+
+
+
+
+ 髮型
+
+
+
+
+ 清純美
+
+
+
+
+ 時髦度
+
+
+
+ #長髮宋 #綜藝神降臨 + |
+
+
+
+
+
+
+
+
+
+
+ 德古拉 P.O +新血降臨!華麗誤答轟炸機! +
+
+
+
+
+
+ 腦力
+
+
+
+
+ 披風+領子
+
+
+
+
+ 藝能感
+
+
+
+ #新弟子 #德古拉 + |
+
|
-
-
-
-
- 7 檔
-
-
- |
- ||||
| 播出日期 | -頻道 | -節目名稱 | -出演成員 | -集數 | -
| 04/22 06/17 | -tvN | -新西遊記2 | -殷志源 | -01 09 | -
| 04/27 06/22 | -tvN | -Let's GO 時間探險隊3 | -張水院 | -01 09 | -
| 05/04 07/20 | -K-Star | -真實的帥氣的 | -— | -01 12 | -
| 06/05 08/21 | -JTBC | -天下壯士 | -殷志源 | -01 12 | -
| 09/05 11/21 | -SBS | -花樣旅行 | -殷志源、李宰鎮 | -01 12 | -
| 10/12 10/21 | -JTBC | -本月的活動王 | -張水院 | -01 02 | -
| 待確認 | -MBC every1 | -一週偶像 隨機播放舞蹈 | -全體 | -EP.280 | -
|
-
-
-
-
- 4 檔
-
-
- |
- ||||
| 播出日期 | -頻道 | -節目名稱 | -出演成員 | -集數 | -
| 01/01 06/02 | -KBS2 | -超人回來了 | -高志鎔 | -163 280 | -
| 01/08 03/12 | -tvN | -新西遊記3 | -殷志源 | -01 09+導演版 | -
| 06/13 08/22 | -tvN | -新西遊記4 | -殷志源 | -01 10+導演版 | -
| 12/05 01/09 | -tvN | -姜食堂 | -殷志源 | -01 05+導演版 | -
|
-
-
-
-
- 3 檔
-
-
- |
- ||||
| 播出日期 | -頻道 | -節目名稱 | -出演成員 | -集數 | -
| 05/05 10/27 | -MBC | -意外的Q | -— | -01 25 | -
| 09/30 10/28 | -tvN | -新西遊記5 | -殷志源 | -01 05 | -
| 10/28 12/02 | -tvN | -新西遊記6 | -殷志源 | -00 05+導演版 | -
|
-
-
-
-
- 5 檔
-
-
- |
- ||||
| 播出日期 | -頻道 | -節目名稱 | -出演成員 | -集數 | -
| 05/31 07/05 | -tvN | -姜食堂2 | -殷志源 | -01 06 | -
| 06/08 08/17 | -tvN | -高校供餐王 | -殷志源 | -01 11 | -
| 07/05 08/02 | -tvN | -姜食堂3 | -殷志源 | -00 04 | -
| 09/20 11/22 | -tvN | -去冰島的三餐 | -殷志源 | -01 10 | -
| 10/25 01/03 | -tvN | -新西遊記7 | -殷志源 | -01 11 | -
|
-
-
-
-
- 2 檔
-
-
- |
- ||||
| 播出日期 | -頻道 | -節目名稱 | -出演成員 | -集數 | -
| 01/10 03/27 | -tvN | -星期五星期五晚上 | -殷志源 | -01 10+導演版 | -
| 10/09 12/18 | -tvN | -新西遊記8 | -殷志源 | -01 10+導演版 | -
| 播出日期 | -頻道 | -節目名稱 | -出演成員 | -集數 | -
|---|---|---|---|---|
| 陸續補上;站內專頁例:新西遊記5 | -||||
|
+
+
+
+
+ 7 檔
+
+
+ |
+ ||||
| 播出日期 | +頻道 | +節目名稱 | +出演成員 | +集數 | +
| 04/22 06/17 | +tvN | +新西遊記2 | +殷志源 | +01 09 | +
| 04/27 06/22 | +tvN | +Let's GO 時間探險隊3 | +張水院 | +01 09 | +
| 05/04 07/20 | +K-Star | +真實的帥氣的 | +— | +01 12 | +
| 06/05 08/21 | +JTBC | +天下壯士 | +殷志源 | +01 12 | +
| 09/05 11/21 | +SBS | +花樣旅行 | +殷志源、李宰鎮 | +01 12 | +
| 10/12 10/21 | +JTBC | +本月的活動王 | +張水院 | +01 02 | +
| 待確認 | +MBC every1 | +一週偶像 隨機播放舞蹈 | +全體 | +EP.280 | +
|
+
+
+
+
+ 4 檔
+
+
+ |
+ ||||
| 播出日期 | +頻道 | +節目名稱 | +出演成員 | +集數 | +
| 01/01 06/02 | +KBS2 | +超人回來了 | +高志鎔 | +163 280 | +
| 01/08 03/12 | +tvN | +新西遊記3 | +殷志源 | +01 09+導演版 | +
| 06/13 08/22 | +tvN | +新西遊記4 | +殷志源 | +01 10+導演版 | +
| 12/05 01/09 | +tvN | +姜食堂 | +殷志源 | +01 05+導演版 | +
|
+
+
+
+
+ 3 檔
+
+
+ |
+ ||||
| 播出日期 | +頻道 | +節目名稱 | +出演成員 | +集數 | +
| 05/05 10/27 | +MBC | +意外的Q | +— | +01 25 | +
| 09/30 10/28 | +tvN | +新西遊記5 | +殷志源 | +01 05 | +
| 10/28 12/02 | +tvN | +新西遊記6 | +殷志源 | +00 05+導演版 | +
|
+
+
+
+
+ 5 檔
+
+
+ |
+ ||||
| 播出日期 | +頻道 | +節目名稱 | +出演成員 | +集數 | +
| 05/31 07/05 | +tvN | +姜食堂2 | +殷志源 | +01 06 | +
| 06/08 08/17 | +tvN | +高校供餐王 | +殷志源 | +01 11 | +
| 07/05 08/02 | +tvN | +姜食堂3 | +殷志源 | +00 04 | +
| 09/20 11/22 | +tvN | +去冰島的三餐 | +殷志源 | +01 10 | +
| 10/25 01/03 | +tvN | +新西遊記7 | +殷志源 | +01 11 | +
|
+
+
+
+
+ 2 檔
+
+
+ |
+ ||||
| 播出日期 | +頻道 | +節目名稱 | +出演成員 | +集數 | +
| 01/10 03/27 | +tvN | +星期五星期五晚上 | +殷志源 | +01 10+導演版 | +
| 10/09 12/18 | +tvN | +新西遊記8 | +殷志源 | +01 10+導演版 | +
| 播出日期 | +頻道 | +節目名稱 | +出演成員 | +集數 | +
|---|---|---|---|---|
| 陸續補上;站內專頁例:新西遊記5 | +||||
- 有些夜晚適合考古黃色奇蹟,有些夜晚則是——螢幕一亮,人就栽進另一個世界。 - 綜藝裡的失控笑聲、戲劇裡的心跳停拍,都值得被好好記下來:看到哪一季、哪一集、哪一句台詞剛把你釘在沙發上。 -
-- 這裡先收兩部最近在追的:一部是把人丟進肯亞還能笑到缺氧的韓綜, - 一部是把 1997 年的青春寫得又甜又疼的韓劇。 - 點進去,進度與入口都在;先別急著一次追完,慢慢養也很好看。 -
-
- 此頁為線上靜態預覽。完整資料庫與後台 CRUD(乙級第三題骨架)請本機 XAMPP 匯入
- variety/vedio-list/dramas.sql 後,開啟
- variety/vedio-list/。
-
先用類型找——綜藝還是戲劇,跟 OTT 首頁那排分類一樣直覺。
- -觀看進度:第 1 季・第 2 集・看到 28:40
-三人剛被扔進野外,表情比獅子還慌。
-觀看進度:第 1 季・第 5 集・看到 41:12
-宿舍夜談剛結束,收音機還在響,心卻已經開始亂。
-這個類型目前還沒有作品——換「全部」看看?
- - -綜藝裡的失控笑聲、戲劇裡的心跳停拍,都值得被好好記下來:看到哪一季、哪一集、哪一句台詞剛把你釘在沙發上。 +
++ 這裡先收兩部最近在追的:一部是把人丟進肯亞還能笑到缺氧的韓綜, + 一部是把 1997 年的青春寫得又甜又疼的韓劇。 + 點進去,進度與入口都在;先別急著一次追完,慢慢養也很好看。 +
+ +觀看進度:第 1 季・第 2 集・看到 28:40
+三人剛被扔進野外,表情比獅子還慌。
+
+ 觀看進度:第 1 季・第 5 集・看到 41:12
+宿舍夜談剛結束,收音機還在響,心卻已經開始亂。
+這個類型目前還沒有作品——換「全部」看看?
+ + +"; - print_r($array); - echo ""; -} - -function to($url) -{ - header("location:$url"); -} - -$Drama = new DB('dramas'); +table = $table; + $this->pdo = new PDO($this->dsn, 'root', ''); + } + + function all(...$arg) + { + $sql = "SELECT * FROM `$this->table` "; + if (isset($arg[0])) { + if (is_array($arg[0])) { + $tmp = $this->a2s($arg[0]); + $sql .= " WHERE " . join(" AND ", $tmp); + } else { + $sql .= $arg[0]; + } + } + + if (isset($arg[1])) { + $sql .= $arg[1]; + } + + return $this->pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC); + } + + function count(...$arg) + { + $sql = "SELECT count(*) FROM `$this->table`"; + if (isset($arg[0])) { + if (is_array($arg[0])) { + $tmp = $this->a2s($arg[0]); + $sql .= " WHERE " . join(" AND ", $tmp); + } else { + $sql .= $arg[0]; + } + } + + if (isset($arg[1])) { + $sql .= $arg[1]; + } + + return $this->pdo->query($sql)->fetchColumn(); + } + + function find($arg) + { + $sql = "SELECT * FROM `$this->table` "; + + if (is_array($arg)) { + $tmp = $this->a2s($arg); + $sql .= " WHERE " . join(" AND ", $tmp); + } else { + $sql .= " WHERE `id`='$arg'"; + } + + return $this->pdo->query($sql)->fetch(PDO::FETCH_ASSOC); + } + + function save($arg) + { + if (isset($arg['id'])) { + $tmp = $this->a2s($arg); + $sql = "UPDATE `$this->table` SET " . join(" , ", $tmp); + $sql .= " WHERE `id`='{$arg['id']}'"; + } else { + $keys = array_keys($arg); + $sql = "INSERT INTO `$this->table` (`" . join("`,`", $keys) . "`) VALUES('" . join("','", $arg) . "');"; + } + + return $this->pdo->exec($sql); + } + + function del($arg) + { + $sql = "DELETE FROM `$this->table` "; + + if (is_array($arg)) { + $tmp = $this->a2s($arg); + $sql .= " WHERE " . join(" AND ", $tmp); + } else { + $sql .= " WHERE `id`='$arg'"; + } + + return $this->pdo->exec($sql); + } + + protected function a2s($array) + { + $tmp = []; + foreach ($array as $key => $val) { + $tmp[] = "`$key`='$val'"; + } + + return $tmp; + } + + function q($sql) + { + return $this->pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC); + } +} + +function dd($array) +{ + echo "
"; + print_r($array); + echo ""; +} + +function to($url) +{ + header("location:$url"); +} + +$Drama = new DB('dramas'); diff --git a/variety/vedio-list/api/del.php b/vedio/vedio-list/api/del.php similarity index 94% rename from variety/vedio-list/api/del.php rename to vedio/vedio-list/api/del.php index 59453c1..7f1d9cf 100644 --- a/variety/vedio-list/api/del.php +++ b/vedio/vedio-list/api/del.php @@ -1,5 +1,5 @@ -del($_POST['id']); +del($_POST['id']); diff --git a/variety/vedio-list/api/show.php b/vedio/vedio-list/api/show.php similarity index 95% rename from variety/vedio-list/api/show.php rename to vedio/vedio-list/api/show.php index 5bd5d7e..cefc827 100644 --- a/variety/vedio-list/api/show.php +++ b/vedio/vedio-list/api/show.php @@ -1,6 +1,6 @@ -find($_POST['id']); -$row['sh'] = ((int)$row['sh'] + 1) % 2; -$Drama->save($row); +find($_POST['id']); +$row['sh'] = ((int)$row['sh'] + 1) % 2; +$Drama->save($row); diff --git a/variety/vedio-list/api/sw.php b/vedio/vedio-list/api/sw.php similarity index 95% rename from variety/vedio-list/api/sw.php rename to vedio/vedio-list/api/sw.php index cdcff71..e4202a8 100644 --- a/variety/vedio-list/api/sw.php +++ b/vedio/vedio-list/api/sw.php @@ -1,13 +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); +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/vedio/vedio-list/back/add.php similarity index 97% rename from variety/vedio-list/back/add.php rename to vedio/vedio-list/back/add.php index b360961..fbb0f7b 100644 --- a/variety/vedio-list/back/add.php +++ b/vedio/vedio-list/back/add.php @@ -1,96 +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; -} -?> - -找不到這筆資料。
'; + 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。訂票不做。
-乙級第三題骨架:清單、詳情、進度、後台 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')) ?>
- - - -找不到這部作品,或它目前未公開顯示。
'; + 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') ?>
- - -+ 有些夜晚適合考古黃色奇蹟,有些夜晚則是——螢幕一亮,人就栽進另一個世界。 + 綜藝裡的失控笑聲、戲劇裡的心跳停拍,都值得被好好記下來:看到哪一季、哪一集、哪一句台詞剛把你釘在沙發上。 +
++ 這裡的清單來自資料庫:類型先分綜藝與戲劇, + 進度與「繼續觀看」入口都能改。慢慢養也很好看。 +
+先用類型找——綜藝還是戲劇,跟 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; -} -?> - -記下你停在哪一季、哪一集、哪一秒——以及當時螢幕上正在發生什麼,之後才找得回那個心跳瞬間。
-找不到這部作品。
'; + 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; +} +?> + +記下你停在哪一季、哪一集、哪一秒——以及當時螢幕上正在發生什麼,之後才找得回那個心跳瞬間。
+THREE WORDS · 10TH
| 順序 | 日期/縮圖 | 電視台/舞台 | 狀態 | 操作 |
|---|---|---|---|---|
| =e((string)$row['sort_order'])?> | ![]() | =e($row['station'])?> · =e($row['program'])?>=e($row['title'])?> | =$row['is_visible']?'顯示':'隱藏'?> | 修改 |
THREE WORDS · ADMIN
乙級練習:Session 登入與資料庫驗證
MUSIC SHOW ARCHIVE
![<?=e($s['title'])?>](https://i.ytimg.com/vi/<?=e($s['youtube_id'])?>/hqdefault.jpg)
SECHSKIES · 세 단어
+TH
ANNIVERSARY
2016.10.07 — 2026.10.07
+01 / TEN YEARS LATER
+지금 · 여기 · 우리
+有些歌不只是被聽見,
而是替一段等待留下名字。
02 / THREE WORDS
+十年後的此刻,重新按下播放。
回到那個讓我們再次相遇的地方。
歌曲仍在,我們也仍然在這裡。
03 / LYRICS PREVIEW
+ 세 단어I just wanna be with you
+내가 사는 이유
+다시는 멀리 가지 않을게요
+I'll always be here for you
+세월이 지난 후
+ 完整歌詞與歌曲資料 ↗ +04 / FROM THEN TO NOW
+ {moments.map((moment) =>{moment.text}
05 / MUSIC SHOW ARCHIVE
+把當年的舞台依日期收好,從十年前重新播放。
+
+ ▶
+
+ {stage.note}WATCH ON YOUTUBE ↗
+
+