Reordenar tipos de contenido en ("/ node / add")

12

¿Hay alguna forma de reordenar los tipos de contenido que se muestran en el nodo / agregar?

whitefleaCH
fuente

Respuestas:

18

¡Sip! Simplemente edite su menú "Navegación" (en / admin / structure / menu / manage / navigation) y reordene las entradas del menú en "Agregar contenido". Ahora, cuando vayas a / node / add, aparecerán en el orden en que los configures en el menú "Navegación". Ejemplo de captura de pantalla a continuación. En / node / add aparecerán como Página básica, luego Artículo.

ingrese la descripción de la imagen aquí

Chaulky
fuente
Oh querido, cómo podría extrañar eso. Sentirse estúpido ...
whitefleaCH
no, la única razón por la que me di cuenta de que podías hacerlo fue respondiendo una pregunta diferente hace unos días ... si me hubieras preguntado esto la semana pasada, no habría tenido idea :)
Chaulky
Solo una pregunta complementaria aquí: el menú Agregar contenido está bien reordenado en el menú Nav pero en el menú Administrador superior, el orden sigue siendo alfabético. ¿Algún consejo para reordenar las entradas Agregar contenido en el menú de administración? Gracias.
Toki
2

Tendría que recurrir a un módulo personalizado para esto, ya que el orden alfabético está codificado en la función de devolución de llamada de la página node_overview_types()(en realidad está construido en el _node_types_build()que se llama desde esa función).

Sin saber en qué desea ordenar, es bastante difícil dar una respuesta completa, pero pondré el código esqueleto en:

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

Asegúrese de mantener su función de devolución de llamada en el archivo del módulo principal, de lo contrario tendrá que meterse con anular la filetecla para el elemento del menú original, lo que nunca es divertido.

Tendría que implementar su propia página de administración si desea poder cambiar el pedido a través de la interfaz de usuario.

Clive
fuente
Gracias Clive Solo pensé que podría haber una forma diferente.
fndtn357