说实话,每次看到有朋友在群里问“演员模板到底怎么搞”,我都想直接甩一份操作手册过去,不是不想回答,而是这个问题真的不是一两句话能说清,今天咱们就把它彻底拆开,按步骤走,你只要跟着做,哪怕从没碰过苹果CMS,也能把演员列表页和演员详情页搭起来。

苹果CMS演员模板手把手搭建,从零做一个独立的演员展示页,新手也能一次成功
先说清楚,这篇教程的适用人群:你正在使用苹果CMS(V10),想给网站加上独立的演员展示页面,让每个演员有自己的URL、海报、介绍和参演影片;你可能不懂PHP,也不太懂模板语法,但你会后台点鼠标、会改文本文件;你手头有FTP或文件管理器权限,能操作服务器上的模板目录,如果你属于这类人,那下面这些内容就是为你准备的,不是的话,先学一下基础再回来。
别急着去改代码,咱们先理清“演员模板”在苹果CMS里到底长什么样,苹果CMS默认有演员模块,后台可以维护演员姓名、头像、简介,甚至关联影片,但前台默认可能没启用独立的演员入口,或者模板里压根没做展示页面,所以我们要做的,其实就是“补全”这两个文件:演员列表页actor.html,和演员详情页actor_detail.html,把它们放到当前模板目录下,再在后台开启对应路由,前台就能访问了。
完整搭建步骤,一步别跳
第一步:备份你的模板目录,用FTP打开 /template/你的模板名/,把整个目录复制一份到本地,别嫌麻烦,后面你改错了还有后悔药,否则改坏了就只能对着白屏哭。
第二步:新建演员列表页,在模板目录下新建一个文件,命名为 actor.html,打开它,先粘贴一个最基础的空壳HTML结构,然后插入苹果CMS的列表标签,我用的是官方最通用的写法:
{maccms:actor num=20 paging=yes}
<div class="actor-item">
<a href="{:mac_url('actor/info',['id'=>$vo['actor_id']])}">
<img src="{$vo.actor_pic}" alt="{$vo.actor_name}">
<p>{$vo.actor_name}</p>
</a>
</div>
{/maccms:actor}
<div class="pagelist">{__PAGING__}</div>
别管样式,先让数据出来,这段代码的意思是:每页显示20个演员,循环输出他们的头像和名字,下面再显示分页,如果你连这个标签都看不懂,也没关系,后面我会在“配置要点”里解释。
第三步:新建演员详情页,同样在模板目录下创建 actor_detail.html,这个页面用来展示单个演员的完整信息,核心代码大概是这样:
<h1>{$obj.actor_name}</h1>
<img src="{$obj.actor_pic}" alt="{$obj.actor_name}">
<div class="bio">{$obj.actor_blurb}</div>
<div class="films">
<strong>参演影片:</strong>
<ul>
{maccms:vod actor="'.$obj['actor_name'].'" num=10}
<li><a href="{:mac_url('vod/detail',['id'=>$vo['vod_id']])}">{$vo.vod_name}</a></li>
{/maccms:vod}
</ul>
</div>
注意看那个 actor 参数,它是字符串,等于当前演员的姓名,这样就能把该演员相关的影片查出来,如果你想让苹果CMS自己识别,也可以直接用 {:mac_url('vod/index',['actor'=>$obj['actor_name']])} 这种链接方式。
第四步:后台开启演员模块,登录苹果CMS后台,依次打开“系统” → “网站参数” → “核心设置”,找到“演员伪静态”或“演员模块”,确认它是开启状态,不同版本位置略有差异,你搜“演员”就能找到。
第五步:配置路由规则,这一步让前台能够访问 你的域名/actor.html 和 你的域名/actor/show/id/1.html 这类地址,如果你用的是V10自带伪静态,一般不用额外改,但你要检查一下“路由配置”里有没有演员相关规则,没有的话,手动加一条:
actor/page/:index.html => actor/index actor/show/:id.html => actor/info
实际规则取决于你的服务器环境,nginx、apache或IIS写法都不同,最简单的方法:在后台“伪静态”页面,点“生成”一次,再测试。
第六步:清缓存,看效果,后台“缓存更新”里,把所有缓存都清了,然后访问前台域名看看,如果页面出来了,但样式很丑,那无所谓,先看数据通不通,数据通了,再把你的CSS套上去。
配置要点,这几个坑别踩
第一,模板标签的字符要严格用半角,很多新手把 或 换成全角,页面直接白屏,一旦发现白屏,先检查标签字符。
第二,num=20 是每页数量,paging=yes 是开启分页,分页标签 {__PAGING__} 一定要放在标签循环外面,否则会报错或者分页错位。
第三,图片地址问题,如果你在后台填演员头像用的是相对路径,前台可能显示不出来,建议在后台设置里把图片URL模式改成“完整地址”,或者给演员头像拼接上 {:mac_url('actor/index')} 之类的绝对路径。
第四,关联影片时,演员姓名必须和影片资料里的演员名完全一致,差一个空格都查不出来,我见过有人填“刘德华 ”(带空格)而影片里是“刘德华”,结果详情页永远是空的,这是最常见的踩坑,没有之一。
第五,缓存更新千万别忘,你改了模板文件,后台如果开了模板编译缓存,它不会立刻生效,必须去“缓存更新”里把编译缓存清掉,再刷新页面,否则你改了下划线,前台还是旧样子。
第六,伪静态规则生成后,如果访问出现404,别慌,先切回“动态模式”看看能不能访问,如果能,说明伪静态规则写错了;如果不能,说明你的路由配置有问题,动态模式下的标准地址是 index.php/actor/index.html 这类,先确认这个能通,再谈伪静态。
常见踩坑提醒,都是血泪经验
再啰嗦几句,很多人以为有了演员模板,就一定要改数据库,其实苹果CMS的演员模块是内置的,你只要在后台“演员”菜单里添加演员,然后去“影片”编辑里把演员名填进去,再配合我上面写的模板标签就自动关联了,不需要自己建表、写接口,千万别画蛇添足。
还有,有些模板自带的actor.html可能是旧版标签,{$actor.actor_name} 这种,那是在循环外面取单个数据的写法,和 {$vo.actor_name} 完全不一样,你如果复制别人的代码,一定要看清楚循环变量是 $vo 还是 $actor,否则就会报“变量不存在”的错误。
最后提醒一下,演员模板的样式不是最重要的,先把列表页和详情页的数据调通,再考虑怎么设计得好看,很多新手一上来就研究CSS,结果数据一个都出不来,顺序反了,效率极低。
你跟着上面六个步骤走一遍,二十分钟内应该能搞定,如果中间遇到问题,按照我列的要点逐一排查,实在不行,就把后台截图和模板代码发出来,大家一起看,别怕错,错一次就长一次记性,下次再有人问你“演员模板怎么搭”,你就可以直接把这篇教程甩给他了。
发表评论