
Wie erstellt man TODO-Listen in Drupal? Überblick über das Checklist API-Modul
Eine To-Do-Liste ist das primäre Werkzeug einer produktiven Person. Sie hilft bei der täglichen Arbeit und ermöglicht es Ihnen, Ihre Aufgaben besser zu erledigen. Wie sich herausstellt, können einige ihrer Elemente auch im Administrationspanel einer Drupal-Website eingegeben werden.
In diesem Artikel werde ich einen genaueren Blick auf das Checklist API Modul werfen, das Drupal-Benutzern eine interessante Implementierung einer TODO-Liste bietet.
Daten
Die erste Alpha-Version des Moduls wurde 2012 für Drupal 7 eingeführt. Die stabile Version 1.0 wurde einige Monate später veröffentlicht. Bis heute wurden 12 stabile Versionen erstellt – einschließlich der neuesten, die als 2.0 für Drupal 8 und 9 markiert ist.
Popularität
Obwohl das Checklist API Modul nicht sehr populär ist, ist es im Laufe der Jahre recht bekannt geworden. Derzeit wird es laut offizieller Statistiken von über 30.000 Drupal-basierten Websites verwendet, von denen 63% der 7.x-1.x-Zweig sind.
Ersteller des Moduls
Das Modul wird von Travis Carden von Acquia gewartet, einem sehr aktiven Mitglied der Drupal Community. Neben ihm haben bisher 11 weitere Personen an dem Projekt teilgenommen. Insgesamt wurden etwa 170 Commits erstellt.
Zweck des Moduls
Das Checklist API Modul wird verwendet, um Listen mit Kontrollkästchen zu erstellen. Der Status der Aufgabenausführung wird in der Konfiguration oder in der State API gespeichert und kann mithilfe des Codes geändert werden. Checklist API kann verwendet werden, um eine To-Do-Liste zu erstellen, aber das ist nur eine Möglichkeit, es zu nutzen.
Im Fall der Droopler Distribution wurde das Checklist API Modul als Mechanismus zur Unterstützung des Aktualisierungsprozesses verwendet. Wenn automatische Prozesse fehlschlagen, raten wir dem Benutzer, die auf der Liste nicht abgehakten Operationen manuell durchzuführen. Es stehen ausführliche Anweisungen und Links zur Verfügung:
Checklist API wird von vielen Tools zur Überprüfung von Websites in Bezug auf SEO und Qualität verwendet, einschließlich SEO Checklist und QA Checklist.
Entpacken
Das Modul ist auf der Drupal.org Website verfügbar. Sie können es sowohl über Composer (mit dem Befehl composer require drupal/linkit) als auch aus der auf Drupal.org verfügbaren .zip-Datei installieren.
Verwendung des Moduls
Nach dem Starten des Checklist API Moduls werden Sie wahrscheinlich überrascht sein, dass es kein Administrationspanel gibt. Neue Listen können nur über die API erstellt werden. Dies geschieht mithilfe eines Hooks – hook_checklistapi_checklist_info().
Hier ist ein Beispiel eines Hooks, der eine einfache To-Do-Liste beim Veröffentlichen einer neuen Website hinzufügt:
/**
* Implementiert hook_checklistapi_checklist_info().
*
* Definiert eine Beispiel-Deploy-Checkliste.
* .
*/
function mylist_checklistapi_checklist_info() {
$definitions = [];
$definitions['mylist'] = [
'#title' => t('Website-Deploy-Checkliste'),
'#path' => '/admin/config/development/website-checklist',
'#callback' => 'mylist_checklistapi_checklist_items',
'#description' => t('Eine Beispiel-Deploy-Checkliste für die Website.'),
'#help' => t('<p>Dies ist eine Beispiel-Deploy-Checkliste für Ihre Website, bereitgestellt von hook_checklistapi_checklist_items().</p>'),
'#storage' => 'state',
];
return $definitions;
}
Dieser Hook verweist auf die mylist_checklistapi_checklist_items Funktion, die ein mehrdimensionales Array zurückgibt. Sie teilen die Checkliste in Registerkarten mit Aufgaben auf. Jede definierte Aufgabe kann eine Beschreibung und eine Liste von Links enthalten, um dem Benutzer bei der Ausführung zu helfen:
/**
* Implementiert callback_checklistapi_checklist_items() für mylist.
*/
function mylist_checklistapi_checklist_items() {
return [
'tab1' => [
'#title' => t('Drupal Admin-Panel'),
'#description' => t('<p>Richten Sie die Drupal-Installation für die PROD-Umgebung ein.</p>'),
'aggregate_css_js' => [
'#title' => t('Aktiviere JS/CSS-Aggregation'),
'#description' => t('Aktivieren Sie die Optimierung der Website-Ressourcen, es ist entscheidend für die Seitengeschwindigkeit.'),
'handbook_page' => [
'#text' => t('Performance-Optionen'),
'#url' => Url::fromUri('base://admin/config/development/performance'),
],
],
'disable_devel' => [
'#title' => t('"Devel"-Modul deaktivieren'),
'handbook_page' => [
'#text' => t('Modul-Liste'),
'#url' => Url::fromUri('base://admin/modules'),
],
],
],
'tab2' => [
// ...
],
];
}
Nach Ausführung des obigen Codes erhält jeder autorisierte Benutzer der Website Zugriff auf die neue Checkliste. Wenn sie nachfolgende Elemente abwählen, erhalten sie klare Informationen über den Stand der Aufgabenbewältigung:
Das Definieren der Inhalte über den Code hat einen großen Vorteil – die Fähigkeit, Aufgaben zu manipulieren, einschließlich des automatischen Markierens als erledigt. Im obigen Beispiel könnten Sie ein Modul schreiben, das selbst überprüft, ob die CSS/JS-Aggregation aktiviert ist und ob das "Devel"-Modul deinstalliert wurde. Auf diese Weise spart der potenzielle Benutzer viel Zeit.
Hier ist ein Beispiel für ein Stück Code, das die Checkliste lädt und ihren Anfangszustand erzwingt. Wenn das "Devel"-Modul aktiv ist, wird das entsprechende Kontrollkästchen automatisch aktiviert.
$handler = \Drupal::service('module_handler');
$checklist = checklistapi_checklist_load('mylist');
$progress = [
'tab1' => [
'disable_devel' => $handler->moduleExists('devel'),
],
];
$checklist->saveProgress($progress);
Zusammenfassung
Checklist API ist sehr nützlich für die Ausführung von wiederkehrenden Aufgaben, wie zum Beispiel die, die Sie beim Veröffentlichen einer neuen Website durchführen. Das Modul kann auch als Werkzeug zur Unterstützung der Sicherheitsüberwachung und Website-Optimierung verwendet werden, die im Rahmen von Drupal-Support durchgeführt werden.
Mit wenig Aufwand bietet Checklist API viele Möglichkeiten und eine benutzerfreundliche Oberfläche für nicht-technische Benutzer. Ich empfehle auf jeden Fall, sich besser mit seinen Funktionen vertraut zu machen.