Как вывести несколько случайных нод, если категория пуста?

Вот поступила задачка: Нужно выводить 20 случайных нод, если категория не заполнена.
Переопределяем функцию вывода термина:
 
function caraudio_menu_alter(&$items) {
  $items['taxonomy/term/%'] = array(
    'page callback' => '_caraudio_taxonomy_term_page',
    'page arguments' => array(2),
    'access arguments' => array('access content'),
  );
}
 
И пишем свою:
 
function _caraudio_taxonomy_term_page($tid) {
  $term = taxonomy_get_term($tid); 
  $result = taxonomy_select_nodes(array($term->tid), 'and', 0, TRUE);
  $output = '';	
  $has_rows = FALSE;
  while ($node = db_fetch_object($result)) {
    $output .= node_view(node_load($node->nid), 1);
    $has_rows = TRUE;
  }
  if($has_rows) {
    module_load_include('inc', 'taxonomy', 'taxonomy.pages'); 
    return taxonomy_term_page($tid); 
  }
  else {
    $output_new = '';
    $result_new = db_query("SELECT * FROM {node} n WHERE n.type = 'ed_prod' ORDER BY RAND() LIMIT 0, 20");
    while ($node2 = db_fetch_object($result_new)) {
    $output_new .= node_view(node_load($node2->nid), 1);
   }
   return $output_new; 
  }
}