Imagen de oskar_calvo

Nube de etiquetas; especias para nuestra ensalada.

Ojo, este código lo he sacado de drupal.org, y le he añadido únicamente el contar la cantidad de veces que aparecen las etiquetas utilizadas. Pasarlo a una lista ordenada hacia abajo tambíen sería sencillo, únicamente sacar las estiquetas span del foreach, y crear una lista con elementos li en el comando foreach.

<?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> ';
    }
}
?>

Se puede descargar de: http://drupal.org.es/archivos/nubeetiquetas.txt

Se puede ver como queda en: http://www.documentados.com/blog/oskar

Lo que no he conseguido hacer es que me coja un único vocabulario.

Un saludo

Óskar

Comentarios

este código lo colocamos en

este código lo colocamos en un bloque, y le habilitamos la opción de introducir al cuerpo del bloque código php, de tal forma que nos aparecerá la nube de etiques en el bloque, si queremos tenerlo en un nodo la nube de etiquetas 3/4 de lo mismo, copiamos-pegamos el código en un nodo y le decimos que el contenido es php.

Un saludo

Oskar

Documentados, soluciones con software libre

donde se coloca este codigo

mi asunto es mi pregunta, gracias

Duda del codigo

Tal vez les paresca la pregunta más bruta pero no entiendo donde se coloca este codigo, dentro de un modulo como php, o me creo otro modulo solo para este codigo.
Gracias