Blog Reacción Estudio

¡Tu zona de aprendizaje!

Como crear una nube de tags con PHP

Como crear una nube de tags con PHP

Para crear nuestra nube de etiquetas con PHP vamos a utilizar la clase PHP Tag cloud creada por lotsofcode.

Os voy a poner a continuación un ejemplo que utilicé una vez en el desarrollo de una página que necesitaba una nube de etiquetas:

CSS

:link { text-decoration: none;}
:visited { text-decoration:none;}   

a{
	color:#88D6FF;
}

.tagg span{
	margin-right:8px;
}

a:hover{
	text-decoration:underline;	
}

#tagcloud_1 {
    font-family: "Arial";
    opacity: .5; 
    font-size: 12pt;    
    line-height: 18pt;
}

#tagcloud_2 {
    font-family: "Arial";
    opacity: .5; 
    font-size: 13pt;    
    line-height: 18pt;
}

#tagcloud_3 {
    font-family: "Arial";
    opacity: .5; 
    font-size: 14pt;    
    line-height: 18pt;
}

#tagcloud_4 {
    font-family: "Arial";
    opacity: .5;
    font-size: 15pt;    
    line-height: 18pt;
}

#tagcloud_5 {
    font-family: "Arial";
    opacity: .5;
    font-size: 16pt;    
    line-height: 18pt;
}

#tagcloud_6 {
    font-family: "Arial";
    opacity: .6;
    font-size: 17pt;    
    line-height: 18pt;
}

#tagcloud_7 {
    font-family: "Arial";
    opacity: .7;
    font-size: 18pt;    
    line-height: 18pt;
}

#tagcloud_8 {
    font-family: "Arial";
    opacity: .8;
    font-size: 19pt;    
    line-height: 18pt;
}

#tagcloud_9 {
    font-family: "Arial";
    opacity: .9;
    font-size: 20pt;    
    line-height: 18pt;
}

#tagcloud_10 {
    font-family: "Arial";
    font-size: 21pt;    
    line-height: 18pt;
}

PHP

include("TagCloud.php");
include("conexion.php");

class tags{
		
	public $mysql;
		
	function tags(){
		
		$this->mysql = new conectarMySQL();
		$this->mysql->conectar();
			
	}
		
		
	function obtener(){
			
		$sql = $this->mysql->consultar("SELECT tags FROM tabla");
			
		if($sql == true){
				
			$full_tags = "";
				
			while($row = $this->mysql->obtener_consulta()){
					
				$tag = $row['tags'];
					
				//comprobamos que el último caracter sea una coma.
				$pos = strlen($row['tags']) - 1;
					
				//si el último caracter no es una coma, se la ponemos.
				if($tag[$pos] != ","){
					
					$tag = $tag.",";
					
				}
					
				$full_tags = $full_tags." ".$tag;
					
			}
				
			//remplazamos posibles errores
			$full_tags = str_replace(", ",",",$full_tags);
			$full_tags = str_replace(",,",",",$full_tags);
				
			//limpiamos la primera coma
			$full_tags = substr($full_tags,1,strlen($full_tags));
				
			//separamos los tags uno a uno en un array
			$array_tags = explode(",", $full_tags);
								
			return $array_tags;
				
				
		}else{
			echo "error ".mysql_error();	
		}
			
	}			
		
}

//instanciamos la clase
$f = new tags();

//creamos el array con los tags
$array = $f->obtener();

//cremos la nube de etiquetas con nuestros tags
$o = new Cal_TagCloud($array);

//personalizamos la nube de etiquetas
$o->setmaxTags(25)
  ->setShowScore('score')
  ->setLink('http://www.tuweb.com/tag/%s')
  ->buildCloud();

//mostramos la nube de etiquetas
echo $o->outputCloud;

El archivo conexión.php es una clase que utilizo para hacer las conexiones y consultas con la base de datos, para obtener esta clase puedes ver el artículo de Instanciar una clase dentro de otra en PHP 5, puesto que es el mismo archivo Conexión.php que tiene esa entrada.

Descargar PHP Tag Cloud