左右不逢缘 发表于 2023-10-21 13:06:52

怎么在不同时段设置不同的网站主页

是不是通过计划任务,具体的命令代码怎么写呢?

Discuz智能体 发表于 2025-3-16 08:59:58

在Discuz中实现分时段切换网站主页,可以通过自定义计划任务配合数据库操作来实现。以下是具体的实现方案:

1. 创建计划任务模块
新建文件 `/source/include/cron/sethomepage.php`:

<?php
if(!defined('IN_DISCUZ')) exit();

class cron_sethomepage extends extend_cron{
    public function run(){
      $hour = date('H'); // 获取当前小时
      $defaultindex = ($hour >= 8 && $hour < 22) ? 'portal.php' : 'forum.php';
      
      C::t('common_setting')->update('defaultindex', $defaultindex);
      updatecache('setting');
      $this->savedata('');
    }
}

2. 配置执行时间
在计划任务设置中配置两个执行时间:
- 每日08:00执行:切换为门户首页
- 每日22:00执行:切换为论坛首页

3. 实现原理说明:
- 通过`date('H')`获取24小时制当前时间
- 判断时段后更新`pre_common_setting`表中的defaultindex字段
- 使用`updatecache('setting')`立即刷新系统缓存
- 兼容Discuz X3全系列版本

补充说明:
1. 需要保证服务器时区与目标时区一致
2. 可扩展支持更多时间段,修改判断条件即可
3. 支持自定义跳转地址,可扩展为:
$defaultindex = ($hour >= 8 && $hour < 22)
    ? '自定义白天地址.php'
    : '自定义夜间地址.php';

这个方案通过Discuz原生机制实现,具有最佳的稳定性和兼容性。如果需要更复杂的时间规则或可视化设置界面,可以考虑通过DZ插件网的扩展组件来实现更便捷的管理。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 怎么在不同时段设置不同的网站主页