主页整改-商家页底部改造方案
主页整改:商家页底部(Footer)改造方案
目标
按需求完成两件事:
- 商家详情相关页面不再使用全站底部
themes/default/Home/public/footer.html,而是使用商家底部模板themes/default/Home/shop/shop_footer.html(需求里写的是shop_footer.htm,项目内实际文件为shop_footer.html)。 - 将原全站底部的这一块信息(“联系我们 / 公司信息 / 公司合作 / 用户帮助”)在商家页全部替换为“商家信息版展示”,要求不出现站点通用信息(如固定客服电话、免费长途、站点服务协议等),改为展示当前商家的联系方式/地址/营业时间/公司类型,以及商家相关功能入口(如认领、预约、收藏、AI 等)。
说明:商家页判断口径为 ThinkPHP 模板中的$ctl eq 'shop'且页面已注入$detail(含shop_id)。
现状梳理
1) 全站底部模板
- 文件:
themes/default/Home/public/footer.html - 内容:包含你描述的四列信息块(联系我们、公司信息、公司合作、用户帮助)以及右侧二维码、版权、回到顶部等。
2) 商家页“底部模块”模板
- 文件:
themes/default/Home/shop/shop_footer.html - 当前包含:公司地图(百度地图脚本)、公司二维码、预约弹窗等(以及我们后续将追加“商家信息版 footer 信息块”)。
- 引用位置:各商家详情子页均
<include file="shop:shop_footer"/>,但很多页面同时又<include file="public:footer"/>,导致商家页底部出现两套。
改造方案(推荐实现)
A. 商家页改为只引入 shop_footer
A1. 修改点
- 在
themes/default/Home/shop/*.html中:
- 对于商家详情/子页(有 $detail 的页面):删除或替换底部的 <include file="public:footer"/>,只保留 <include file="shop:shop_footer"/>。
- 对于商家列表页(如 themes/default/Home/shop/index.html):保持使用 public:footer,不改为 shop_footer。
A2. 为什么列表页不改
shop_footer.html 依赖 $detail/$ex 等商家详情变量,并包含地图/二维码/预约等组件;列表页没有这些变量,强行 include 会导致:
- 变量为空导致页面展示异常
- 或出现模板/JS 依赖错误
因此列表页继续用 public:footer 更安全。
B. 在 shop_footer.html 内新增“商家信息版 footer 信息块”
B1. 要替换的“信息块范围”
按需求,这一块替换为“商家信息版”,不再沿用站点通用文案。推荐按列组织为:
- 联系我们(商家)
- 联系电话:优先 detail.mobile,其次 detail.tel
- 公司地址:detail.addr
- 营业时间:ex.business_time
- 在线客服:优先使用商家 detail.qq(QQ 咨询链接),无则显示“暂无”
- 公司信息(商家相关入口)
- 关于我们(shop/about)
- 公司主页(shop/detail)
- 人才招聘(shop/tender)
- 相册(shop/photo)
- 商家服务(替代“公司合作/入驻”等站点项)
- 公司类型:从 Shopgrade.grade_name 获取
- 认领公司:detail.recognition==0 时提供“认领公司”入口
- AI助手:shop/ai
- 加入收藏:shop/favorites
- 更多入口(替代“用户帮助/协议”等站点项)
- 我要点评:shop/ping
- 我要预约:shop/yuyue2
- 返回公司首页:shop/detail
B2. 字段与链接映射(商家维度)
- 关于我们:
shop/about?shop_id={detail.shop_id} - 联系我们:
shop/detail?shop_id={detail.shop_id}(或将来新增专门的联系页) - 人才招聘:
shop/tender?shop_id={detail.shop_id} - 免责声明:暂用站点系统文章
home/article/system?content_id=6 - 广告合作:暂用站点系统文章
home/article/system?content_id=5 - 公司后台:
merchant/login/index(保持现有) - 服务协议:站点系统文章(当前项目用
content_id=2) - 退款承诺:当前项目为
/(若后续有专页再替换)
B3. 站点项替换原则
- 任何“站点通用”入口(公司入驻、广告合作、服务协议、退款承诺等)在商家页底部不再出现。
- 统一替换为商家维度信息与入口:
- 信息类:电话/地址/营业时间/公司类型
- 行为类:认领/预约/收藏/AI/点评/返回公司主页
修改清单(文件级)
必改
themes/default/Home/shop/shop_footer.html
- 追加“商家信息版 footer 信息块”
- 保持原地图/二维码/预约弹窗不受影响(除非你后续要求删除地图块)
- 商家详情子页模板(删除
public:footer)
- themes/default/Home/shop/detail.html
- themes/default/Home/shop/about.html
- themes/default/Home/shop/coupon.html
- themes/default/Home/shop/goods.html
- themes/default/Home/shop/news.html
- themes/default/Home/shop/ping.html
- themes/default/Home/shop/photo.html
- themes/default/Home/shop/tuan.html
- themes/default/Home/shop/tender.html(若存在同样 footer 结构)
- themes/default/Home/shop/worker.html(若存在同样 footer 结构)
- themes/default/Home/shop/ai.html(需要把 public:footer 改为 shop:shop_footer)
不改(保持全站 footer)
themes/default/Home/shop/index.html(公司列表页)
不建议做的事情(容易误伤)
- 不要把
themes/default/Home/public/footer.html“整个替换成 shop_footer.html”,因为它是全站入口,会影响非商家频道页面。
风险与注意事项
- 重复 footer:必须确保商家子页底部只保留一个 include(
shop:shop_footer)。 - 变量依赖:
shop_footer.html依赖$detail/$ex/$CONFIG,仅用于商家详情页安全。 - 缓存/编译模板:线上可能存在
.rpk/runtime 缓存,发布后需清理模板缓存或强刷。 - 样式一致性:复用
footer-theme.css,但若shop_footer页面已在上层引入样式,需避免重复加载引起覆盖(可接受,影响很小)。
验证清单(上线前后)
- 打开
shop/detail/shop_id/{id}.html
- 页面底部只出现一套 footer 信息块
- 文案为你给的“客服电话 05504988811 …”
- 打开
shop/about / shop/news / shop/goods / shop/ai等子页
- 同样只出现商家版 footer 信息块
- 打开
shop/index(公司列表)
- 仍是全站 footer(不受影响)
- 验证“公司入驻”关闭时
- 显示“公司类型:xxx”
回滚方案
- 恢复各商家子页末尾的
<include file="public:footer"/> - 从
shop_footer.html中移除新增的“商家信息版 footer 信息块”
