MacCms增加设置视频更新时间功能

视频编辑页面增加自定义更新时间

1、/application/admin/view_new/vod/info.html

<div class="layui-input-inline w110">
                        <input type="checkbox" name="uptime" title="{:lang('update_time')}" value="1" checked class="layui-checkbox checkbox-ids" lay-skin="primary">
                    </div>

在下方新增

<div class="layui-input-inline">
                    <input type="text" name="uptime_value" id="uptime_value" class="layui-input" placeholder="请选择时间">
                </div>
                
                <script>
                // 初始化时间组件
                layui.use(['laydate'], function(){
                    var laydate = layui.laydate;
                    
                    // 获取当前时间
                    var now = new Date();
                    var formattedTime = now.getFullYear() + '-' 
                        + String(now.getMonth()+1).padStart(2,'0') + '-' 
                        + String(now.getDate()).padStart(2,'0') + ' ' 
                        + String(now.getHours()).padStart(2,'0') + ':' 
                        + String(now.getMinutes()).padStart(2,'0') + ':' 
                        + String(now.getSeconds()).padStart(2,'0');
                
                    // 渲染日期时间组件
                    laydate.render({
                        elem: '#uptime_value',
                        type: 'datetime',
                        format: 'yyyy-MM-dd HH:mm:ss',
                        value: formattedTime,
                        trigger: 'click' // 点击弹出日期选择
                    });
                });
                </script>

2、application/common/model/vod.php

if($data['uptime']==1){
            $data['vod_time'] = time();
        }

改为

//自定义更新时间
        if(isset($data['uptime']) && $data['uptime'] == 1){
        // 优先使用用户输入的时间
        if(!empty($data['uptime_value'])){
            $data['vod_time'] = strtotime($data['uptime_value']);
        } else {
                // 兜底逻辑:使用当前时间
                $data['vod_time'] = time();
                }
        }

视频数据管理页面增加批量设置更新时间

1、application/admin/controller/Vod.php

查找 public function field() 在上方新增

public function updateTimeBatch()
{
    $param = input();
    $ids = isset($param['ids']) ? $param['ids'] : '';
    $time = isset($param['time']) ? trim($param['time']) : '';

    if (empty($ids)) {
        return $this->error(lang('param_err'));
    }

    $timestamp = time();
    if (!empty($time)) {
        $tmp = strtotime($time);
        if ($tmp !== false) {
            $timestamp = $tmp;
        }
    }

    $where['vod_id'] = ['in', $ids];
    $update = ['vod_time' => $timestamp];
    $res = model('Vod')->fieldData($where, $update);
    if ($res['code'] > 1) {
        return $this->error($res['msg']);
    }
    return $this->success($res['msg']);
}

2、application/admin/view_new/vod/index.html

查找

<a class="layui-btn layui-btn-primary j-iframe" data-checkbox="true" data-href="{:url('make/make?ac=info&tab=vod')}" href="javascript:;" title="{:lang('make_page')}"><i class="layui-icon">&#xe620;</i>{:lang('make_page')}</a>

在下方新增

<a class="layui-btn layui-btn-primary" id="btnBatchUpdateTime" href="javascript:;" title="{:lang('update_time')}"><i class="layui-icon">&#xe637;</i>{:lang('update_time')}</a>

找到

layui.use(['laypage', 'layer','form'], function() {

改为

layui.use(['laypage', 'layer','form','laydate'], function() {

找到

form = layui.form;

改为

form = layui.form,
laydate = layui.laydate;

找到

// 小屏幕下名称问题
if ($('body').width() <= 600) {
$('#table_th_vod_name').attr('width', '300');
}

在下方新增

$('#btnBatchUpdateTime').on('click', function () {
            var ids = [];
            $('.checkbox-ids:checked').each(function (index, item) {
                if (item.checked) {
                    ids.push(item.value);
                }
            });
            if (ids.length < 1) {
                layer.msg('{:lang('请先选择视频')}');
                return false;
            }

            var content = '<div style="padding:15px 20px 0 20px;">' +
                '<input type="text" class="layui-input" id="batchUpdateTimeInput" placeholder="{:lang('update_time')}">' +
                '<p style="margin-top:8px;color:#999;">{:lang('批量设置视频')} {:lang('update_time')}</p>' +
                '</div>';

            var openIndex = layer.open({
                type: 1,
                title: '{:lang('update_time')}',
                area: ['360px', '200px'],
                content: content,
                btn: ['{:lang('确定')}','{:lang('取消')}'],
                success: function () {
                    laydate.render({
                        elem: '#batchUpdateTimeInput',
                        type: 'datetime',
                        value: new Date()
                    });
                },
                yes: function () {
                    var timeVal = $('#batchUpdateTimeInput').val();
                    layer.msg('{:lang('wait_submit')}', {time: 500000});
                    $.post("{:url('updateTimeBatch')}", {ids: ids.join(','), time: timeVal}, function (res) {
                        layer.msg(res.msg, {}, function () {
                            if (res.code == 1) {
                                location.reload();
                            }
                        });
                    });
                    layer.close(openIndex);
                }
            });
        });


本文链接:

https://foglog.cn/p/maccms-vod-laydate