Foros del Web » Programando para Internet » PHP »

limitar tagging / nube de tags / tag cloud

Estas en el tema de limitar tagging / nube de tags / tag cloud en el foro de PHP en Foros del Web. Muy buenas, Tengo el siguiente codigo para mostrar un tagcloud Código PHP:     $tags  = array();       $tagscount  = array();       $result  =  mysql_query ( "SELECT tags FROM tabla WHERE tags<>''" );      while( ...
  #1 (permalink)  
Antiguo 24/03/2009, 17:59
 
Fecha de Ingreso: diciembre-2001
Mensajes: 118
Antigüedad: 22 años, 4 meses
Puntos: 0
limitar tagging / nube de tags / tag cloud

Muy buenas,

Tengo el siguiente codigo para mostrar un tagcloud

Código PHP:
    $tags = array(); 
    
$tagscount = array(); 
    
$result mysql_query("SELECT tags FROM tabla WHERE tags<>''"); 
    while(
$row=mysql_fetch_array($result)) { 
        
$a str_replace(" ",",",$row["tags"]); 
        
$ap explode(",",$a); 
        
$tags array_merge($tags,$ap); 
    } 
    foreach(
$tags as $v) { 
        
$v trim(strtolower($v)); 
        
$tagscount[$v]++; 
    } 
    
$mx=max($tagscount); 
    
$mn=min($tagscount); 
    
$mx_size=100
    
$mn_size=6
    
$s $mx-$mn
    if(
$s==0$s=1
    
//$z = ($mx_size - $mn_size)/($s); 
    
foreach($tagscount as $k=>$v) { 
        
$size ceil($mn_size+(($v-$mn)*1)); 
        echo 
"<span style=\"font-size:${size}pt\"><a href=\"http://link/".urlencode($k)."\">$k</a></span> "
    } 
Pero me gustaria limitar el número de tags a mostrar y el tamaño minimo y maximo de fuente, es eso posible? porque aunque tiene una variable mx_size y mn_size, esto no acaba de funcionar, al parecer va multiplicando esos nombres si el mismo tag aparece demasiadas veces.

Muchas gracias
  #2 (permalink)  
Antiguo 25/03/2009, 13:07
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: limitar tagging / nube de tags / tag cloud

Obtener solo 50 tags:

SELECT tags FROM tabla WHERE tags<>'' LIMIT 50

Para el tamaño de fuente puedes usar rand(minimo, maximo)

Código php:
Ver original
  1. $mx_size=100;
  2.     $mn_size=6;
  3.     $s = rand($mn_size, $mx_size);
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 25/03/2009, 15:42
 
Fecha de Ingreso: diciembre-2001
Mensajes: 118
Antigüedad: 22 años, 4 meses
Puntos: 0
Respuesta: limitar tagging / nube de tags / tag cloud

perdona,
no me habia explicado bien, tal y como me lo planteas funcionaria si en cada registro solo hubiera escrito un tag, pero pueden haber varios, es por eso que hay una funcion para extraer los tags elimi8nando espaciados y comas.
  #4 (permalink)  
Antiguo 25/03/2009, 16:08
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: limitar tagging / nube de tags / tag cloud

array_slice() ?

Edito:

Puedes tener errores si no declaras $tagscount antes de comenzar a manipularla.

Código php:
Ver original
  1. $tagscount = array();
  2.     foreach($tags as $v) {
  3.         $v = trim(strtolower($v));
  4.         if(!isset($tagscount[$v]))
  5.               $tagscount[$v] = 1;
  6.         else
  7.               $tagscount[$v]++;
  8.     }
__________________
- León, Guanajuato
- GV-Foto

Última edición por Triby; 25/03/2009 a las 16:15
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:46.