Related By Terms para Drupal 7

Me ha costado pero por fin he publicado mi primer módulo en Drupal.org. Se llama Related by Terms y básicamente crea un bloque para mostrar contenido relacionado con el nodo que estamos viendo.

Para calcular las relaciones con otros nodos estoy utilizando los términos de taxonomías, de forma que se cuentan las coincidencias en términos del nodo actual, y aparecerán primero en la lista los nodos con mas coincidencias.

La query que estoy usando es así:

/**
 * Create and prepare the database query.
 *
 * The query uses a tag called relatedbyterms_count
 * that will allow other modules to alter it.
 */
function relatedbyterms_get_query($nid) {
  global $language;
  $limit = relatedbyterms_get_elements_displayed();

  $subquery = db_select('taxonomy_index', 't1');
  $subquery->condition('nid', $nid);
  $subquery->addField('t1', 'tid');

  $query = db_select('taxonomy_index', 't');
  $query->join('node', 'n', 'n.nid = t.nid');
  $query->addTag('relatedbyterms_count');
  $query->addTag('node_access');
  $query->condition('t.tid', $subquery, 'IN');
  $query->condition('t.nid', $nid, '<>');
  $query->condition('n.language', $language->language);
  $query->addField('t', 'nid');
  $query->addExpression('count(\'t.nid\')', 'count');
  $query->orderBy('count, nid', 'DESC');
  $query->groupBy('t.nid');

  if ($limit > 0) {
    $query->range(0, $limit);
  }

  return $query;
}

Como podeis ver se usa la tabla taxonomy_index, donde se mantiene un listado de todos los términos de taxonomía asociados a nodos. Mediante un count() y un groupBy puedo agrupar y contar las coincidencias en términos con otros nodos.

Acabo de publicar la primera versión estable del módulo y ahora estoy trabajando para poder incluirlo en la revisión de seguridad de Drupal.

Estoy abierto a sugerencias o comentarios...