Drupal-Site nur unter bestimmten Umständen anzeigen (Montags)
am 13.06.2014 - 21:05 Uhr in
Hallo Zusammen! ;-)
Gibt es eine Möglichkeit die Drupal Seite, z.B. nur Montags, anzeigen zu lassen? An anderen Tagen soll es auf eine andere Seite, z.B. Wartungsmodus-Seite umleitet.
Edit: so wie eine Art automatische Wartungsseite...
- Anmelden oder Registrieren um Kommentare zu schreiben

möglich ist (fast) alles
am 13.06.2014 - 22:38 Uhr
Das könnte man auf viele verschieden Arten angehen. Eine relativ einfache Möglichkeit wäre z.B. ein zweites Templates, das als "Wartungstemplate" keine Inhalte ausgeben würde. Dessen Nutzung könnte man dann z.B. per Themekey Modul zeitlich steuern: https://drupal.org/project/themekey
hey, vielen Dank für deine
am 13.06.2014 - 23:23 Uhr
hey, vielen Dank für deine Hilfe. Hab es nun erfolgreich testen können, mit dem einen Nachteil, dass die Seite extrem langsam wird. Ist das normal?
wahrscheinlich gaht das auch
am 15.06.2014 - 05:50 Uhr
wahrscheinlich gaht das auch mit rules
Wartungsmodus ist doch sicher ein Flag in der Datenbank
am 15.06.2014 - 12:43 Uhr
das kann man sicher auch von einem cronjob setzen lassen.
Auch wenn es pfui ist, es müsste funktionieren ;-)
Dynamischer Content oder mod rewrite
am 15.06.2014 - 20:49 Uhr
Eine Standard-Rules-Action gibt es für diesen Job vllt. nicht. Aber Rules wäre für viele verschiedene Strategien ein hilfreiche Sache. Vor allem es nicht so schwer, selbst ein Rules-Action zu programmieren, z.B. zum Setzen eines Templates. Aber das Problem mit der Geschwindigkeit hat wahrscheinlich damit zu tun, daß es nun ein dynamischer Content ist, bei dem vom Code Zeit abgefragt wird, bevor Content ausgeliefert wird.
Und wenn man z.B. mir Rules oder anderem Code z.B. den Wartungsmodus ein und ausschalten oder ein Standard-Template, oder den Zugriff auf Content für Gäste sperren oder freigeben möchte usw. dann muss Drupal etwas über die Zeit wissen und dafür ist es gut, den Drupal-Cronjob am besten per System-Cronjob (vorzugsweise über Drush) zu "takten" und nicht den einfachen Standard-Cronjob in Drupal zu nutzen (ehemals Poormanscron bis D6). Denn auch der Poormanscron frisst Leistung (und Zeit beim Besucher, den er trifft) und kann vor allem eher ein Timeout bekommen als ein System-Drush-Cronjob.
Wichtig zu kontrollieren ist vor allem, daß auch Caches vom Cronjob gelöscht werden, denn wenn z.B. der Page-Cache den Template-Switch oder andere Strategien der Content-Änderung abfängt, dann hilft die ganze Zeit-Steuerung nicht.
Eine erheblich performantere Lösung würde die Zeit-Abfrage außerhalb von Drupal durchführen, evtl. auf Ebene des Webservers bzw. Proxy. Das habe ich zwar selbst noch nicht ausprobiert, aber allein das mod rewrite des Apache kennt Zeit-Agaben. Siehe z.B.:
http://www.webforgers.net/code-library/date-and-time-content-delivery.php
http://httpd.apache.org/docs/trunk/rewrite/advanced.html#time-dependent
http://www.systemengineers.de/apache/tutorials/serve-alternate-content-b...
das mit dem rewrite ist die eleganteste Lösung
am 16.06.2014 - 08:01 Uhr
Man lernt ständig etwas hinzu :D
Dass rewrite auch das kann, wußte ich auch nicht.