Comment masquer un type de contenu sur la page d'ajout de nœud?

11

J'ai besoin d'un moyen de masquer un type de contenu sur la page d'ajout de nœud, ou mieux encore, de créer deux pages d'ajout de nœud séparées qui séparent mes types de contenu. Je suis sur Drupal 7 et j'ai quatre types de contenu différents. Je voudrais que trois d'entre eux soient sur la page d'ajout de nœud par défaut et le quatrième soit séparé. Comment pourrais-je faire ça? Merci

oobie11
la source

Réponses:

11

Deux possibilités:

  • admin/structure/menu/manage/navigation déplacer / supprimer un élément de menu dont vous ne voulez pas.
  • Manière la plus propre: utilisez des rôles et des autorisations. Si l'utilisateur ne peut pas créer de type de contenu, le lien n'apparaîtra dans aucun menu.
nourcy
la source
Merci pour votre réponse. Votre première voie possible est celle que j'utiliserais car j'ai encore besoin d'utilisateurs pour pouvoir créer des nœuds de mon quatrième type de contenu. J'ai juste besoin qu'il soit séparé des trois autres.
oobie11
Ok donc déplacez simplement l'élément de menu dans un autre menu ou masquez-le et créez-en un autre avec le même lien de menu (node ​​/ add / <your_content_type>)
nourcy
C'est la meilleure réponse.
Christia
4

Mettez cela dans un module personnalisé:

function yourcustommodule_menu_alter(&$items) {
  if (isset($items['node/add/your-content-type'])) {
    $items['node/add/your-content-type']['type'] = MENU_DEFAULT_LOCAL_TASK;
  }
}
Jancis
la source
2
MENU_DEFAULT_LOCAL_TASK convertit les liens en onglets. J'ai utilisé MENU_CALLBACK à la place.
Freeman
3

MISE À JOUR

MENU_CALLBACK, comme suggéré dans d'autres réponses, n'a pas fonctionné pour moi ici. Ils apparaissent toujours sur la node/addpage.

Ce code a fonctionné:

function MYMODULE_menu_alter(&$items) {
  if (isset($items['node/add/your-content-type'])) {
    unset($items['node/add/your-content-type']);
  }
}

Bien sûr, cela suppose que vous souhaitez désactiver (pas masquer) le node/addlien pour ce type.


RÉPONSE ORIGINALE

La node/addpage est fournie par le module Node. Vous pourriez être en mesure de faire ce que vous voulez en désactivant l'élément de menu dans le menu Navigation, selon cet article: http://data.agaric.com/disabling-or-moving-nodeaddcontent-type-links-from-beneath- ajouter-contenu-navigation-menu-supprime également

C'est un peu un bug, donc ce n'est peut-être pas un moyen fiable de le faire. Personnellement, je créerais une version personnalisée de la node/addpage dans un module en copiant l'existant et en faisant mes modifications spécifiques. Ensuite j'utiliserais hook_menu_alterpour faire node/addpasser à ma version.

Vous pourrez peut-être le remplacer par une vue ou un panneau à la place (avec Page Manager), mais je n'ai pas essayé cela, et vous perdriez probablement l'automatisation.

wizonesolutions
la source
Merci! Où se trouve la node/addpage à copier? Et comment proposeriez-vous d'imprimer les différents types de contenu?
oobie11
Cela devrait être node.pages.inc. Si vous avez besoin que les autres types s'affichent lorsque vous les créez et que vous n'avez pas de liste statique, faites-le en code.
wizonesolutions
Auto-suivi: je n'aime pas ma propre réponse d'il y a 4,5 ans. Utilisez l'une de celles ci-dessus :)
wizonesolutions