I'm pretty sure I've caught a bug here that needs fixing (simple fix).
in nggfunctions.php (around LINES 370-371) for the function nggShowAlbum():
if ( is_array($album->gallery_ids) )
$out = nggCreateAlbum( $album->gallery_ids, $template, $album );
will sometimes return $out as null because of some inconsistency in ngg-db.php (around LINES 330-332) for the function nggdb::find_album():
// Unserialize the galleries inside the album
if ( $album ) {
if ( !empty( $album->sortorder ) )
$album->gallery_ids = unserialize( $album->sortorder );
The database field for gallery ids is actually "galleries". What happens is that in certain cases $album->galleries will be returned from nggdb::find_album() rather than the expected $album->gallery_ids in nggShowAlbum().
A simple fix would be to change $album->gallery_ids TO $album->galleries in nggdb::find_album(); This would have to be propagated in two other locations: in the nggShowAlbum() function (as seen above) and around LINE 635 in ngg-db.php:
Change:
$gallery_list = implode(',', $album->gallery_ids);
To:
$gallery_list = implode(',', $album->galleries);