苹果cms视频按上映年份排序

频道:网络应用 日期: 浏览:346

      苹果cms视频排序默认是按视频入库时间倒序排序的,这就造成有些上映年份很老的电影,出现在首页或者排序过于靠前,访客对这些老电影的兴趣一般比较低,视频清晰度又很低,视频源打不开的可能性也很大,造成访客体验十分低下。解决办法,修改已经入库视频的入库时间,即重新按上映年份的序列,更新已经入库视频的入库时间。这里的思路是,先一次性将1950年以前的视频的时间更新,接着后面的年份,逐年更新入库时间,以下是实现的代码,注意:需修改第10、11、12、13行,改成你苹果cms数据库相应的信息。

<?php
session_start();
// 检查用户是否已经登录(这里假设用户登录后将在会话中设置一个名为 'user_id' 的值)
if(!isset($_SESSION['think']['admin_info']['admin_name'])){
    // 如果用户没有登录,则不允许访问
    header('Location: index.php');
    exit; // 确保之后的代码不会执行
}

$servername = "localhost";//修改为你的数据库地址
$username = "mysql_username";//修改为你的数据库用户名
$password = "username_password";//修改为你的数据库用户名的登录密码
$dbname = "your_cms_db";//修改为你的数据库名

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$cur_year = date('Y');//当前时间的年份
$cur_time=time(); //获取当前时间戳
//更新的数据位置,上映年份
if(!isset($_GET['year'])){
  $upyear=1950;
}else{
  $upyear=$_GET['year'];
}

//...............................................................................................................
if($upyear==1950){
//准备sql语句,早于1950年
$stmt = $conn->prepare("UPDATE `mac_vod` SET `vod_time` = ? WHERE `vod_year` <= ?");
$stmt->bind_param("si", $cur_time, $upyear); 
// 执行更新
if ($stmt->execute()) {
    echo "上映年份<font style='color: red;'>1950</font>年及以前的影片,入库时间更新成功</br>";
} else {
    echo "上映年份早于<font style='color: red;'>1950</font>年及以前的影片,入库时间更新失败: " . $stmt->error."</br>";
}
}
//..............................................................................................................
//..............................................................................................................
if($upyear>1950){//开启1951年以后循环的判断
//准备sql语句,1951年及以后逐年更新入库时间
$stmt_loop = $conn->prepare("UPDATE `mac_vod` SET `vod_time` = ? WHERE `vod_year` = ?");
$stmt_loop->bind_param("si", $cur_time, $upyear); 

for ($i = 1; $i <= 5; $i++) {
    // 每五年一组,逐年执行更新
    if ($stmt_loop->execute()) {//执行更新
        echo "上映年份<font style='color: red;'>".$upyear."</font>年,入库时间更新成功</br>";
    } else {
        echo "上映年份<font style='color: red;'>".$upyear."</font>年,入库时间更新失败: " . $stmt_loop->error."</br>";
}//执行更新结束括号
    $upyear++;
    $cur_time+=1;
}//for循环结束

}//1951年以后循环的判断结束括号
//为1950年后的影片更新作准备.........
if($upyear==1950){
    $upyear+=1;//这里结果应该是1951
}
//....................................
// 关闭连接
$conn->close();

if($upyear<$cur_year){
// 延迟的秒数
$delaySeconds = 3;
// 发送延迟重定向的HTTP头
header("Refresh: $delaySeconds; url=/yksj.php?year=$upyear");
// 可选:输出一些内容给用户
echo "</br>您将在 ".$delaySeconds. "秒内跳转到下一个五年计划,以<font style='color: red;'>".$upyear."</font>年开始";
// 延迟一定时间
sleep($delaySeconds);
// 确保不会发送更多的输出,因为重定向头已经发送
ob_end_flush();
die();
}
if($upyear>=$cur_year){
    echo "</br><font style='color: red;'>恭喜你!!!已按影片上映年份更新了入库时间!!!</font>";
}
?>

复制以上代码,打开电脑上的记事本,粘贴代码,然后修改第10、11、12、13行,改成你苹果cms数据库相应的信息,接着另存为文件yksj.php,最后上传到苹果cms的根目录。登录苹果cms后台,按下图,添加这个文件的快捷链接:

微信图片_20240615080523.jpg

    以下是运行的截图,供大家参阅。

360截图20240615082553598.jpg


0 留言

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
Music