Wie ändere ich meine Homepage basierend auf der Tageszeit?


8

Ich habe hoch und niedrig danach gesucht. Wie ändere ich meine Homepage basierend auf der Tageszeit? Um ganz explizit zu sein, möchte ich:

  1. Zwischen 8 und 19 Uhr - Homepage 1 (Knoten / 4)
  2. Zwischen 19 Uhr und 8 Uhr - Homepage 2 (Knoten / 5)

Ich möchte also zwei völlig unterschiedliche Homepages entwerfen, die sich dann je nach Tageszeit ändern.

Ich habe Code ausprobiert, aber er scheint nicht den Job zu machen:

$current_front = variable_get('site_frontpage');

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

Hinweis : Ich bin kein Code-Experte und weiß daher nicht, wo ich mit Hooks anfangen soll. Ich bin eine Million Jahre davon entfernt, meine eigenen Module zu erstellen.


1
Weitere Informationen zum programmgesteuerten Ändern der Startseite finden Sie in dieser Frage ( drupal.stackexchange.com/questions/1884/… ).
Geoff

Antworten:


6

Verwenden Sie das Modul Regeln , um den entsprechenden Knoten als Startseite festzulegen.

Basierend auf dem Beispiel in der Frage gehe ich davon aus, dass Knoten / 4 der Wert ist site_frontpage. Hier ist die tatsächlich zu erstellende Regel, die in Ihrem Fall funktionieren könnte:

  1. Erstellen Sie eine neue Regel
  2. Ereignis = Inhalt wird angezeigt
  3. Bedingung: Datenvergleich -> node:nidgleich4
  4. Fügen Sie eine zusätzliche Bedingung hinzu, um zu überprüfen, ob die aktuelle Zeit zwischen 19 Uhr und 8 Uhr liegt.
  5. Aktion: Seitenumleitung zu node/5

Für alle, die (noch / nicht) mit Regeln vertraut sind , lesen Sie die 32 (!!!) großartigen (+ kostenlosen) Video-Tutorials. Lernen Sie das Regeln-Framework . Möglicherweise auch der ähnliche Satz von 8 Video-Tutorials zum Flag- Modul, die oft als natürliche Ergänzung zum Rules-Modul angesehen werden. Vielleicht lesen Sie auch die 30 Video-Tutorials zum Views- Modul ... Wenn Sie nur mit diesen 3 Modulen ( Views , Rules und Flag ) vertraut sind , können Sie in fast jeder Drupal-Site (als Site Builder) ziemlich weit kommen.


Ich bin mir nicht sicher, ob ich die Fähigkeiten dafür habe, aber danke. Ich habe dies gefunden, was als Auswahlregel in einem Panel zu funktionieren scheint: code$ now = time (); $ day = date ("D", $ now); return $ day == "Di"; codeich brauche das jetzt nur zwischen 8 und 19 Uhr. Wenn jemand weiß, wie ich das machen kann, wäre ich dankbar. Danke.
Rich Stevens

Endlich hat es geklappt; hat dies zu meiner Panel-Auswahlregel hinzugefügt: code$ now = time (); $ day = date ("G", $ now); return $ day <"15"; codeFür jeden, der so nutzlos ist wie ich, bedeutet dies, dass ich überprüfe, ob die Zeit vor 15.00 Uhr liegt. Wenn dies der Fall ist, gilt diese Regel, sodass mein Panel dies anzeigt. Vielen Dank.
Rich Stevens

3

Ich würde ein benutzerdefiniertes Modul mit ein paar Cron-Hooks vorschlagen (in einer hook_cron- Funktion).

  • Setzen Sie einen Cron-Haken (A), um die Titelseite auf Knoten / 4 zu ändern.
  • Setzen Sie den anderen Cron-Haken (B), um die Titelseite auf Knoten / 5 zu ändern.
  • Installieren Sie Ultimate Cron und verwenden Sie den Crontab-Scheduler.
  • Stellen Sie Haken A auf * 8 * * *
  • Stellen Sie Haken B auf * 19 * * *

Dies funktioniert natürlich nur basierend auf Ihrer Serveruhr und ändert sich nicht basierend auf der Zeitzone des Benutzers. Wenn Sie das wollen, wird es schwieriger.


Leider bin ich kein Code-Experte und würde daher nicht wissen, wo ich mit diesen Hooks anfangen soll. Sieht so aus, als müsste ich jemanden bezahlen. Vielen Dank für Ihre Antwort auf jeden Fall, könnte jemandem helfen, der technisch begabter ist!
Rich Stevens

Sie müssen kein Zauberer sein, Drupal und PHP sind ziemlich einfach zu lernen. Jemanden zu
bezahlen

Ich weiß nicht, was dies bedeutet: "Setzen Sie einen Cron-Haken (A), um die Titelseite auf Knoten / 4 zu ändern." Ich bin eine Million Jahre davon entfernt, meine eigenen Module zu erstellen.
Rich Stevens

Fair genug, es ist gut, Ihre Grenzen zu kennen.
Darvanen

3

Schauen Sie sich das Theme Key- Modul an. Weitere Details dazu auf der Projektseite:

Mit ThemeKey können Sie einfache oder ausgefeilte Regeln für den Themenwechsel definieren, die die automatische Auswahl eines Themas in Abhängigkeit vom aktuellen Pfad, den Taxonomiebegriffen, der Sprache, dem Knotentyp und vielen, vielen anderen Eigenschaften ermöglichen. Es kann auch einfach erweitert werden, um zusätzliche Eigenschaften zu unterstützen, die von anderen Modulen bereitgestellt werden. In Kombination mit der Themenvererbung von Drupal können Sie auf einfache Weise folgende Funktionen erzielen:

  • individuell gestaltete Kanäle
  • ein Frontpage / "Splash" Bildschirm
  • ein Datum / Uhrzeit ausgewähltes Weihnachtsthema
  • mobile Themen für verschiedene automatisch erkannte mobile Geräte
  • spezielle Themen für "eingeschränkte" oder "alte" Browser
  • inhalts-, benutzer- oder rollenspezifische Themen
  • Angabe Ihrer Umgebung (Produktion, Bereitstellung, Test, Sandbox,…)
  • Testen Sie Ihr Redesign sicher auf einem Live-Server
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.