Comment masquer les onglets "Gérer les champs" et "Gérer l'affichage"


18

Je fais un site Web avec Drupal 7, et je regardais les autorisations pour Taxonomies. Je voulais donner aux mainteneurs du site Web une place centrale pour gérer les vocabulaires et ajouter des termes, trier les termes, etc. J'ai donc donné à leur rôle l'autorisation "Administrer les vocabulaires et les termes" sous Taxonomie. Cela a cependant entraîné une complication indésirable, principalement en leur donnant accès à la création de nouveaux champs et à la gestion de leur affichage (onglets "Gérer les champs" et "Gérer l'affichage").

Existe-t-il un moyen de leur donner accès à l'écran de modification du vocabulaire et des termes accessible via "Structure> Taxonomie" mais en désactivant toutefois les onglets "Gérer les champs" et "Gérer l'affichage" sur l'écran de modification du vocabulaire?

Je suis assez familier avec la notion de surcharge et de hooks dans Drupal 6, mais je suis assez nouveau dans Drupal 7 (en fait, c'est mon premier site Web D7, créé environ 5 ou 6 sites D6), donc cela ne me dérange pas le cas échéant, des solutions de codage. Je cherche juste une réponse ou une poussée dans la bonne direction.

Comme personne n'a encore répondu, je voulais ajouter que je suis prêt à chercher des alternatives à la zone centrale pour gérer les taxonomies (admin / structure / taxonomie). Je pourrais peut-être envisager de créer une page avec des vues pour simuler la page d'administration des taxonomies.

Est-ce faisable et quelqu'un a-t-il déjà fait quelque chose comme ça auparavant?

Réponses:


8

Je sais que cela a été répondu il y a quelque temps, mais il existe une solution qui ne nécessite aucun module personnalisé ou spécial.

Si vous désactivez le module ui des champs principaux , les onglets Gérer les champs et Gérer l'affichage ne s'afficheront pas.

S'il s'agit d'un site de production, cela devrait être correct car vous aurez déjà configuré les champs comme vous le souhaitez. Si vous devez apporter une modification, réactivez simplement brièvement le module.


1
+1 Cela semble être le moyen le plus propre, le moins encombrant et le plus rapide pour obtenir le résultat.
Beebee

Ce n'est pas une solution de contournement, c'est une solution qui "ne nécessite aucun module personnalisé ou spécial" et fonctionne très bien sur chaque site Drupal jamais créé.
marbregravy


3

L'autorisation administer taxonomyest ce qui est utilisé pour accorder des autorisations de champ, si vous devez leur donner cette autorisation afin de leur donner accès à l'administration de la taxonomie, vous pouvez créer une nouvelle autorisation pour le champ ui.

La façon la plus simple de définir cela est d' hook_entity_info_alterutiliser le hook, car c'est là que le chemin d'administration du champ ui est ajouté et l'autorisation d'accès pour eux. Vous pouvez également utiliser hook_menu_alterpour modifier l'autorisation, mais c'est un peu plus de travail.


2

Vous pouvez essayer d'utiliser le hook_menu_alter () pour modifier le 'rappel d'accès' qui est configuré dans la fonction field_ui_menu () à partir du fichier field_ui.module. C'est là que les éléments de menu "Gérer les champs" et "Gérer les affichages" sont configurés.

Dans votre hook_menu_alter (), vous pouvez rechercher ces deux entrées d'élément de menu pour les chemins de taxonomie (puisque vous souhaitez conserver les versions de type de contenu de celles-ci), et modifier le `` rappel d'accès '' en une méthode personnalisée qui vérifie une nouvelle autorisation que vous créez dans hook_permission ().

J'ai fait quelque chose de similaire dans le passé et serais heureux d'envoyer du code si nécessaire.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.