海洋CMS如何添加自定义字段?扩展字段教程。
结论:海洋CMS添加自定义字段有两条路——后台「系统 → 自定义字段(部分版本叫扩展字段)」可视化添加,适合 90% 的场景;后台没有入口或需要批量加字段时,直接对数据表执行 ALTER TABLE 再在模板里调用。两条路走完,前台都能用 {$vod.字段名} 取值。
海洋CMS 后台在哪里添加自定义字段?
进入后台后,路径是「系统」菜单下的「自定义字段」或「扩展字段管理」,点「添加字段」即可。不同版本的菜单中文名会略有差异,找不到时在后台顶部搜索框搜「字段」两个字,一般都能定位到。
添加时需要填四样东西,其中三项决定了字段能不能正常工作:
| 填写项 | 说明 | 示例 |
|---|---|---|
| 所属表 | 字段挂在哪张数据表上 | 视频主表 sea_vod、视频副表 sea_vod_data、文章表 sea_art |
| 字段名 | 英文小写,模板调用的唯一标识 | vod_douban |
| 字段标题 | 后台录入界面显示的中文名 | 豆瓣评分 |
| 字段类型 | 决定录入控件 | 单行文本 / 多行文本 / 下拉框 / 单选 / 多选 / 图片 / 日期 |
结论:视频类字段统一挂在 sea_vod 上,不要挂副表,否则前台详情页和列表页取值都会多绕一层。
字段名和字段类型应该怎么选?
字段名的命名规则只有一条:必须以字母开头、只用小写字母和下划线、不能和系统已有字段重名,建议统一带 vod_ 前缀方便识别。
字段类型决定了后台录入时出现什么控件,也决定了数据库字段类型。常见对应关系:
- 单行文本 →
VARCHAR(255),适合短标签、外链、编号 - 多行文本 →
TEXT,适合剧情简介、备注 - 下拉框 / 单选 →
VARCHAR(255),适合「是否完结」这类固定选项 - 多选 →
TEXT,用逗号分隔存储 - 图片 →
VARCHAR(255),存图片地址而不是图片本身 - 日期 →
DATE或INT时间戳
注意点:如果字段已经添加过并在前台有数据,不要再去改字段名,改了之后模板里的调用变量会全部失效,需要重新改模板。
前台模板怎么调用自定义字段?
后台保存字段后,海洋CMS 会自动在对应数据表里 ALTER TABLE 加上这一列,前台模板直接用 {$vod.字段名} 就能输出。
视频详情页(通常是 template/模板名/html/vod_detail.html)写法:
评分:{$vod.vod_douban}
列表页(vod_list.html、index.html 等)同样写 {$vod.vod_douban},但有一个坑:海洋CMS 部分版本的列表查询语句是写死 SELECT 字段的,新字段不在其中。展开 include/ 目录下的查询代码,把 vod_douban 加进那段的 SELECT 列表里,列表页就能读到值了。
后台没有自定义字段入口,怎么手动加?
结论:老版本或精简版后台可能没有可视化入口,此时用 phpMyAdmin 或命令行直接加列即可,效果完全一样。
ALTER TABLE `sea_vod`
ADD `vod_douban` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '豆瓣评分';
执行前先备份数据库。加完之后,后台的视频编辑页不一定自动出现这个输入框——需要同步在后台字段配置表(海洋CMS 里存放自定义字段定义的配置项)里补一条记录,或直接改用「手动填数据 + 模板写死调用」的方式。
加完字段前台不显示,先查这三点
第一,字段加在 sea_vod 还是 sea_vod_data,模板取值路径不同,主表直接 {$vod.xxx}。第二,字段名大小写和拼写是否与模板里完全一致,多一个下划线都不会出值。第三,模板缓存是否更新——海洋CMS 后台「系统 → 更新缓存」点一下,再刷新前台页面。
另外,字段值为空时前台会输出空白,做判断可以写 {if $vod.vod_douban}...{/if},避免页面上出现「评分:」后面跟一片空白。
总结一句:后台加字段 → 填英文小写字段名 → 选准所属表 → 模板用 {$vod.字段名} 调用 → 更新缓存。手动 SQL 只是同一件事的另一条路径,加完之后调用方式没有任何区别。
原文链接:https://www.gj0.com/thread-163.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。