如何根据一天中的时间更改主页?


8

我为此寻找了高低。如何根据一天中的时间更改主页?绝对明确地说,我想要:

  1. 上午8点至晚上7点之间-主页1(node / 4)
  2. 在7pm和8am之间-主页2(node / 5)

因此,我想设计两个完全不同的主页,然后根据一天中的时间进行更改。

我尝试了一些代码,但似乎无法完成工作:

$current_front = variable_get('site_frontpage');

if($current_front== 'node/4'){
    variable_set('site_frontpage','node/5');
}else{
    variable_set('site_frontpage','node/4');
}

注意:我不是代码专家,所以不知道从哪里开始使用钩子,而且距创建自己的模块还有一百万年的路程。


1
请参阅此问题(drupal.stackexchange.com/questions/1884/…),以获取有关以编程方式更改首页的更多信息。
杰夫2015年

Answers:


6

考虑使用“ 规则”模块将适当的节点设置为首页。

基于问题中的样本,我假设node / 4是值site_frontpage。这是要创建的实际规则,可能适用于您的情况:

  1. 创建一个新规则
  2. 事件=已查看内容
  3. 条件:数据比较-> node:nid等于4
  4. 添加一个额外的条件以检查当前时间是否在晚上7点至早上8点之间。
  5. 行动:页面重定向到 node/5

对于不熟悉(足够/还不熟悉)Rules的任何人,请查看32个(!)很棒(免费)的视频教程。了解Rules框架。可能还会有关于Flag模块的类似的8个视频教程集,通常被视为对Rules模块的自然补充。也许还可以查看有关Views模块的30个视频教程集 ...仅熟悉这三个模块(ViewsRulesFlag)可以使您在大多数Drupal网站(作为网站建设者)中走得很远。


不确定我是否具备该技能,但谢谢。我确实发现了这一点,似乎可以作为面板中的选择规则:code$ now = time(); $ day = date(“ D”,$ now); 返回$日==“星期二”; code我只需要这是8:00-19之间,现在,如果有人知道我怎么能做到这一点,我会很感激感谢。
丰富的史蒂文斯

终于解决了;将此添加到我的面板选择规则中:code$ now = time(); $ day = date(“ G”,$ now); 返回$ day <“ 15”; code对于像我这样无用的任何人,这意味着我正在检查时间是否在15.00个小时之前,如果已过,那么此规则已通过,因此我的面板会显示。谢谢。
Rich Stevens 2015年

3

我建议使用带有两个cron挂钩的自定义模块(在一个hook_cron函数中)。

  • 设置一个cron hook(A),将首页更改为node / 4。
  • 设置另一个Cron挂钩(B),将首页更改为node / 5。
  • 安装Ultimate Cron,并使用Crontab调度程序。
  • 将挂钩A设置为 * 8 * * *
  • 将挂钩B设置为 * 19 * * *

当然,这只能根据您的服务器时钟运行,而不会根据用户的时区进行更改。如果您希望这样做会更加棘手。


不幸的是,我不是代码专家,所以不知道从哪里开始使用这些钩子。看来我必须付钱给某人。无论如何,感谢您的回答,可能会帮助技术上更有才华的人!
Rich Stevens

您不必神往,Drupal和PHP都很容易学习。
付钱

我不知道这是什么意思“设置一个cron hook(A)将首页更改为node / 4。” 我距离创建自己的模块还有一百万年的路程。
Rich Stevens

公平地说,很高兴知道您的限制。
Darvanen

3

看一下主题键模块。有关它的更多详细信息,请参见其项目页面:

ThemeKey允许您定义简单或复杂的主题切换规则,这些规则允许根据当前路径,分类术语,语言,节点类型以及许多其他属性来自动选择主题。还可以轻松扩展它以支持其他模块公开的其他属性。结合Drupal的主题继承,您可以轻松实现以下功能:

  • 个性化渠道
  • 主页/“启动”屏幕
  • 日期/时间选择的圣诞节主题
  • 适用于不同自动检测到的移动设备的移动主题
  • “受限”或“旧”浏览器的特殊主题
  • 内容,用户或角色特定的主题
  • 指示您的环境(生产,暂存,测试,沙箱等)
  • 在实时服务器上安全地测试重新设计
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.