cloud tag with count number of times the tag is use.

I take this code from the site, sorry I don't remember the node. and change it to what i wanted.
Hope to help some one.

<?php
class tag
{
    var
$name = "";
    var
$count = 0;
    var
$tid = 0;

    function
getCount()
    {
        return
$this->count;
    }
    function
getName()
    {
        return
$this->name;
    }
    function
setCount($var)
    {
       
$this->count = $var;
    }
    function
setName($var)
    {
       
$this->name = $var;
    }
    function
setTID($var)
    {
       
$this->tid = $var;
    }
    function
getTID()
    {
        return
$this->tid;
    }

}
$count = 0; // Overall count of used tags
$threshold = 1; // How many tags are needed to get displayed
$font_size = 0.8;
$query = "SELECT d.name,d.tid FROM {term_data} d, {term_node} dn WHERE dn.tid=d.tid;";
$result = db_query($query);
$tags['Test'] = 0;
while(
$node = db_fetch_array($result))
{
    if (
$tags[$node['name']] == NULL)
    {
       
$tags[$node['name']] = new tag();
       
$tags[$node['name']]->setName($node['name']);
       
$tags[$node['name']]->setCount(1);
       
$tags[$node['name']]->setTID($node['tid']);
       
$count = $count + 1;
    }
    else
    {
       
$tags[$node['name']]->setCount(
           
$tags[$node['name']]->getCount() + 1
       
);
       
$count = $count + 1;
    }
}
foreach(
$tags as $tag)
{
   
$mycount = $tag->count;
    if(
$mycount > $threshold)
    {
       
$fraction = ((int)(($mycount / $count) * 60)) / 10;
        if(
$fraction < $font_size)
        {
           
$fraction = $font_size;
        }
        echo
'<span style="font-size: ' . $fraction . 'em;">' . l($tag->name,'taxonomy/term/' . $tag->tid,array('title="' . $tag->count . ' Nodes"')).'[' .$tag->count .']</span> ';
    }
}
?>

if you only one to display the cloud tag from one vocabular you need to add this to the end of the query

$query = "SELECT d.name,d.tid FROM {term_data} d, {term_node} dn WHERE dn.tid=d.tid and d.vid='6';";

Where my vocabulary id is 6

this is the example: Documentados
Oskar

Works well, but with a WARNING....

brewreview.info - December 20, 2007 - 01:47

Don't try to use this twice on the same page by changing the VID, to have two or more tag cloud blocks, each showing different Vocabularies.

Big ol' WSOD:
Fatal error: Cannot redeclare class tag in /home/website/public_html/includes/common.inc(1347) : eval()'d code on line 3

The only way I was able to unbreak my site was use my hoster's phpMyAdmin interface to hack into the MySQL database and delete one of the two instances of these blocks. Not pleasant.

Anybody have any thoughts how to avoid this headache in the future? That is to say, a way to have more than one of these tag-clouds?

Cheers,
//TB

 
 

Drupal is a registered trademark of Dries Buytaert.