苹果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后台,按下图,添加这个文件的快捷链接:
以下是运行的截图,供大家参阅。
0 留言