You need the information about the current post type in your callback function that renders the submenu page output. And at this point there is a lot of information ready:
add_action( 'admin_menu', 'wpse_60730_demo_submenu' );
/**
* Register sub menu pages.
*
* Note that get_current_screen() is still NULL now.
*
* @wp-hook admin_menu
* @return void
*/
function wpse_60730_demo_submenu()
{
// get public post types
$post_types = get_post_types( array ( 'public' => TRUE ) );
foreach ( $post_types as $post_type )
{
add_submenu_page(
"edit.php?post_type=$post_type",
"Extra $post_type", // this should be made translatable
"Extra $post_type", // this too
"edit_{$post_type}s",
"order-$post_type",
'wpse_60730_demo_callback'
);
}
}
/**
* Render the sub menu page output.
*
* All information is set now.
*
* @return void
*/
function wpse_60730_demo_callback()
{
$screen = get_current_screen();
global $typenow, $parent_file;
print "<pre>get_current_screen()\n" . htmlspecialchars( print_r( $screen, TRUE ) ) . '</pre><hr>';
print "<pre>\$typenow: " . htmlspecialchars( print_r( $typenow, TRUE ) ) . '</pre><hr>';
print "<pre>\$parent_file: " . htmlspecialchars( print_r( $parent_file, TRUE ) ) . '</pre>';
}