ZX不是纸箱 ZX不是纸箱
ZX不是纸箱

Robes 主题 · 电影 / 书籍 / 好物 收藏集页面

给 Typecho 1.3.0 的 Robes 主题新增三个独立页面模板,卡片墙排版,单排最多 3 个,窄屏自动降为 2 个。
页面不引用评论系统,也不带点赞按钮。


一、安装

  1. 备份线上原有主题目录(usr/themes/robes),整目录重命名成 robes-bak 即可。
  2. robes1.2.gz 解压,得到 robes/ 目录,覆盖上传到 usr/themes/
  3. 浏览器按 Ctrl + F5 强刷一次(css/main.cssjs/main.v2.js 改了,文件名没变,浏览器可能还在用旧缓存)。
也可以只上传 7 个改动文件,见文末「改动清单」。

二、三个页面怎么建

后台 → 管理 → 独立页面 → 新增页面,创建三个页面:

页面标题自定义模板选建议缩略名
电影电影movies
书籍书籍books
好物好物goods
模板下拉框里会多出 电影 / 书籍 / 好物 三项(在「自定义模板」里选)。

侧边栏会自动出现这三个入口,并且已经给它们配好了图标(电影=胶片、书籍=书、好物=礼物)。


三、条目怎么写

在页面正文里写,一行(或一段)一条,模板会自动抓出来排成卡片墙,短代码之外的正文会正常显示在卡片墙上方,可以正常写 Markdown 标题和段落。

写法一:属性式(一行一条,推荐)

[item cover="海报图URL" title="抓特务" score="7.4" by="冯小刚" extra="2025 · 中国大陆 · 剧情" desc="雷佳音 / 胡歌 / 啜妮" link="https://movie.douban.com/xxx" tag="2025"]

写法二:块式(一条一段,适合值里带英文引号)

[item]
cover: 海报图URL
title: 抓特务
score: 7.4
by: 冯小刚
extra: 2025 · 中国大陆 · 剧情
desc: 雷佳音 / 胡歌 / 啜妮
link: https://movie.douban.com/xxx
tag: 2025
[/item]

两种写法别混用,混用的话卡片顺序可能不是你要的。

字段说明

字段别名(写哪个都行)作用
cover封面 / 海报 / img / image / poster封面图,电影书籍建议竖版海报(2:3)
title标题 / name标题,必填,超长自动省略号
score评分 / rating / star评分,默认十分制,自动画成星星
scale满分 / max改成五分制就写 scale="5"
by导演 / 作者 / 品牌 / director / author / brand会带上页面默认标签(电影=导演,书籍=作者,好物=品牌);自己带上「:」就不再加标签
extra备注 / 信息 / info灰色小字,放年份、时长、出版社、价格这类
desc简介 / 演员 / intro / actors最多显示两行,超出省略
link链接 / 地址 / url整张卡片可点;站外链接自动新窗口打开
tag角标 / 年份 / 状态 / badge封面右上角的小圆角标签

字段都可以不写,只有一个 title 也能正常显示。

示例:电影

[item cover="https://img1.doubanio.com/view/photo/s_ratio_poster/public/p1.jpg" title="抓特务" score="7.4" by="冯小刚" extra="2025 · 中国大陆 · 剧情" desc="雷佳音 / 胡歌 / 啜妮 / 张瑶" link="https://movie.douban.com/subject/xxx" tag="2025"]

示例:书籍

[item cover="https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2.jpg" title="活着" score="9.4" by="余华" extra="作家出版社 · 2012" desc="一个人和他的命运之间的友情" tag="已读"]

示例:好物

[item cover="https://example.com/mx-master.jpg" title="罗技 MX Master 3S" score="9.2" by="Logitech" extra="¥699" desc="用了一年,滚轮手感确实回不去了" link="https://www.logitech.com" tag="办公"]

四、想调外观?改这三个文件的注释行

movies.php / books.php / goods.php 里各有一段被注释掉的配置,去掉注释就能生效:

RobesCollection::render($this, 'movie', array(
    // 'columns'   => 2,        // 单排最多几个(默认 3,觉得挤就改 2)
    // 'ratio'     => '2 / 3',  // 封面比例,横版图可以改成 '16 / 10'
    // 'showTitle' => false,    // 不想显示页面大标题就改成 false
    // 'byLabel'   => '导演',
));
  • 觉得 3 列挤'columns' => 2。实测:3 列时卡片宽 204px,2 列时 313px(内容区固定 639px)。
  • 好物想用竖图'ratio' => '3 / 4'。默认好物是方图 1 / 1,电影书籍是 2 / 3
  • 不想让正文里的大标题出现'showTitle' => false
  • 页面的标题文字(就是卡片墙上方的「电影」)取的是页面本身标题,改页面标题即可。

五、行为说明

情况表现
页面里一条都没有显示引导页,直接把示例复制到正文即可
封面图加载失败封面区域自动显示一个占位图标,不会出现破图
站外链接自动 target="_blank" 新窗口打开
站内链接走主题的 PJAX 无刷新跳转
深色模式已适配,星星保持金色
手机(≤640px)自动变两列(竖版海报墙效果)
卡片入场和友链、相册一样有滚动淡入动画

六、改动清单

文件改动
movies.php新增,电影页面模板
books.php新增,书籍页面模板
goods.php新增,好物页面模板
inc/collection.php新增,三个页面共用的解析 + 渲染器
css/main.css追加约 200 行 .col-* 样式(原有内容一行未删,纯追加)
js/main.v2.js1 行:把 .col-card 加入卡片淡入动画的选择器列表
sidebar.php追加 3 行:电影 / 书籍 / 好物的侧边栏图标映射

robes-collection.diff 可以看到逐行对比(orig/ 是原版,robes/ 是改后)。

回滚

删除 movies.phpbooks.phpgoods.phpinc/ 四个文件,
再从 robes-collection.diff 里把 main.css 末尾追加段、main.v2.js 那一行、sidebar.php 那三行还原即可。
或者直接用备份的 robes-bak 目录换回来。


七、已验证内容

  • 全部 20 个 PHP 文件 php -l 语法通过
  • 解析器 47 项单元测试全绿(两种写法、中文字段名、别名、五分制、空值、异常输入、XSS 转义)
  • 真实浏览器(Edge)渲染截图确认:

    • 桌面 1440px → 3 列,卡片 204px,整排最多 3 个
    • columns=2 → 2 列,卡片 313px
    • 手机 390px → 2 列,卡片 175px,无横向溢出
    • 深色模式、空状态、无封面占位均正常
    • 页面无 JS 报错,无评论模块
上一篇 NVIDIA 显卡控制面板打不开的问题 下一篇 Robes主题修改文章页外链转内链

暂无评论

Ctrl + Enter 发送

还没有评论,来说点什么吧

ZX的研发日志
Theme Robes