Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2007, 15:12
Chemix
 
Fecha de Ingreso: mayo-2003
Mensajes: 92
Antigüedad: 23 años, 5 meses
Puntos: 0
Sistema tag-cloud

Holas

tengo este sistema de tag-cloud

Tabla:

Código PHP:
CREATE TABLE `tags` (
  `
id_tag` int(11) NOT NULL auto_increment,
  `
tag` varchar(100) collate utf8_unicode_ci NOT NULL default '',
  `
relevancia` int(11) NOT NULL default '0',
  
PRIMARY KEY  (`id_tag`)
) 
ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=57 ; 
Funciones:
Código PHP:
function get_tag_data() { 
$result = mysql_query("SELECT * FROM tags GROUP BY tag ORDER BY relevancia DESC"); 
while(
$row = mysql_fetch_array($result)) { 
$arr[$row['tag']] = $row['relevancia'];
} 
ksort($arr); 
return 
$arr; 
}

function 
get_tag_cloud() {

    
$min_font_size = 10;
    
$max_font_size = 20;

    
$tags = get_tag_data();

    
$minimum_count = min(array_values($tags));
    
$maximum_count = max(array_values($tags));
    
$spread = $maximum_count - $minimum_count;

    if(
$spread == 0) {
        
$spread = 1;
    }

    
$cloud_html = '';
    
$cloud_tags = array(); 
    foreach (
$tags as $tag => $relevancia) {
        
$size = $min_font_size + ($relevancia - $minimum_count) 
            * (
$max_font_size - $min_font_size) / $spread;
        
$cloud_tags[] = '<a style="font-size: '. floor($size) . 'px' 
            
. '" class="tag_cloud" href="http://www.chemuska.com/search.php?swords=' . $tag 
            
. '" title="\'' . $tag  . '\' haz click para ver resultados">' 
            
. htmlspecialchars(stripslashes($tag)) . '</a>';
    }
    
$cloud_html = join("\n", $cloud_tags) . "\n";
    return 
$cloud_html;

} 
Inprime las tags:

Código PHP:
print get_tag_cloud(); 

Hasta aqui fenomenal y me funciona muy bien, creo las tags en la db a traves de un formulario y les asigno una relevancia a cada tag de forma que aparezca con una fuente mas grande o mas pequeña

Ahora viene mi consulta y os agradeceria que ayudarais ya que no consigo hacer lo que os expongo...

En mi sitio tengo diferentes categorias y lo que quiero es asignar a cada tag el id de la categoria donde tiene que imprimirse, por supuesto conservando la relevancia de cada tag y demas funciones actuales

Os pongo la tabla de las categorias:

Código PHP:
CREATE TABLE `categories` (
  `
id` int(11) NOT NULL auto_increment,
  `
parent` int(11) default NULL,
  `
title` text collate utf8_unicode_ci,
  `
path` text collate utf8_unicode_ci,
  `
description` text collate utf8_unicode_ci,
  `
keywords` text collate utf8_unicode_ci,
  `
date` date NOT NULL default '0000-00-00',
  
PRIMARY KEY  (`id`)
) 
ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=238 ; 
Os agradeceria mucho una ayuda para mi es importante acabar este proyecto y ya no doy mas

Saludos