Reordenar tipos de conteúdo em ("/ node / add")

12

Existe uma maneira de reordenar os tipos de conteúdo mostrados no nó / adicionar?

whitefleaCH
fonte

Respostas:

18

Sim! Basta editar o menu "Navegação" (em / admin / estrutura / menu / gerenciar / navegação) e reordenar as entradas do menu em "Adicionar conteúdo". Agora, quando você for para / node / add, eles aparecerão na ordem em que você os definir no menu "Navegação". Exemplo de captura de tela abaixo. Em / node / add, eles aparecerão como Página básica e, em seguida, Artigo.

insira a descrição da imagem aqui

Chaulky
fonte
oh querida, como eu poderia sentir falta disso. Sentindo-se estúpido ...
whitefleaCH
não, a única razão que eu percebi que você poderia fazer isso foi respondendo a uma pergunta diferente de alguns dias atrás ... tinha-lhe perguntado isso na semana passada eu tive nenhuma idéia :)
Chaulky
Apenas uma pergunta complementar aqui: o menu Adicionar conteúdo está bem reordenado no menu Nav, mas no menu Admin superior, o pedido ainda é alfabético. Alguma dica para reorganizar a opção Adicionar entradas de conteúdo no menu do administrador? Obrigado.
Toki
2

Você precisaria recorrer a um módulo personalizado para isso, pois a ordem alfabética é codificada na função de retorno de chamada da página node_overview_types()(na verdade, é construída na _node_types_build()qual é chamada a partir dessa função).

Sem saber o que você deseja classificar, é bastante difícil dar uma resposta completa, mas vou colocar o código do esqueleto em:

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;
}

Mantenha sua função de retorno de chamada no arquivo principal do módulo, caso contrário você terá que mexer com a substituição da filetecla do item de menu original, que nunca é divertido.

Você precisaria implementar sua própria página de administração para poder alterar a ordem por meio da interface do usuário.

Clive
fonte
Obrigado Clive. Eu apenas pensei que poderia haver uma maneira diferente.
Fndtn357