Heim >Backend-Entwicklung >PHP-Tutorial >Mehrere Redakteure pro Knoten in Drupal 7
Dieser Artikel beschreibt ein benutzerdefiniertes Drupal 7 -Modul, editor_list
, wobei die Begrenzung mehrerer spezifischer Benutzer zur Bearbeitung eines einzelnen Knotens zugewiesen wird, ohne einen breiteren Zugriff zu gewähren. Das flexible Berechtigungssystem von Drupal reicht normalerweise aus, aber dieses Modul bietet eine Lösung für Szenarien, die eine körnige Kontrolle erfordern.
Schlüsselmerkmale des editor_list
Moduls:
editor_list_node_types()
, um die entsprechenden Knotentypen und editor_list_uids_from_list()
zu definieren, um Benutzer -IDs aus dem Feld eines Knoten -Editors abzurufen. hook_node_access()
und hook_field_access()
, um den Zugriff auf den Knoten und Feld auf Feldebene zu verwalten. hook_form_article_node_form_alter
.
Die Kernfunktionalität des Moduls liegt in seiner hook_node_access()
-implementierung. Dieser Hook fängt Zugriffsversuche ab und prüft, ob der Benutzer als Editor für den jeweiligen Knoten aufgeführt ist. Wenn ja, wird der Zugang gewährt; Ansonsten wird es abgelehnt. hook_field_access()
fügt eine zusätzliche Sicherheitsebene hinzu und verhindert, dass die Redakteure die Editorliste selbst ändern und so die Kontrolle darüber beibehalten, wer den Knoten bearbeiten kann.
Die Struktur des Moduls umfasst:
editor_list.info
: Modulmetadaten, einschließlich Abhängigkeiten. editor_list.module
: Enthält die Kernlogik, einschließlich der Helferfunktionen und Haken. editor_list.install
(optional): Handle Installationsaufgaben wie das Erstellen des erforderlichen Feldes (field_editors
). Die Funktion editor_list_node_types()
Gibt an, welche Knotentypen das Modul beeinflusst (z. B. 'Artikel'). editor_list_uids_from_list()
extrahiert Benutzer -IDs aus dem Feld 'field_editors' eines bestimmten Knotens. Die hook_form_alter
-implementierung integriert das Feld Editorliste genau in den Abschnitt "Autoring -Informationen" des Knotenbearbeitungsformulars für eine verbesserte Benutzererfahrung.
Dieses Modul bietet eine praktische Lösung für die Verwaltung körniger Bearbeitungsberechtigungen in Drupal 7 und verbessert die Kontrolle und Flexibilität über das Standard -Berechtigungssystem hinaus. Denken Sie daran, dass Benutzer, die zur Editorliste hinzugefügt wurden, nicht Rollen haben, die breitere Bearbeitungsberechtigungen erteilen, um Konflikte zu vermeiden.
Das obige ist der detaillierte Inhalt vonMehrere Redakteure pro Knoten in Drupal 7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!