Direkt zum Inhalt
Bild
1-opensenselabs.png

HowTo: Automatisieren Sie die Artikelveröffentlichung in Drupal 8

AI-Translated
article publisher

Raman

Drupal

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.
    Aktivieren des Scheduler-Moduls
    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

  1. Fügen Sie das Scheduler-Paket mit Composer hinzu
    $ composer require "drupal/scheduler"
  2. 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.

Berechtigungen zum Anzeigen und Planen erteilen
Berechtigungen zum Anzeigen und Planen der Veröffentlichung für Content-Editoren erteilen

Aktivieren von Scheduler für Inhaltstypen

Um Scheduler zu verwenden, müssen wir zuerst die Planung für die erforderlichen Inhaltstypen aktivieren.

  1. 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.
     
  2. Scrollen Sie in den vertikalen Tabs nach unten zum Scheduler und klicken Sie darauf, um seine Konfiguration zu erweitern.
     
  3. 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
    Aktivieren der Planung für den Artikel-Inhaltstyp
  4. 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
    Konfigurieren der Anzeigeoptionen für den Scheduler
  5. 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.

Hinzufügen von geplantem Datum und Uhrzeit über den vertikalen Tab des Schedulers
Hinzufügen von geplantem Datum und Uhrzeit über den vertikalen Tab des Schedulers

 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.

Eine Drupal-Meldung bestätigt Datum und Uhrzeit des geplanten Beitrags
Eine Drupal-Meldung bestätigt Datum und Uhrzeit des geplanten Beitrags

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.

Die Seite
Die Seite

Alle geplanten Inhalte können von einem Autor über die Registerkarte "Geplant" auf seiner Profilseite eingesehen werden, d. h. user/{user_id}/scheduled.

Schnittstelle zur Verwaltung aller geplanten Inhaltselemente eines Autors

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.

Erstellen einer Reaktionsregel, um Autoren per E-Mail zu benachrichtigen
Erstellen einer Reaktionsregel, um Autoren per E-Mail zu benachrichtigen, wenn ihre Inhalte veröffentlicht werden

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

Ready to start your digital transformation journey with us?

Verwandte Blogs

Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

DrupalCon Atlanta 2025 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

Explainable AI tools Explainable AI And SHAP OpenSense Labs

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

Creating AI Chatbot OpenSense Labs

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