Pulling sub-site content into specific pages

This can be achieved with the help of a plugin.
A custom, hand coded, solution can be built analyzing and modifying the code of such plugin(s).

Searching for “multisite + widget“, I found one plugin of interest.

Multisite Posts

Get posts from another child site in a multisite setup. You can also integrate the plugin into your theme file, very efficient. Offers shortcode and widget for feature usage. Internationalization ready.

Seems well coded, is up to date with the latest WordPress version (3.4.2) and may solve the index.php issue (via shortcode) and the widget too.

Caveat is that each site has to be manually added (1 shortcode/widget per site).


Custom Shortcode to Use with the Plugin

Automates what would be a manually typed list of shortcodes.

add_shortcode( 'blogs_posts', 'wpse_72355_blogs_posts' );

function wpse_72355_blogs_posts( $attr ) 
{
    global $wpdb;
    $blogs = $wpdb->get_results($wpdb->prepare("
        SELECT blog_id
        FROM {$wpdb->blogs}
        WHERE site_id = '{$wpdb->siteid}'
        AND spam = '0'
        AND deleted = '0'
        AND archived = '0'
        AND mature="0" 
        AND public="1"
    "));

    $the_blogs_posts="";
    
    foreach ($blogs as $blog) 
    {
        $details = get_blog_details( $blog->blog_id );
        
        $the_blogs_posts .= 'From the site: <a href="' 
            . $details->siteurl . '">' 
            . $details->blogname . '</a><br>';
            
        $the_blogs_posts .= do_shortcode( 
            '[multisite_posts no="' . $attr['no'] 
            . '" site_id="' . $blog->blog_id . '"]' 
            );
    }
    return $the_blogs_posts; 
}

The foreach ($blogs as $blog) could be adapted to work like this:

$original_blog_id = get_current_blog_id();

foreach ($blogs as $blog) 
{
    switch_to_blog( $blog->blog_id );

    // http://codex.wordpress.org/Function_Reference/get_posts
    $posts_array = get_posts( $args ); 

    // Iterate through $posts_array and build the output
}
switch_to_blog( $original_blog_id );

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)