ノード追加ページでコンテンツタイプを非表示にする方法は?


11

ノード追加ページでコンテンツタイプを非表示にする方法が必要です。それでも、コンテンツタイプを分離する2つの個別のノード追加ページを作成する方法が必要です。私はDrupal 7を使用していて、4つの異なるコンテンツタイプがあります。それらの3つをデフォルトのノード追加ページに配置し、4つ目を個別に配置したいと思います。どうすればいいですか?ありがとう

回答:


11

2つの可能性:

  • admin/structure/menu/manage/navigation 不要なメニュー項目を移動/削除します。
  • 最もクリーンな方法:ロールと権限を使用します。ユーザーがコンテンツタイプを作成できない場合、リンクはどのメニューにも表示されません。

ご回答有難うございます。ユーザーが4番目のコンテンツタイプのノードを作成できるようにする必要があるため、最初に可能な方法は私が使用する方法です。他の3つから分離する必要があります。
oobie11

では、メニュー項目を別のメニューに移動するか非表示にして、同じメニューリンク(node / add / <your_content_type>)をもう1つ作成します
nourcy

これが最良の答えです。
クリスティ

4

これをカスタムモジュールに配置します。

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

2
MENU_DEFAULT_LOCAL_TASKは、リンクをタブに変換します。代わりにMENU_CALLBACKを使用しました。
Freeman

3

更新

MENU_CALLBACK、他の回答で示唆されているように、ここでは機能しませんでした。それらはまだnode/addページに表示されます。

このコードは機能しました:

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

もちろん、node/addそのタイプのリンクを無効にする(非表示にしない)ことを想定しています。


元の回答

このnode/addページはNodeモジュールによって提供されます。この投稿によると、ナビゲーションメニューのメニュー項目を無効にすることで、必要な操作を実行できる場合があります。http//data.agaric.com/disabling-or-moving-nodeaddcontent-type-links-from-beneath- add-content-navigation-menu-also-removes

これは少しバグなので、信頼できる方法ではないかもしれません。個人的にはnode/add、既存のページをコピーして特定の変更を加えることで、モジュールにページのカスタムバージョンを作成します。その後、私は自分のバージョンに移動するhook_menu_alterためnode/addに使用します。

代わりに(ページマネージャーを使用して)ビューまたはパネルに置き換えることができるかもしれませんが、私はこれを試していません。おそらく自動化が失われるでしょう。


ありがとう!node/addコピーするページはどこにありますか?また、さまざまなコンテンツタイプを印刷することをどのように提案しますか?
oobie11

にあるはずnode.pages.incです。他のタイプを作成するときに表示する必要があり、静的リストがない場合は、コードで実行します。
wizonesolutions 2011

自己フォローアップ:4.5年前の自分の答えは好きではありません。上記のいずれかを使用してください:)
wizonesolutions
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.