苹果CMSV10播放页标签调用及播放器调用教程
苹果CMS V10播放页主要用于展示当前影片的播放内容、播放线路以及剧集信息。播放页可以通过当前影片数组 $obj 获取影片基础数据,同时结合 $param.sid 和 $param.nid 获取当前播放组以及当前播放集的信息。
苹果CMS V10播放页模板文件
播放页模板文件通常位于:
html/vod/play.html
页面aid:15
当前影片数组:
$obj必带参数:
id
播放页和影片详情页一样,都可以使用当前影片的 $obj 数组。影片基础字段可以参考苹果CMS V10视频字段说明,也可以在模板中使用以下方式查看当前影片的完整数据:
{:print_r($obj)}需要注意的是,播放地址、播放线路、剧集列表以及剧情等数据通常属于数组结构,需要根据实际数据进行读取和遍历。
苹果CMS V10播放页标签
以下是播放页中常用的播放组、剧集以及播放器相关数据调用方式:
{$param.sid} 当前播放组序号
{$param.nid} 当前集数序号
{$obj.player_info.link_next} 下一页地址,最后一页时指向当前页链接
{$obj.player_info.link_pre} 上一页地址,第一页时指向当前页链接
{$obj['vod_play_list'][$param['sid']]} 获取当前播放组数据
{$obj['vod_play_list'][$param['sid']]['player_info']} 播放器信息
{$obj['vod_play_list'][$param['sid']]['server_info']} 服务器组信息
{$obj['vod_play_list'][$param['sid']]['url_count']} 总集数
{$obj['vod_play_list'][$param['sid']]['urls']} 集数信息
{$obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]} 当前集数信息
{$obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]['name']} 当前集数名称
{$obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]['url']} 当前集数URL播放组与剧集参数说明
$param.sid:当前播放组的序号,用于确定当前播放线路。$param.nid:当前剧集的序号,用于确定当前播放的是第几集。vod_play_list:当前影片的播放组数据。player_info:当前播放组对应的播放器信息。server_info:当前播放组对应的服务器信息。url_count:当前播放组中的剧集数量。urls:当前播放组的剧集数据集合。name:当前剧集名称。url:当前剧集播放地址。
苹果CMS V10下载页调用方法
下载页获取播放组和剧集数据的方式与播放页基本一致。如果需要在下载页获取对应数据,可以将 vod_play_list 修改为 vod_down_list,其他参数结构按照当前版本实际数据保持一致。
{$obj['vod_down_list'][$param['sid']]}
{$obj['vod_down_list'][$param['sid']]['urls']}
{$obj['vod_down_list'][$param['sid']]['urls'][$param['nid']]}实际使用时建议先通过 print_r($obj) 查看当前页面返回的数据结构,再根据实际字段进行调用。
苹果CMS V10播放器调用方法
播放页需要通过播放器相关标签输出播放器数据,以下两个标签通常需要配合使用:
{$player_data} 播放数据
{$player_js} 加载播放器{$player_data} 用于输出播放器所需的数据内容,{$player_js} 用于加载播放器相关的JavaScript代码。具体播放器表现取决于后台播放器配置以及当前模板的调用方式。
获取关联视频和关联文章
苹果CMS V10可以根据当前影片的关联数据,调用与当前影片相关的视频和文章。例如,可以使用 $obj.vod_rel_vod 获取关联视频ID,并通过 maccms:vod 标签调用对应的视频内容。
<h2>与<strong>“{$obj.vod_name}”</strong>关联的视频</h2>
<ul class="img-list dis">
{maccms:vod num="6" ids="'.$obj['vod_rel_vod'].'" order="desc" by="time"}
<li>
<a href="{:mac_url_vod_detail($vo)}" title="{$vo.vod_name}">
<img src="{:mac_url_img($vo.vod_pic)}" alt="{$vo.vod_name}"/>
<h2>{$vo.vod_name}</h2>
<p></p>
<i>{$vo.vod_version}</i>
<em></em>
</a>
</li>
{/maccms:vod}
</ul>
<h2>与<strong>“{$obj.vod_name}”</strong>关联的文章</h2>
<ul class="img-list dis">
{maccms:art num="6" ids="'.$obj['vod_rel_art'].'" order="desc" by="time"}
<li>
<a href="{:mac_url_art_detail($vo)}" title="{$vo.art_name}">
<img src="{:mac_url_img($vo.art_pic)}" alt="{$vo.art_name}"/>
<h2>{$vo.art_name}</h2>
<p></p>
<i>{$vo.vod_from}</i>
<em></em>
</a>
</li>
{/maccms:art}
</ul>其中,$obj.vod_rel_vod用于关联视频,$obj.vod_rel_art用于关联文章。循环中的 $vo 表示当前查询到的视频或文章数据。
苹果CMS V10版权跳转
如果后台配置了影片的跳转URL,可以在详情页或播放页根据 $obj.vod_jumpurl 判断是否需要执行跳转。
<script>
{if condition="$obj.vod_jumpurl neq ''"}
location.href='{$obj.vod_jumpurl}';
{/if}
</script>上述代码会判断当前影片的 vod_jumpurl 是否为空。如果存在跳转地址,则通过JavaScript跳转到指定地址。
苹果CMS V10按剧集进行跳转
如果需要针对某一集单独设置跳转地址,可以在对应剧集URL中使用约定的标记,例如将需要跳转的地址设置为 jump://baidu.com。播放页再判断当前剧集URL是否包含 jump:。
<script>
{if condition="strpos($obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]['url'],'jump:')!==false"}
location.href='{$obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]['url']|str_replace="jump:","http:",###}';
{/if}
</script>这种方式可以根据当前的 sid 和 nid 判断具体播放组中的具体剧集,因此不会影响没有设置跳转标记的其他剧集。
苹果CMS V10 iframe播放器页面
苹果CMS V10还可以使用独立的iframe播放器页面。该页面主要用于特定播放权限场景,例如后台开启收费播放或试看功能时使用。
模板文件:
html/vod/player.html页面aid:无
当前影片数据:
$obj播放器数据:
$player_data播放器脚本:
$player_js
iframe播放器页面的参数与播放页存在较多相似之处,同样需要使用 {$player_data} 和 {$player_js} 输出播放器。
iframe播放器完整示例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
<title>iframe播放器</title>
<style>*{word-wrap:break-word;outline:none} html,body{width:100%;height:100%;background:#000;color:#fff;}
.player_popeom{ width:500px;height:150px; position:absolute;text-align:center; top:50%;left:50%;margin:-75px 0 0 -250px; }
.player_popeom a{ padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px;color:#fff;background-color:#5cb85c;border-color:#4cae4c; }
</style>
<script src="{$maccms.path}static/js/jquery.js"></script>
<script>var maccms={"path":"__ROOT__","mid":"{$maccms['mid']}","url":"{$maccms['site_url']}","wapurl":"{$maccms['site_wapurl']}","mob_status":"{$maccms['mob_status']}"};</script>
</head>
<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
{$player_data}
{$player_js}
{if condition="$popedom.code gt 1"/}
<div class="player_showtry" style="display:none;">
<div class="player_box">
<div class="player_popeom">
{if condition="$obj.vod_points_play eq 0"}
<p>试看{$popedom.trysee}分钟结束,完整观看本影片需要升级会员组,请升级后观看。</p>
<small>提示:购买VIP会员组,享受超级权限,谢谢支持。</small>
<p><a href="{:url('user/index')}" target="_blank">会员中心</a> <a href="{:url('user/upgrade')}" target="_blank">马上升级</a></p>
{else/}
<p>试看{$popedom.trysee}分钟结束,完整观看本影片需要花费{$obj.vod_points_play}积分,请支付后观看。</p>
<small>提示:一次支付,永久观看,不重复扣费,谢谢支持。</small>
{if condition="$user.group.group_id eq 1"}
<p><a href="{:url('user/login')}" target="_blank">马上登录</a></p>
{else/}
<p><a href="{:url('user/buy')}" target="_blank">马上充值</a> <a href="javascript:;" onclick="window.parent.MAC.User.BuyPopedom(this)" data-id="{$obj.vod_id}" data-sid="{$param.sid}" data-nid="{$param.nid}" data-type="4" data-mid="1">确认购买</a></p>
{/if}
{/if}
</div>
</div>
</div>
<script>
window.setTimeout(function(){
$('.MacPlayer').html($('.player_showtry').html());
},1000*60*{$popedom.trysee});
</script>
{/if}
</body>
</html>iframe播放器代码说明
示例中通过 {$player_data} 和 {$player_js}初始化播放器,同时根据 $popedom 和当前影片的播放积分设置控制试看及收费提示。
$popedom.code:用于判断当前播放权限状态。$popedom.trysee:试看时长相关数据。$obj.vod_points_play:当前影片每集播放所需积分。$obj.vod_id:当前影片ID。$param.sid:当前播放组序号。$param.nid:当前剧集序号。$user.group.group_id:当前用户组相关信息。MAC.User.BuyPopedom():用于调用父页面中的购买播放权限方法,实际效果取决于当前模板和程序脚本。
播放页模板开发注意事项
修改播放页前建议备份原来的
html/vod/play.html文件。使用复杂数组字段前,建议通过
{:print_r($obj)}查看实际返回结构。$param.sid和$param.nid分别对应播放组和剧集序号,调用剧集数据时需要保持对应关系。播放地址、下载地址等数据属于动态数组结构,不建议仅根据固定示例猜测字段层级。
如果修改播放器代码后出现无法播放的问题,应检查播放器配置、播放组、播放器JS以及浏览器控制台报错。
收费播放和试看功能需要结合苹果CMS后台权限设置以及模板中的播放器代码共同实现。
总结
苹果CMS V10播放页主要通过 $obj 获取当前影片数据,通过 $param.sid 和 $param.nid定位当前播放组与当前剧集,再结合 vod_play_list 获取具体播放信息。
在模板开发过程中,掌握 $player_data、$player_js、vod_play_list、vod_down_list 等核心数据和标签,可以完成播放线路、剧集列表、关联内容、试看及收费提示等功能的调用。
