Drupal Rules – Zeitbasiertes publizieren


Ich habe hier eine Rules zu bieten, welche beliebige Inhalte zeitgesteuert veröffentlicht und wieder zurückzieht. Dazu gibt es auch das Scheduler Modul, dieses hat jedoch einen gewichtigen Nachteil: Wenn ich jetzt einen Inhalt schreiben und diesen erst in 2 Wochen veröffentlichen will, so klappt das. Habe ich jedoch ein Feed, welches nach Zeit sortiert ist (z.B. node created), dann wird dieser Artikel nie erscheinen.

Voraussetzungen für die Rules:

  • CCK Feld: field_publish_date (am Besten ein Datetime Feld)
  • CCK Feld: field_unpublish_date (am Besten ein Datetime Feld)
  • Inhaltstyp "article"

Die folgenden Regeln sind enthalten.

Triggered Rules:

  • Schedule publishing by CCK field (Update). Ein Node vom Typ "article" wird editiert und dabei ein Scheduling Datum gesetzt. Der Node muss auf unveröffentlicht gesetzt werden und wird beim Speichern "gescheduled".
  • Schedule publishing by CCK Field (insert). Ein Node vom Typ "article" wird neu erstellt und mit einem Scheduling Datum versehen. Published Flag muss auch hier auf False sein. Node wird "gescheduled".
  • Set correct publishing date. Ein Node vom Typ "article" wird normal (nicht zeitgesteuert) veröffentlicht. Dabei wird das Feld "field_publish_date" auf das aktuelle Datum gesetzt.
  • Schedule unpublishing by CCK field: Ein Node vom Typ "article" wird zeitgesteuert zurückgezogen.

Rule Sets:

  • Publish content {Scheduler}. Scheduler, welcher einen Node zu einem bestimmten Zeitpunkt veröffentlichen.
  • Unpublish content {Scheduler}. Scheduler, welcher einen Node zu einem bestimmten Zeitpunkt zurückzieht.

Natürlich können/müssen die Regeln den örtlichen Gegebenheiten angepasst werden. Besonders der Inhaltstyp muss entsprechend angepasst werden.

Zudem müssen die Views so angepasst werden, dass das Sortierdatum nicht mehr Node created oder die Node Id ist, sondern das field_publish_date.

Noch eine kleine Anmerkung: Diese Rules habe ich nicht auf einer produktiven Site im Einsatz, sondern dienten mir lediglich zu ausbildungszwecken, werden jedoch sicher im nächsten Projekt drin sein. Feedback und Verbesserungen sind stets erwünscht.