Eine Funktion, die man von einem Content-Management-System erwarten kann, ist die Möglichkeit, Artikel oder Beiträge zu einem bestimmten Zeitpunkt zu planen. Leider unterstützt Drupal diese Funktion nicht standardmäßig. Dies lässt sich jedoch mit Hilfe des Zusatzmoduls Scheduler erreichen.
Mit diesem Modul können wir einen Artikel (oder Inhalte jeder anderen Art) so planen, dass er zu einem bestimmten Datum und einer bestimmten Uhrzeit veröffentlicht (oder unveröffentlicht) wird. Dies zielt im Wesentlichen darauf ab, die Erfahrung von Content-Editoren zu verbessern, indem ihnen die Möglichkeit gegeben wird, den Veröffentlichungsprozess zu automatisieren.
Warum automatisieren?
Bevor wir uns ansehen, wie das Scheduler-Modul installiert, konfiguriert und verwendet wird, wollen wir uns ansehen, wie die Automatisierung der Veröffentlichung von Inhalten helfen kann.
- Spart menschliche Anstrengungen bei der Veröffentlichung von Artikeln
Eines der grundlegendsten Probleme, die die Artikelplanung löst, ist die Einsparung menschlicher Anstrengungen in der Zukunft. Ich kann einen Artikel für das Wochenende planen, ohne an diesem Tag zu arbeiten.
- Ihre Redakteure werden es lieben
Die Planung der Artikel ermöglicht es den Redakteuren, flexibel mit ihren Zeiten umzugehen. Es ist sinnvoll, die Veröffentlichung zu planen, wenn sie nicht verfügbar sind.
- Konsistente Updates ziehen treue Besucher an
Ein starker Veröffentlichungsfluss vervollständigt die redaktionellen Prozesse und beseitigt das Durcheinander im Content Management.
- Gewinnen Sie treue Leser
Die konsistente Veröffentlichung von qualitativ hochwertigen Inhalten führt schließlich dazu, dass sich eine treue Gruppe von Lesern oder Besuchern auf Ihrer Website versammelt. Die Automatisierung des Veröffentlichungsprozesses stellt sicher, dass die Leser Ihre Website regelmäßig besuchen.
- Erreichen Sie Ihre Zielgruppe
Es ist möglich, dass Ihre Website zu einer bestimmten Tageszeit oder an einem bestimmten Wochentag mehr Nutzer anzieht. Wenn Sie Artikel oder Inhalte während dieser Spitzenzeiten live schalten, erreichen die Inhalte mehr Publikum.
Herunterladen und Installieren des Schedulers
Das Scheduler-Modul benötigt einige der Drupal-Kernmodule, die aktiviert sein müssen – Actions, DateTime, Field, Node, Text, Filter, User, System und Views. Sobald Sie sichergestellt haben, dass alle diese Module aktiviert sind, laden Sie das Scheduler-Modul herunter und installieren Sie es mit einer der folgenden Methoden:
Verwendung der Benutzeroberfläche
- Navigieren Sie zu Verwalten → Erweitern → Neues Modul installieren und geben Sie die .tar.gz- oder .zip-URL des Scheduler-Moduls ein und klicken Sie auf "Installieren".
- Sobald der Downloader und das Installationsprogramm fertig sind, klicken Sie auf "Neu hinzugefügte Module aktivieren".
- Suchen Sie Scheduler in der Liste der Module, wählen Sie es aus und klicken Sie auf "Installieren". Zusätzlich können Sie auch das Submodul Scheduler Rules Integration installieren.
Installation von Scheduler über die Benutzeroberfläche
Installation von Scheduler über die Benutzeroberfläche
Wenn Sie das Modul über das Terminal installieren möchten, navigieren Sie zuerst zum Root-Verzeichnis Ihrer Drupal-Site und verwenden Sie dann eine der folgenden Methoden.
$ cd /var/www/html/drupal8
Verwendung von Composer
- Fügen Sie das Scheduler-Paket mit Composer hinzu
$ composer require "drupal/scheduler"
- Aktivieren Sie das Modul, indem Sie zu Verwalten → Erweitern navigieren, Scheduler auswählen und auf Installieren klicken. Zusätzlich können Sie auch das Submodul Scheduler Rules Integration installieren.
Verwendung von Drush
$ drush dl scheduler
$ drush en scheduler scheduler_rules_integration -y
Verwendung der Drupal-Konsole
$ drupal module:download scheduler
$ drupal module:install scheduler scheduler_rules_integration
Scheduler-Berechtigungen
Das Modul deklariert drei Berechtigungen – Liste der geplanten Inhalte anzeigen, Veröffentlichung von Inhalten planen und Scheduler verwalten. Sie können Ihrem Content-Editor die notwendigen Berechtigungen erteilen, um geplante Inhaltsveröffentlichungen unter admin/people/permissions zu planen und anzuzeigen.

Aktivieren von Scheduler für Inhaltstypen
Um Scheduler zu verwenden, müssen wir zuerst die Planung für die erforderlichen Inhaltstypen aktivieren.
- Navigieren Sie zu Verwalten → Struktur → Inhaltstypen und klicken Sie auf "Bearbeiten" in der Dropdown-Liste für den Inhaltstyp, für den Sie die Planung aktivieren möchten.
- Scrollen Sie in den vertikalen Tabs nach unten zum Scheduler und klicken Sie darauf, um seine Konfiguration zu erweitern.
- Aktivieren Sie Geplante Veröffentlichung für diesen Inhaltstyp aktivieren, optional können Sie auch Erstellungszeitpunkt des Inhalts an den geplanten Veröffentlichungszeitpunkt anpassen aktivieren. Sie können es sogar zu einem Pflichtfeld machen, indem Sie Geplante Veröffentlichung erforderlich aktivieren.
Aktivieren der Planung für den Artikel-Inhaltstyp - Sie können auch konfigurieren, wie der Content-Editor die Scheduler-Optionen während der Bearbeitung anzeigt – vertikaler Tab oder separates Fieldset.
Konfigurieren der Anzeigeoptionen für den Scheduler - Ebenso können Sie auch die Planung der Aufhebung der Veröffentlichung der Inhaltstypen zulassen. Dies kann für Inhaltselemente nützlich sein, die ablaufen müssen, wie z. B. Veranstaltungen oder Umfragen.
Planen der Inhaltsveröffentlichung
Nachdem wir nun die Planung für die erforderlichen Inhaltstypen aktiviert haben, sehen wir einen neuen vertikalen Tab oder ein separates Fieldset (je nachdem, was Sie zuvor ausgewählt haben) in der Formularanzeige des Inhalts.

Füllen Sie alle Felder Ihrer Inhaltstypen aus, geben Sie Datum und Uhrzeit ein, aktivieren Sie Veröffentlichen und klicken Sie auf Speichern. Der Beitrag wird vom Scheduler für später geplant. Um ihn sofort zu veröffentlichen, lassen Sie die Planungsoptionen einfach leer.

Nur der Autor dieses Beitrags kann den Beitrag sehen, bis er veröffentlicht wird. Andere sehen eine Seite mit der Meldung "Zugriff verweigert", wenn sie versuchen, die URL des geplanten Inhalts aufzurufen.

Alle geplanten Inhalte können von einem Autor über die Registerkarte "Geplant" auf seiner Profilseite eingesehen werden, d. h. user/{user_id}/scheduled.
Der Nachteil des Scheduler-Moduls
Wie Sie inzwischen vielleicht bemerkt haben, wurde der Inhalt nicht tatsächlich zum angegebenen Datum und zur angegebenen Uhrzeit veröffentlicht. Dies liegt daran, dass dieses Modul auf Drupals automatisiertem Cron basiert, um die geplanten Inhalte zu veröffentlichen oder die Veröffentlichung aufzuheben. Es funktioniert durch die Implementierung von hook_cron, die nur ausgeführt wird, wenn ein Benutzer Ihre Website besucht und die Differenz zwischen den Zeitstempeln dieser Anfrage und der letzten Ausführung von Cron größer ist als das konfigurierte Intervall von Cron. Im schlimmsten Fall, wenn Ihre Website keinen Traffic erhält, wird Cron also nie ausgeführt und Ihre geplanten Inhalte werden nie veröffentlicht oder die Veröffentlichung wird nie aufgehoben.
Um dies zu bekämpfen, bietet das Modul die Möglichkeit, einen "leichten" Cron auszuführen, der sicherstellt, dass die geplanten Inhalte veröffentlicht werden. Sie können ihn mit Drush oder von außerhalb der Website aus ausführen, indem Sie eine Anfrage an {your-drupal-site}/scheduler/cron/{your-cron-key} senden. Ihr Cron-Schlüssel ist unter admin/config/content/scheduler/cron verfügbar.
Ursprünglich ist Cron ein UNIX-Dienstprogramm, das verwendet wird, um sich wiederholende Aufgaben zu planen. Wenn Sie über SSH auf Ihren Server zugreifen können oder Ihr Hosting die Möglichkeit bietet, Cron auszuführen, können Sie den folgenden Cron-Ausdruck verwenden, um sicherzustellen, dass der leichte Cron des Schedulers alle 30 Minuten ausgeführt wird.
*/30 * * * * drush scheduler-cron
or
*/30 * * * * drush sch-cron
Wenn Sie Cron von außerhalb der Website ausführen möchten, können Sie den folgenden Ausdruck verwenden, um eine Anfrage zu stellen.
*/30 * * * * wget -q -O /dev/null "{your-drupal-site}/scheduler/cron/{your-cron-key}"
or
*/30 * * * * curl -s -o /dev/null "{your-drupal-site}/scheduler/cron/{your-cron-key}"
Scheduler Rules Integration Submodul
Das Projekt wird mit einem Submodul geliefert, das Ereignisse, Bedingungen und Aktionen für das Rules-Modul bereitstellt. Wenn Sie mit Rules vertraut sind, können Sie kreativ werden und einige interessante automatisierte Workflows erstellen. Sie können beispielsweise eine E-Mail an den Content-Editor senden, um ihn darüber zu informieren, dass sein Artikel oder Inhalt von Scheduler veröffentlicht wurde. Dies kann erreicht werden, indem Sie eine Regel mit einem Ereignis als Nachdem ein Knoten von Scheduler veröffentlicht wurde und einer Aktion als Senden einer E-Mail erstellen.

Was ist für Entwickler drin?
Es ist auch erwähnenswert, dass Scheduler Hooks und Ereignisse bereitstellt, die von Ihrem benutzerdefinierten Modul implementiert werden können. Die API ist in scheduler.api.php gut dokumentiert.
Zu den verfügbaren Hooks gehören hook_scheduler_nid_list, hook_scheduler_nid_list_alter, hook_scheduler_allow_publishing und hook_scheduler_allow_unpublishing. Sie können sie wie alle anderen Hooks implementieren, indem Sie Hook-Funktionen in der .module-Datei Ihres Moduls definieren.
Zu den Ereignissen gehören publish_immediately, pre_publish_immediately, pre_publish, pre_unpublish und unpublish. Sie müssen einen Ereignis-Subscriber registrieren, indem Sie EventSubscriberInterface implementieren und den Dienst in der .services.yml-Datei deklarieren. Geben Sie das Array von Ereignissen aus der Methode getSubscribedEvents zurück und definieren Sie Funktionalitäten in den Methoden Ihrer Ereignis-Subscriber-Klasse.
Fazit
Das Scheduler-Modul konzentriert sich auf die Verbesserung der Erfahrung der Content-Editoren, indem es ihnen die Möglichkeit gibt, Inhaltselemente automatisch zu veröffentlichen oder die Veröffentlichung aufzuheben. Da es für die Planung auf Cron angewiesen ist, können wie oben beschrieben einige Probleme auftreten. Wenn Sie der Meinung sind, dass dieses Modul nicht die erforderliche Flexibilität bietet, können Sie eine benutzerdefinierte Lösung erstellen oder sich das Modul Schedule Updates ansehen (das nicht von der Drupal-Cr-Advisory-Richtlinie abgedeckt wird).
Abonnieren
Verwandte Blogs
Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

„Fit. Schnell. Für die Ewigkeit gebaut.“ Das war nicht nur ein Slogan, sondern die Denkweise, mit der wir zur DrupalCon…
Erklärbare KI-Tools: SHAPs Stärke in der KI

Wissen Sie, was erklärbare KI-Tools sind? Erklärbare KI-Tools sind Programme, die zeigen, wie eine KI ihre Entscheidungen…
KI-Chatbots: Präzision und Persönlichkeit in Perfektion

In der Welt der künstlichen Intelligenz ist die Entwicklung eines KI-Chatbots, der nicht nur akkurate Informationen liefert…