
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
Jue, 03/04/2008 - 3:50pm — oskar_calvoeste 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
Jue, 08/11/2007 - 7:45pm — chelocatmi asunto es mi pregunta, gracias
Duda del codigo
Mié, 07/11/2007 - 6:56pm — chelocatTal 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
Enviar un comentario nuevo