diff --git a/include/functions_tag.inc.php b/include/functions_tag.inc.php index 90734c321..00579f578 100644 --- a/include/functions_tag.inc.php +++ b/include/functions_tag.inc.php @@ -308,4 +308,18 @@ SELECT * return query2array($query); } +function tags_id_compare($a, $b) +{ + return ($a['id'] < $b['id']) ? -1 : 1; +} + +function tags_counter_compare($a, $b) +{ + if ($a['counter'] == $b['counter']) + { + return tags_id_compare($a, $b); + } + + return ($a['counter'] < $b['counter']) ? +1 : -1; +} ?> \ No newline at end of file diff --git a/include/menubar.inc.php b/include/menubar.inc.php index fdb106b45..7cb65c3e5 100644 --- a/include/menubar.inc.php +++ b/include/menubar.inc.php @@ -138,6 +138,8 @@ function initialize_menu() else if ($conf['menubar_tag_cloud_content'] == 'always_all' or ($conf['menubar_tag_cloud_content'] == 'all_or_current' and empty($page['items'])) ) { $tags = get_available_tags(); + usort($tags, 'tags_counter_compare'); + $tags = array_slice($tags, 0, $conf['menubar_tag_cloud_items_number']); foreach ($tags as $tag) { $block->data[] = array_merge( diff --git a/tags.php b/tags.php index 93f7150f4..4ae3885e0 100644 --- a/tags.php +++ b/tags.php @@ -6,25 +6,6 @@ // | file that was distributed with this source code. | // +-----------------------------------------------------------------------+ -// +-----------------------------------------------------------------------+ -// | functions | -// +-----------------------------------------------------------------------+ - -function counter_compare($a, $b) -{ - if ($a['counter'] == $b['counter']) - { - return id_compare($a, $b); - } - - return ($a['counter'] < $b['counter']) ? +1 : -1; -} - -function id_compare($a, $b) -{ - return ($a['id'] < $b['id']) ? -1 : 1; -} - // +-----------------------------------------------------------------------+ // | initialization | // +-----------------------------------------------------------------------+ @@ -145,7 +126,7 @@ else // we want only the first most represented tags, so we sort them by counter // and take the first tags - usort($tags, 'counter_compare'); + usort($tags, 'tags_counter_compare'); $tags = array_slice($tags, 0, $conf['full_tag_cloud_items_number']); // depending on its counter and the other tags counter, each tag has a level