This is one of those modules that I will write if a) it doesn't exist; and b) I get the time.
We commonly have site designs that ask for specific blocks to appear on a View or Panel page (a specific path, like 'news') and on the nodes associated with that View (say, 'news' and 'story'). Right now, the only way to handle that is with either a) PHP block visibility; or b) a custom block.
I think I figured out how to add node-type visibility as an option that works in addition to existing path-based visibility. Here is the outline:
1) Create the following table:
{block_node_type}
bid == block id (int)
type == node type string or 'all-types' varchar (80)
Index on bid-type.2) Add an interface to block configuration using hook_form_alter() that allows the selection of node_type visibility.
3) If, no node types selected, insert 'all-types' into {block_node_type}. Otherwise, insert matching records.
4) If node types selected, automatically add 'node/*' to block page visibility list -- this may need to be done manually by the editor.
5) Use hook_db_rewrite_sql() to alter block_list() with a JOIN to {block_node_type}. (A little known feature.)
6) On install, run a hook_enable() function to set 'all-types' for each block. Alternately, on #6, we could simply set a variable if the {block_node_type} table is empty, similar to how node acces works now. In cases where the table is empty (or only contains 'all-types' the JOIN can be ignored.
Ideas? Volunteers?
yhahn (in IRC) suggested http://drupal.org/project/context

Comments
I echo young: context is the
I echo young: Context is the thing.
Context not just supports node type based block visibility, but addresses the problem "do x when (a+b+c)" on a general level. Out of the box it does block visibility settings based on a multitude of parameters (one of them node type). But it also allows for adding new context setters (e. g. 'current node type') and context getters (e. g. block visibility).
Check it out.
http://www.twitter.com/lx_barth
http://www.twitter.com/lxbarth
there may be another solution
Why not use path auto and place content/nodes to say blog/title then use block visibility for showing those blocks on needed pages only.
Geshan
Geshan