Community Documentation

ARCHIVE: Display tags as cloud

Last updated October 1, 2011. Created by Tim Daniel@we-a... on February 7, 2006.
Edited by JuliaKM, domesticat, greggles, sepeck. Log in to edit this page.

Creates a cloud of your used tags. Didn't test on Drupal 4.6 but should work too.

Instead of this snippet you can just install the tagadelic module.

<?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) * 1000)) / 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"')) . '</span> ';
    }
}
?>

Page status

About this page

Drupal version
Drupal 4.7.x

Archive

Drupal’s online documentation is © 2000-2013 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License. Comments on documentation pages are used to improve content and then deleted.
nobody click here