So verbergen Sie die Registerkarten "Felder verwalten" und "Anzeige verwalten"

18

Ich erstelle eine Website mit Drupal 7 und habe die Berechtigungen für Taxonomies überprüft. Ich wollte den Betreibern der Website eine zentrale Stelle zum Verwalten der Vokabeln und zum Hinzufügen von Begriffen, Sortieren der Begriffe usw. geben. Daher erteilte ich ihren Rollen die Berechtigung "Vokabeln und Begriffe verwalten" unter Taxonomie. Dies führte jedoch zu unerwünschten Komplikationen. In erster Linie konnten sie neue Felder erstellen und deren Anzeige verwalten (Registerkarten "Felder verwalten" und "Anzeige verwalten").

Gibt es eine Möglichkeit, ihnen Zugriff auf den Bildschirm zum Bearbeiten von Vokabeln und Begriffen zu gewähren, auf den Sie über "Struktur> Taxonomie" zugreifen können. Deaktivieren Sie jedoch die Registerkarten "Felder verwalten" und "Anzeige verwalten" auf dem Bildschirm zum Bearbeiten von Vokabeln?

Ich bin ziemlich vertraut mit dem Begriff des Überschreibens und Hooks in Drupal 6, aber ich bin ziemlich neu in Drupal 7 (in der Tat ist dies meine erste D7-Website, die ungefähr 5 oder 6 D6-Websites enthält), so dass es mir nichts ausmacht Codierungslösungen für diese, falls vorhanden. Einfach nach einer Antwort oder einem Vorstoß in die richtige Richtung suchen.

Da noch niemand geantwortet hat, wollte ich hinzufügen, dass ich bereit bin, Alternativen zum zentralen Bereich für die Verwaltung von Taxonomien (admin / structure / taxonomy) zu prüfen. Vielleicht könnte ich eine Seite mit Ansichten erstellen, um die Administrationsseite für Taxonomien zu simulieren.

Ist es machbar und hat schon jemand so etwas gemacht?

Beebee
quelle

Antworten:

8

Ich weiß, dass dies vor einiger Zeit beantwortet wurde, aber es gibt eine Lösung, die keine benutzerdefinierten oder speziellen Module erfordert.

Wenn Sie das Modul " Kernfelder" deaktivieren , werden die Registerkarten " Felder verwalten" und "Anzeige verwalten" nicht angezeigt.

Wenn es sich um eine Produktionsstätte handelt, sollte dies in Ordnung sein, da Sie die gewünschten Felder bereits konfiguriert haben. Wenn Sie jemals eine Änderung vornehmen müssen, aktivieren Sie das Modul einfach noch einmal kurz.

marmorgravy
quelle
1
+1 Dies scheint der sauberste, sperrigste und schnellste Weg zu sein, um das Ergebnis zu erzielen.
Beebee
Dies ist keine Problemumgehung, sondern eine Lösung, die "keine benutzerdefinierten oder speziellen Module erfordert" und auf jeder Drupal-Site funktioniert, die jemals erstellt wurde.
Marblegravy
3

Die Berechtigung administer taxonomywird verwendet, um Feldberechtigungen zu erteilen. Wenn Sie ihnen diese Berechtigung erteilen müssen, um ihnen Zugriff auf die Taxonomieverwaltung zu gewähren, können Sie eine neue Berechtigung für die Feld-Benutzeroberfläche erstellen.

Dies lässt sich am einfachsten mit hook_entity_info_alterhook einstellen , da hier der Administrationspfad für das Feld ui und die Zugriffsberechtigung für sie hinzugefügt werden. Sie könnten auch verwenden hook_menu_alter, um die Berechtigung zu ändern, aber dies ist etwas mehr Arbeit.

googletorp
quelle
2

Sie können versuchen, mithilfe von hook_menu_alter () den in der Funktion field_ui_menu () in der Datei field_ui.module eingerichteten 'Access Callback' zu bearbeiten. Hier werden die Menüelemente "Felder verwalten" und "Anzeigen verwalten" eingerichtet.

In Ihrem hook_menu_alter () können Sie nach diesen beiden Menüeinträgen für Taxonomiepfade suchen (da Sie die Content Type-Versionen dieser behalten möchten) und den 'Access Callback' in eine benutzerdefinierte Methode ändern, die eine neu erstellte Berechtigung überprüft in hook_permission ().

Ich habe in der Vergangenheit etwas Ähnliches gemacht und würde gerne Code senden, wenn nötig.

Adam
quelle