В конце я создал свой собственный пользовательский модуль, чтобы получать термины из базы данных и группировать / сортировать их.
Обратите внимание, что я немного изменил приведенный ниже код для публикации, и я не тестировал измененную версию. Стоит также отметить, что он был написан для сайта, использующего PostgreSQL, но он должен работать с MySQL.
/**
* Implements hook_block_info().
*/
function MYMODULE_block_info() {
$blocks['poptags'] = array(
'info' => t('Most Popular Tags'),
'cache' => DRUPAL_NO_CACHE
);
return $blocks;
}
/**
* Implements hook_block_view().
*/
function MYMODULE_block_view($delta = '') {
$block = array();
switch ($delta) {
case 'poptags':
$block['subject'] = t('Most Popular Tags');
$block['content'] = _MYMODULE_popular_terms();
break;
}
return $block;
}
function _MYMODULE_popular_terms() {
$vocabId = 1;
$links = array();
$results = db_query_range('SELECT taxonomy_term_data.tid, taxonomy_term_data.name, count(taxonomy_term_data.tid) AS times_used FROM taxonomy_term_data INNER JOIN taxonomy_index ON taxonomy_term_data.tid = taxonomy_index.tid WHERE taxonomy_term_data.vid = :vid GROUP BY taxonomy_term_data.tid, taxonomy_term_data.name ORDER BY times_used DESC', 0, 10, array(':vid' => $vocabId));
foreach ($results as $term) {
$links['term-link-' . db_escape_field($term->name)] = array('title' => $term->name, 'href' => drupal_get_path_alias('taxonomy/term/' . $term->tid));
}
return theme('links', array('links' => $links, 'attributes' => array('class' => 'term-links')));
}
Не забудьте изменить MYMODULE
название вашего модуля. Наконец, измените $vocabId = 1
строку в _MYMODULE_popular_terms
функции на vid (идентификатор лексики) словаря, который вы хотите перечислить.
Обратите внимание, что это только для Drupal 7, хотя это не займет много времени, чтобы перенести его на Drupal 6.