node / addに表示されるコンテンツタイプを並べ替える方法はありますか?
node / addに表示されるコンテンツタイプを並べ替える方法はありますか?
回答:
うん!(/ admin / structure / menu / manage / navigationにある)「ナビゲーション」メニューを編集し、「コンテンツの追加」の下のメニューエントリの順序を変更するだけです。これで、/ node / addに移動すると、「ナビゲーション」メニューで設定した順序で表示されます。以下のスクリーンショットの例。/ node / addでは、基本ページ、記事の順に表示されます。
アルファベット順はページコールバック関数にハードコーディングされているため、カスタムモジュールに頼る必要があります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を使用して順序を変更できるようにするには、独自の管理ページを実装する必要があります。