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

Holas

tengo este sistema de tag-cloud

Tabla:

Código PHP:
CREATE TABLE `tags` (
  `
id_tagint(11NOT NULL auto_increment,
  `
tagvarchar(100collate utf8_unicode_ci NOT NULL default '',
  `
relevanciaint(11NOT 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` (
  `
idint(11NOT NULL auto_increment,
  `
parentint(11) default NULL,
  `
titletext collate utf8_unicode_ci,
  `
pathtext collate utf8_unicode_ci,
  `
descriptiontext collate utf8_unicode_ci,
  `
keywordstext collate utf8_unicode_ci,
  `
datedate 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