苹果CMS开发

苹果CMS V10除了常规播放页面之外,还提供独立的下载页面模板。下载页整体参数与播放页基本保持一致,主要区别在于下载页面会针对 vod_down_list 下载数据进行单独处理,同时可以针对下载功能设置独立的付费权限。

一、苹果CMS下载页面基本信息

下载页面模板文件位于:

html/vod/play.html

页面对应的 AID 值为:

16

页面后端输出的数据对象为 $obj,访问具体影片数据时需要携带 id 参数。

  • 模板文件:html/vod/play.html

  • 页面 AID:16

  • 数据对象:$obj

  • 必带参数:id

二、苹果CMS下载页与播放页的区别

苹果CMS下载页面的整体参数与播放页面基本一致,主要是将其中一个独立页面用于处理视频下载功能。

下载页面会对 vod_down_list 数组进行单独处理,用于读取当前视频配置的下载线路、下载服务器以及下载地址等信息,其他基础参数与播放页面保持一致。

因此,如果已经熟悉苹果CMS V10播放页的模板标签和参数,那么学习下载页面会相对简单。

三、iframe下载器

苹果CMS V10同样可以使用 iframe 形式制作独立下载器。其基本使用方式与 iframe 播放器类似,但下载器可以单独处理下载相关的付费配置。

当网站设置了下载权限、试看时间或下载积分后,可以在 iframe 下载器中根据当前用户权限显示对应的提示信息。

四、iframe下载器完整代码

以下为一个完整的 iframe 下载器模板示例。模板通过 $player_data 和 $player_js 输出播放器/下载器相关数据,同时结合苹果CMS会员权限和积分配置处理下载权限。

<!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_down 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_down}积分,请支付后观看。
            </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="5">
                        确认购买
                    </a>
                </p>

            {/if}
            {/if}

        </div>
    </div>
</div>

<script>
    // 方式一:本页面计算试看时间
    window.setTimeout(function(){
        $('.MacPlayer').html($('.player_showtry').html());
    },1000*60*{$popedom.trysee});

    // 方式二:调用父页面公共函数库
    // window.parent.MAC.User.PopedomCallBack({$popedom.trysee},$('.player_showtry').html());
</script>

{/if}

</body>
</html>

五、代码主要功能说明

1、加载jQuery

模板通过以下代码加载苹果CMS自带的 jQuery 文件:

<script src="{$maccms.path}static/js/jquery.js"></script>

后续的下载器权限提示、倒计时以及页面内容替换等功能都会使用 jQuery。

2、输出下载器数据

以下两个变量用于输出相关的播放器或下载器数据:

{$player_data}
{$player_js}

具体输出内容取决于当前苹果CMS配置以及下载页面的调用方式。

3、判断用户下载权限

模板通过 $popedom.code 判断当前用户是否需要进行权限处理:

{if condition="$popedom.code gt 1"/}
...
{/if}

当用户当前下载权限受到限制时,会显示相应的会员升级、登录、充值或购买提示。

4、下载积分设置

当前视频的下载积分可以通过以下变量获取:

{$obj.vod_points_down}

当 vod_points_down 等于 0 时,代码会按照会员权限显示升级提示;如果设置了下载积分,则会提示用户支付相应积分。

5、下载试看时间

下载器中的试看时间通过以下变量调用:

{$popedom.trysee}

示例代码使用 JavaScript 的 setTimeout 进行倒计时,试看结束后将权限提示内容写入播放器区域。

6、购买下载权限

用户确认购买时,会调用父页面的公共方法:

window.parent.MAC.User.BuyPopedom(this)

同时通过 data-id、data-sid、data-nid 和 data-type 将当前视频及下载相关参数传递给购买功能。

data-id="{$obj.vod_id}"
data-sid="{$param.sid}"
data-nid="{$param.nid}"
data-type="5"

六、下载页面常用变量

变量作用
$obj当前视频详情数据对象
$obj.vod_id当前视频ID
$obj.vod_points_down当前视频下载所需积分
$param.sid当前下载线路相关参数
$param.nid当前下载地址相关参数
$popedom.code当前用户下载权限状态
$popedom.trysee试看时间
$user.group.group_id当前用户会员组ID
$player_data输出下载器相关数据
$player_js输出下载器相关JavaScript代码

七、下载数据与 vod_down_list

苹果CMS V10下载功能主要围绕当前视频的下载数据进行处理。视频详情对象中的 vod_down_list 可以用于获取当前视频配置的下载线路和下载地址信息。

如果网站配置了多条下载线路,可以在下载模板中根据实际数据结构循环读取对应的下载组,然后生成下载按钮。

下载模板与播放模板在整体结构上比较接近,但下载数据需要使用对应的下载列表,而不是播放列表。

八、使用下载模板时的注意事项

  • 确认当前网站使用的是苹果CMS V10,并且模板标签与程序版本匹配。

  • 确认下载页面路径与实际模板目录一致。

  • 下载页面需要携带正确的 id 参数。

  • 如果使用多线路下载,需要确认 vod_down_list 数据是否正常生成。

  • 如果使用积分下载功能,需要先在后台配置对应的下载积分。

  • 如果使用VIP权限下载,需要检查会员组权限配置。

  • iframe 下载器涉及父页面调用时,需要确认父页面已经正确加载苹果CMS公共 JavaScript。

  • 修改模板前建议备份原始文件,避免修改错误后无法恢复。

总结

苹果CMS V10下载页面与播放页面的整体结构比较相似,主要区别在于下载页针对 vod_down_list 进行单独处理,并可以独立配置下载权限、试看时间以及积分购买等功能。

对于需要制作自定义下载器的用户,可以以 $obj、$param、$popedom 等变量为基础,根据网站实际下载线路和会员权限需求进行模板设计。使用 iframe 下载器时,还可以调用父页面的公共函数,实现购买权限、登录和充值等功能。