积木魔方 (Blocks) Emlog模板使用说明
积木魔方 (Blocks) 模板
Emlog Pro 多模式自适应模板 — CMS / 传统博客 / 卡片 三种首页布局自由切换
- 模板名称: 积木魔方 (Blocks)
- 版本: 2.2.0
- 作者: zhongyishenghi
- 适用于: Emlog Pro
功能特性
布局与展示
- 三种首页模式:CMS 杂志式多分类展示、传统博客左图右文列表、图文卡片网格
- CMS 分类板块:5 种内置布局(默认文章列表、新闻资讯、网格卡片、教程布局、软件布局),自由配置分类与顺序
- 最新文章轮播:首页左侧轮播图 + 右侧最新文章列表
- 快捷入口:可配置 4 个快捷导航按钮
- 热门推荐跑马灯:按浏览量自动排行,横向滚动展示
- 分类页双样式:传统列表或网格卡片,可独立控制侧边栏
- 文章页灵活布局:独立控制侧边栏显示/隐藏
用户系统
- 完整用户中心:个人资料、账户设置、微语管理、文章管理、草稿箱、评论管理、回复管理
- 每日签到:积分签到系统,支持连续签到奖励
- 积分系统:登录、发表文章、评论、浏览文章等行为自动获得积分
- 积分记录:完整积分变动历史
微语系统
- 微语广场:微博风格卡片布局,展示所有用户公开微语,支持分页浏览
- 微语详情页:完整微语内容、全部回复、回复表单,动态页面标题
- 回复系统:登录用户直接回复,未登录用户可填写昵称+邮箱回复;支持 @提及回复、展开/收起
- 点赞功能:支持点赞/取消点赞
- 发表微语:登录用户可在广场直接发表微语
- 后台设置:侧边栏显示/隐藏、每页显示数量、侧边栏左右位置切换
视觉与体验
- 深色模式:跟随系统偏好或手动切换,全站暗色适配
- Font Awesome 6 图标:全站统一图标体系,CDN 加载含本地后备
- 社交分享:支持微信好友、朋友圈、QQ、QQ 空间、微博、X (Twitter)、Facebook
- 微信分享二维码:一键生成当前页面二维码
- 文章版权信息:可配置版权声明、作者联系方式、文章链接一键复制
- 相关文章推荐:基于同分类的文章推荐
- 文章点赞/点踩:支持点赞和点踩操作,可在后台模板设置中控制显示/隐藏
- 演示地址入口:文章自定义字段中填写在线演示网址,前台独立展示入口按钮
- 文章附件/网盘:支持登录下载、提取码、文件图标映射,内置 UC 网盘、GitHub 平台选项
安全与性能
- 安全响应头:X-Frame-Options、X-Content-Type-Options、Referrer-Policy
- CDN 后备机制:Font Awesome 和 jQuery 均具备 CDN 加载失败自动切换本地
- 深色模式防 FOUC:内联脚本在渲染前读取主题偏好,消除闪烁
- 响应式设计:完整适配桌面端、平板、手机
- 打印样式:文章页专用打印优化
- 无障碍:跳转链接、aria 标签、focus-visible 焦点样式、prefers-reduced-motion
环境要求
| 依赖 | 说明 |
|---|---|
| Emlog Pro | 需要 Emlog Pro 版本(支持 TplOptions 插件) |
| TplOptions 插件 | 必须安装并启用,否则模板无法正常运行 |
| PHP | 7.4+,推荐 8.0+ |
| MySQL | 5.6+ 或 MariaDB 10.0+ |
安装与激活
- 将
blocks文件夹上传到content/templates/目录 - 登录 Emlog 后台 → 外观 → 模板
- 找到"积木魔方"模板,点击 启用
- 启用后进入 模板设置 根据需求配置各项参数
提示: 首次启用时模板会自动执行初始化回调(创建积分系统所需的数据库表等)。如果从旧版本升级,请重新保存一次模板设置以确保回调完整执行。
后台配置详解
模板提供 6 个配置选项卡,通过后台 外观 → 模板设置 访问。
1. 全局设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| Logo 图片 | 图片上传 | 空 | 上传后优先显示图片 Logo,留空则显示文字 Logo |
| Logo 文字 | 文本 | 空 | 文字 Logo 内容,留空则显示博客名称 |
| 顶部导航背景色 | 颜色选择 | #2a2a2a |
导航栏背景色 |
| 顶部导航文字色 | 颜色选择 | #ffffff |
导航栏文字/链接颜色 |
| 友情链接显示方式 | 单选 | 仅首页 | 不显示 / 仅首页 / 全站 |
| 启用备案信息 | 单选 | 不启用 | 开启后显示 ICP 备案号和公安备案号 |
| ICP 备案号 | 文本 | 空 | 如:京ICP备12345678号 |
| 公安备案号 | 文本 | 空 | 如:京公网安备 11010502030405号 |
2. 首页公共设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 显示最新文章区 | 单选 | 显示 | 控制首页轮播图 + 右侧文章列表的显示 |
| 轮播图文章 ID | 文本 | 空 | 填写 3 个文章 ID(英文逗号分隔),用于轮播展示 |
| 显示快捷入口 | 单选 | 显示 | 控制首页 4 个快捷按钮区域的显示 |
| 快捷入口 1~4 名称 | 文本 | 直播源分享 / 软件下载 / 使用教程 / 关于本站 | 入口名称 |
| 快捷入口 1~4 链接 | 文本 | 对应分类 URL | 入口链接地址 |
| 显示热门推荐区 | 单选 | 显示 | 控制首页热门文章跑马灯的显示 |
3. 首页个性设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 首页模式 | 单选 | CMS 模式 | CMS / 传统博客 / 卡片(详见下方模式说明) |
| 非 CMS 模式显示侧边栏 | 单选 | 否 | 传统/卡片模式下首页是否显示侧边栏 |
| CMS 分类板块配置 | 多行文本 | 空 | 配置 CMS 模式下的分类板块(详见下方详细指南) |
4. 分类页设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 分类页样式 | 单选 | 传统列表 | 传统列表 / 网格卡片 |
| 分类页缩略图高度 | 文本 | 160 | 缩略图高度(px) |
| 分类页显示侧边栏 | 单选 | 是 | 分类页面是否显示侧边栏 |
5. 文章页设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 显示相关文章推荐 | 单选 | 显示 | 文章底部是否显示相关文章 |
| 显示社交分享按钮 | 单选 | 显示 | 文章底部是否显示分享按钮区 |
| 显示文章版权信息 | 单选 | 显示 | 文章底部是否显示版权信息板块 |
| 显示点赞/点踩 | 单选 | 显示 | 文章底部标签之后、版权信息之前是否显示点赞和点踩按钮 |
| 作者联系方式 | 文本 | 空 | 版权信息中显示的联系方式 |
| 版权声明文字 | 文本 | CC 4.0 BY-SA | 自定义版权声明内容 |
| 文章详情页显示侧边栏 | 单选 | 是 | 文章页是否显示侧边栏 |
6. 微语页设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 显示侧边栏 | 单选 | 否 | 微语广场和微语详情页是否显示侧边栏 |
| 每页显示微语数量 | 文本 | 20 | 微语广场列表每页显示的微语条数 |
| 侧边栏显示位置 | 单选 | 右侧 | 选择侧边栏显示在左侧还是右侧 |
首页模式说明
CMS 模式
杂志式多分类展示,从上到下依次排列:
┌──────────────────────────────────────┐
│ 最新文章轮播(左图轮播 + 右列文章) │
├──────────────────────────────────────┤
│ 快捷入口(4 个导航按钮) │
├──────────────────────────────────────┤
│ 热门推荐跑马灯 │
├──────────────────────────────────────┤
│ 分类板块 1(可配置布局与排序) │
├──────────────────────────────────────┤
│ 分类板块 2 │
├──────────────────────────────────────┤
│ ... │
└──────────────────────────────────────┘
适合内容丰富的博客、资讯类网站。
传统博客模式
标准的左图右文文章列表,与 Emlog 默认模板风格类似。每篇文章显示缩略图、标题、摘要、元信息。
卡片模式
图文卡片网格布局,每篇文章以卡片形式展示,适合图片较多的博客。
CMS 分类板块配置指南
在"首页个性设置"的 CMS 分类板块配置 中,每行定义一个板块,格式如下:
分类ID|布局样式|文章数量
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| 分类ID | 是 | 分类的数字 ID(可在后台分类管理中查看) |
| 布局样式 | 是 | default news live tutorial software 之一 |
| 文章数量 | 否 | 显示的文章数,默认 6 |
布局类型
| 布局 | 样式 | 适用场景 |
|---|---|---|
default |
左图右文列表 | 通用文章展示 |
news |
新闻资讯式:首篇大图 + 其余小条 | 新闻/资讯分类 |
live |
等宽网格卡片 | 图片/作品展示 |
tutorial |
侧边大卡 + 底部小卡 | 教程/文档分类 |
software |
横向卡片(图标 + 信息) | 软件/应用下载 |
示例
1|default|8
3|news|10
5|live|6
7|tutorial|4
9|software|12
上面配置表示:分类 1 以 default 布局显示 8 篇文章,分类 3 以 news 布局显示 10 篇,以此类推。板块按配置顺序从上到下排列。
提示
- 如果指定了不存在的分类 ID,该板块会被自动跳过
- 如果想临时隐藏某个板块但保留配置,可以在这行前面加
#注释掉
用户中心
模板内置完整的前台用户中心,登录后通过导航栏"个人中心"进入。
功能页面
| 页面 | 路由 | 功能 |
|---|---|---|
| 个人资料 | /user/profile |
查看和编辑昵称、签名、头像 |
| 账户设置 | /user/account |
修改密码、邮箱 |
| 我的微语 | /user/weiyu |
发表和管理微语 |
| 我的文章 | /user/articles |
查看已发布的文章列表 |
| 我的草稿 | /user/drafts |
管理草稿 |
| 我的评论 | /user/comments |
查看收到的评论 |
| 我的回复 | /user/replies |
查看发出的回复 |
| 每日签到 | /user/checkin |
签到获取积分 |
| 积分记录 | /user/credits_log |
查看积分变动明细 |
| 文章归档 | /user/archive |
按年/月浏览所有已发布文章(公开) |
| 标签列表 | /user/tags |
云/列表双模式浏览所有标签(公开) |
| 微语广场 | /user/tweets |
所有用户的公开微语流(公开) |
积分系统
模板内置完整的积分激励系统。
积分规则
| 行为 | 积分 | 说明 |
|---|---|---|
| 每日签到 | +2 | 每天一次,连续签到有额外奖励 |
| 连续签到奖励 | +1~5 | 连续天数越多,额外奖励越高 |
| 登录 | +1 | 每天首次登录 |
| 发表文章 | +5 | 每发布一篇文章 |
| 发表评论 | +2 | 每发表一条评论 |
| 回复评论 | +1 | 每回复一条评论 |
| 浏览文章 | +1 | 每浏览一篇文章(每天上限 10 次) |
注意: 积分系统相关数据库表在模板首次启用时自动创建。切换模板后重新启用本模板也会自动重建。
深色模式
模板支持完整的深色模式:
- 自动检测:首次访问时根据系统
prefers-color-scheme自动选择 - 手动切换:点击右下角的月亮/太阳按钮切换
- 持久保存:选择结果保存在
localStorage,下次访问自动生效 - 防闪烁:内联脚本在页面渲染前读取偏好设置,消除明暗切换时的白色闪烁
切换按钮位置:页面右下角固定位置浮动的圆形按钮。
社交分享
文章页底部提供社交分享按钮,支持:
| 平台 | 方式 |
|---|---|
| 微信好友 | 弹出二维码弹窗,微信扫码分享 |
| 微信朋友圈 | 弹出二维码弹窗,微信扫码分享 |
| 直接跳转 QQ 分享 | |
| QQ 空间 | 直接跳转 Qzone 分享 |
| 微博 | 直接跳转微博分享 |
| X (Twitter) | 直接跳转 X 分享 |
| 直接跳转 Facebook 分享 |
备选方案: 如果分享 API 加载失败,会自动复制链接到剪贴板作为后备。
文件结构
content/templates/blocks/
├── 404.php # 404 页面
├── README.md # 本说明文件
├── callback.php # 模板激活/停用回调
├── credits.php # 积分系统
├── custom_fields.php # 自定义字段模板
├── echo_log.php # 文章详情页
├── footer.php # 页脚 + 登录弹窗
├── functions.php # 辅助函数
├── header.php # 头部 + 导航栏
├── log_list.php # 首页文章列表
├── module.php # 模块函数库(widget、评论、导航等)
├── options.php # 模板设置配置文件
├── page.php # 独立页面模板
├── plugins.php # 插件注册(钩子)
├── pw.php # 加密文章密码输入页
├── side.php # 侧边栏
├── user.php # 用户中心入口
├── preview.jpg # 模板预览图
│
├── css/
│ ├── style.css # 主样式表
│ ├── user-center.css # 用户中心样式
│ └── markdown.css # Markdown 内容样式
│
├── js/
│ └── main.js # 主 JavaScript
│
├── images/ # 图片资源
│
└── user/ # 用户中心子页面 + 公开页面
├── _sidebar.php # 用户中心侧边导航
├── account.php # 账户设置
├── archive.php # 文章归档页(公开)
├── articles.php # 我的文章
├── checkin.php # 每日签到
├── comments.php # 我的评论
├── credits_log.php # 积分记录
├── drafts.php # 我的草稿
├── edit_article.php # 编辑文章
├── profile.php # 个人资料
├── replies.php # 我的回复
├── tags.php # 标签列表页(公开)
├── tweets.php # 微语广场(公开)
├── view_tweet.php # 微语详情页(公开)
└── weiyu.php # 我的微语
自定义与二次开发
CSS 变量
模板使用 CSS 自定义属性(变量)统一管理颜色和尺寸,在 style.css 的 :root 和 [data-theme="dark"] 中定义。修改变量值可快速全局换肤:
:root {
--primary: #0f52ba; /* 主题主色 */
--primary-light: #42a5f5; /* 主题浅色 */
--primary-dark: #0d47a1; /* 主题深色 */
--bg-card: #ffffff; /* 卡片背景 */
--text-primary: #1a1a2e; /* 主要文字色 */
--radius-lg: 16px; /* 大圆角 */
--shadow-md: 0 6px 20px rgba(15,82,186,0.12); /* 阴影 */
}
导航栏深浅色自适应
导航栏背景色通过 options.php 配置。模板会自动计算背景色亮度,当背景色较亮时自动添加 .header-is-light 类,确保文字在浅色背景上可读。
钩子(Hooks)
模板在以下位置预留了 Emlog 钩子:
| 钩子位置 | 调用代码 | 说明 |
|---|---|---|
<head> 结尾前 |
doAction('index_head') |
插入额外的 CSS/JS |
| 导航栏右侧 | doAction('index_navi_ext') |
扩展导航项 |
| 页脚 | doAction('index_footer') |
插入底部脚本 |
| 登录弹窗内 | doAction('login_ext') |
第三方登录扩展 |
| 注册弹窗内 | doAction('signup_ext') |
注册扩展 |
| 文章内容输出 | addAction('article_content_echo', ...) |
修改文章内容 |
常见问题
Q: 启用模板后页面空白怎么办?
检查是否已安装并启用了 TplOptions 插件。本模板依赖该插件提供模板设置功能。
Q: 如何更换首页轮播图?
在后台 → 模板设置 → 首页公共设置 → 轮播图文章 ID 中填写 3 篇文章的 ID。轮播图会使用这些文章的封面图片。
Q: 如何添加更多的快捷入口?
目前支持 4 个快捷入口。如需增加,编辑 options.php 和 log_list.php 中添加对应的配置项和渲染代码。
Q: 积分系统不工作怎么办?
确认模板已正确激活(检查 callback.php 是否执行了 callback_init())。如果数据库表未自动创建,可手动执行 credits.php 中的 credits_init() 函数,或在后台重新保存一次模板。
Q: 如何完全禁用积分系统?
在后台 → 插件/模板中移除 credits.php 的钩子注册(编辑 plugins.php 注释相关行),或直接删除 credits.php 文件。
Q: 深色模式切换按钮不显示?
检查浏览器是否禁用了 JavaScript。深色模式切换依赖 JS 实现。如果按钮被其他元素遮挡,检查 back-to-top 按钮的 z-index。
Q: 如何更新 Font Awesome 图标版本?
修改 header.php 和 pw.php 中 font-awesome CDN 链接的版本号(当前为 6.5.1),同时更新 css/all.min.css 本地后备文件。
Q: CMS 分类板块不显示内容?
确认:
- 对应分类下有已发布的文章
- 分类板块配置格式正确(
分类ID|布局|数量) - 分类 ID 存在(可在后台分类管理中查看)
更新日志
v2.2.0
- 新增: 文章归档页
/user/archive— 可折叠年/月/文章三级结构,直接 SQL 查询显示每篇文章标题与分类 - 新增: 标签列表页
/user/tags— 云/列表双模式切换,每标签独立 RGB 配色 - 新增: 微语广场
/user/tweets— 微博风格卡片布局,展示所有用户公开微语,支持分页浏览 - 新增: 微语详情页
/user/tweets?view=ID— 完整微语内容、全部回复、回复表单、动态页面标题与描述 - 新增: 微语回复系统 — 登录用户直接回复,未登录用户可填写昵称+邮箱回复;支持 @提及回复、回复展开/收起
- 新增: 微语点赞/取消点赞功能
- 新增: 发表微语表单(登录用户,管理员和编辑角色)
- 新增: 微语后台设置 — 侧边栏显示/隐藏、每页显示数量、侧边栏位置(左侧/右侧)
- 新增: 页脚快捷导航 — 模板设置可自由添加/删除/排序链接,
|分隔显示在版权区下方 - 优化: 批量加载作者与回复作者信息,避免 N+1 查询问题
- 优化: 归档页和标签页复用独立页面白色卡片容器,视觉统一
- 优化: 完整深色模式与移动端响应式适配
v2.1.5
- 优化: 文章点赞/点踩功能改为后台可设置显示/隐藏(模板设置 → 文章页设置)
- 新增: 自定义网盘下载新增"GitHub平台"选项
- 修复: 首页 Hero 区"最新文章"列表未按后台全站置顶排序的问题
v2.1.4
- 新增: 文章点赞/点踩功能 — 支持 Emlog Pro 2.6.16+ 原生 dislike 机制,前端异步交互
- 新增: 自定义网盘下载增加 UC 网盘选项
- 新增: 自定义字段新增演示地址字段,前台独立展示入口按钮
- 优化: 点赞/点踩区块位置调整至标签之后、版权信息之前
- 优化: CSS/JS 缓存版本号更新
v2.1.3
- 新增: 网站背景图片自定义上传 — 后台模板设置 → 全局设置可自由更换全站背景
- 新增: 网站圆角/扁平风格切换 — 后台可一键切换全站圆角或直角风格
- 优化: 全站圆角值统一为 CSS 变量管理体系(
--radius-sm/md/lg/xl),便于二次开发 - 修复: Markdown 表格列宽不均衡 — 修复
style.css与markdown.css冲突的表格规则,移除th:last-child { width: 100% },单元格文本自动换行 - 优化: CSS/JS 缓存版本号更新
v2.1.2
- 修复: 个人中心退出登录按钮点击后未实际注销 — 修复表单提交与跳转的竞态条件
- 优化: 退出登录改用直接链接,简化流程
v2.1.1
- 修复:
$blogname未定义错误,改用Option::get('blogname')(header/footer) - 修复: 文章详情页和单页评论区内容不显示 — 适配 Emlog Pro 新版
$comments数组结构 - 修复: 评论 "Undefined offset" 及空指针报错 — 增加 null 安全检查
- 修复: PC 端导航栏误显示汉堡菜单图标 — 恢复丢失的
.menu-toggleCSS 选择器 - 修复: 手机端横向滚动条 — CSS Grid 溢出控制
- 优化: 手机端最新文章区由隐藏改为自适应单列布局(轮播 + 文章列表)
- 优化: 手机端快捷入口区多余空白间距清理
- 优化: 手机端轮播高度、列表内边距、排版字号适配
- 优化: 移除约 87 行死 CSS(深色模式冗余、未用响应式规则)
- 优化: 新增 TplOptions 兼容性检查,防止白屏
- 优化: 新增 RSS 订阅链接
- 文档: 新增 README.md 详细说明文档和 intro.md 简介
v2.1.0
- 集成积分系统(签到、发文、评论积分)
- 完整用户中心(10 个功能页面)
- 新增三种首页模式(CMS / 传统 / 卡片)
- 新增 CMS 分类板块自定义布局
- 完整深色模式支持
- 社交分享(7 个平台)
- 微信二维码分享
- 文章版权信息
- Font Awesome 6.5.1 图标
- 响应式设计全面优化
- 安全响应头
- CDN 后备机制
- 无障碍支持(跳转链接、aria、reduced-motion)
v2.0.0
- 初始发布
评论区 (3)
发表评论
共有 3 条评论
这个模板功能太强了,三种首页模式切换简直是选择困难症的救星!最近正好想给博客换个风格,感觉CMS模式很适合做内容站,收藏了。
刚接触Emlog,想试试这个模板,请问那个TplOptions插件是必须装的吗?如果没装会有什么提示?还有CMS模式下的分类板块配置复杂吗,新手能搞定不?