3.8 KiB
3.8 KiB
多栏目文章新版源码复核
参考目录:C:\Users\Xing\Desktop\zibll。本次只对照新版 zib_widget_ui_tab_post,没有引入旧版模块、兼容分支或配置迁移,也没有进行浏览器截图或真实视觉效果验收。
参考依据
inc/widgets/widget-posts.php:zib_widget_ui_tab_post()、zib_widget_ui_tab_post_ajax()及新版字段声明。默认 mini、6 篇文章,支持 list/card/mini,首栏目直出、其他栏目按需加载,各栏目保存自己的内容。inc/functions/zib-posts-list.php:zib_posts_mini_while()、zib_posts_mian_list_list()、zib_posts_mian_list_card()。mini 独立输出紧凑行,list 禁用多图/无图变体;文章作者使用带主页链接及角标的头像框。inc/csf-framework/classes/widget-options.class.php:统一布局外壳、widget-container、模块间距、日夜背景和入场动画。css/main.css:mini 两栏/全宽三栏/侧栏与移动端单栏、栏目导航、文章与分页间距;标题沿用 Bootstrap 默认 500 字重,显式加粗配置另行生效。inc/functions/functions.php:追加分页的末页边界,以及数字分页的首尾、相邻页、省略号、上一页/下一页和跳转。
修复内容
- 将外壳、骨架和内容的样式选择统一到
PostRenderer::style(),缺省多栏目文章始终使用 mini,后续 AJAX 页面沿用相同规则。 - 新版多栏目文章走统一参考外壳,补回全宽区域的居中限宽容器,并应用 PC/移动端额外间距、日夜背景和动画。
- 小工具显式关闭页面上下文及无间距布局。修正共享渲染器对显式
no_margin=false的处理,避免首页的无间距设置改写小工具;普通页面未显式指定时仍继承站点设置。 - 修正公共标题排版对小工具的覆盖,恢复默认标题字重、mini 文本颜色、行高及紧凑行的对齐方式,同时保留显式加粗。
- 作者信息改用现有统一头像框,恢复主页链接与角标。清理不再消费的裸头像 URL 字段;mini 日期按参考主题使用列表排序的时间来源。
- 数字分页补回首尾、上一页/下一页、省略号、桌面/移动端不同的窗口及跳页;恢复参考分页尺寸,避免公共分页样式将按钮和跳转框撑大。
- 追加分页到末页不再生成下一页按钮;请求失败重试保留失败页及追加方式,避免覆盖已有文章。
- 栏目切换保留已加载内容和页码;溢出导航按实际元素矩形居中,支持键盘切换;AJAX 成功后初始化新文章的图片和公共交互。
- 移除重复的 Bootstrap Tab 触发属性、失效的旧栏目选择器及未使用的
widget_style配置字段。新版栏目只有一个交互处理入口。
验证方式
tab-posts-render-harness.php加载实际文章数据收集、配置和 markup 模块,生成有文章的 default/mini/list/card、分页、移动端及完整前端外壳输出。没有使用空查询或假文章渲染器代替真实内容。tab-posts-render-behavior.test.cjs检查上述输出、未归一化参数、页面上下文隔离、分页边界、头像及时间来源。tab-posts-runtime.test.cjs在 Node VM 中运行实际前端脚本,验证栏目缓存、键盘焦点、导航滚动、追加重试、跳页及与旧运行时事件隔离。tab-posts-style-contract.test.cjs检查覆盖公共排版/分页样式所需的局部选择器及桌面、移动端样式契约。- 验证范围为源码、渲染输出、脚本行为和构建检查;不将这些检查描述为像素级视觉验收。
结果:仓库全部 Node 测试 785/785 通过(包含本次新增 24 项);小工具 PHP 测试 139 条断言通过;修改的 7 个 PHP 文件语法检查、前端 JS 语法检查、CSS 解析、后台 SPA 构建及差异空白检查通过。