web-dev-qa-db-fra.com

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

Je crée un site Web avec Drupal 7, et je regardais les autorisations pour Taxonomies. Je voulais donner aux responsables du site Web un endroit central 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 cela leur a donné 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 substitution et de hooks dans Drupal 6, mais je suis assez nouveau pour Drupal 7 (en fait, c'est ma première Site Web D7, créé environ 5 ou 6 sites Web D6), je ne m'oppose donc pas à certaines solutions de codage, le cas échéant. Je cherche simplement 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 à rechercher 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?

17
Beebee

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 principal fields ui, 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 jamais vous devez apporter une modification, réactivez simplement brièvement le module.

8
marblegravy

Utilisez module field_ui_permissions qui contrôle si les onglets "Gérer les champs" et "Gérer l'affichage" doivent être affichés ou non en fonction des autorisations de rôle.

7
Raghavendra

La permission administer taxonomy est 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 régler cela est d'utiliser hook_entity_info_alter hook, car c'est là que le chemin d'administration pour le champ ui est ajouté et l'autorisation d'accès pour eux. Vous pouvez également utiliser hook_menu_alter pour modifier l'autorisation, mais c'est un peu plus de travail.

3
googletorp

Vous pouvez essayer d'utiliser le hook_menu_alter () pour modifier les 'rappels d'accès' qui sont configurés 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 changer 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.

2
Adam