(「/ node / add」)のコンテンツタイプを並べ替える


12

node / addに表示されるコンテンツタイプを並べ替える方法はありますか?

回答:


18

うん!(/ admin / structure / menu / manage / navigationにある)「ナビゲーション」メニューを編集し、「コンテンツの追加」の下のメニューエントリの順序を変更するだけです。これで、/ node / addに移動すると、「ナビゲーション」メニューで設定した順序で表示されます。以下のスクリーンショットの例。/ node / addでは、基本ページ、記事の順に表示されます。

ここに画像の説明を入力してください


ああ、どうしてそれを見逃すことができるのか。感じ愚かな...
whitefleaCH

しないでください。数日前に別の質問に答えることでそれができると私が思った唯一の理由は...先週聞いたことがありませんでした:)
Chaulky

ここにある補足的な質問:[コンテンツの追加]メニューは[ナビゲーション]メニューで適切に並べ替えられていますが、トップの[管理]メニューでは、まだアルファベット順です。管理メニューのコンテンツエントリの追加を並べ替えるヒントはありますか?ありがとうございました。
トキ

2

アルファベット順はページコールバック関数にハードコーディングされているため、カスタムモジュールに頼る必要がありますnode_overview_types()(実際_node_types_build()には、その関数から呼び出されるように構築されます)。

何をソートしたいかわからないので、完全な答えを出すのは非常に難しいですが、スケルトンコードを以下に入れます。

function MYMODULE_menu_alter(&$items) {
  // Override the default page callback for the content types page
  $items['admin/structure/types']['page callback'] = 'MYMODULE_node_admin_overview';
}

function MYMODULE_node_admin_overview() {
  // Get the normal page build
  $default_build = node_overview_types();

  // Extract the table rows from the build
  $table_rows = $default_build['#rows'];

  // Perform an operation on these rows to re-order them for your needs
  _some_call_by_reference_sort_function($table_rows);

  // Assign the newly ordered rows back to the page build
  $default_build['#rows'] = $table_rows;

  return $default_build;
}

メインモジュールファイルにコールバック関数を保持するようにしてください。そうしないとfile、元のメニュー項目のキーをオーバーライドすることに煩わされる必要があり、決して面白くありません。

UIを使用して順序を変更できるようにするには、独自の管理ページを実装する必要があります。


ありがとう、クライヴ。別の方法があるかもしれないと思った。
fndtn357
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.