Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Nube de etiquetas con enlaces
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Nube de etiquetas con enlaces

Mejoramos la nube de etiquetas creándola con enlaces a otras páginas.

Esta vez vamos a terminar de mejorar la nube creando enlaces en los nombres de las etiquetas.

Para ello vamos a necesitar las mismas tablas que utilizamos en el artículo anterior y fijándonos en que utilizaremos el nombre lógico para crear la url del enlace.

Aquí vamos a tener que crear otro array asociativo con los datos que necesitamos para crear el enlace, es decir, el nombre de la etiqueta y el nombre lógico. Para ello tendremos que hacer otra nueva consulta a la base de datos con los datos de cada etiqueta.

El código quedaría de la siguiente forma:

$ssql_etiquetas="select nombre_etiqueta, etiqueta.id_etiqueta from etiqueta, articulo, articulo_etiqueta where etiqueta.id_etiqueta=articulo_etiqueta.id_etiqueta and articulo.id_articulo=articulo_etiqueta.id_articulo";
}
$rs_etiquetas=mysql_query($ssql_etiquetas);
//Creo un array para meter los datos de las etiquetas
$etiquetas = array();
//Para cada etiqueta averiguo cuantas veces aparece en los articulos
while($fila_etiquetas=mysql_fetch_object($rs_etiquetas)){
   $ssql_cuantos="select count(id_etiqueta) as cuantos from breve_etiqueta where id_etiqueta=".$fila_etiquetas->id_etiqueta." order by cuantos desc ";
   $rs_cuantos=mysql_query($ssql_cuantos);
   $fila_cuantos=mysql_fetch_object($rs_cuantos);
   //Voy creando el array asociativo
   $etiquetas[$fila_etiquetas->nombre_etiqueta]=$fila_cuantos->cuantos;
   //A su vez creamos otro array donde meteremos otro con los datos que necesitamos para crear lso enlaces
   $ssql_datos="select * from etiqueta where id_etiqueta=".$fila_etiquetas->id_etiqueta;
   $rs_datos=mysql_query($ssql_datos);
   $fila_datos=mysql_fetch_object($rs_datos);
   $ids[$fila_etiquetas->nombre_etiqueta]=$fila_datos->nombre_logico;
}

Con esto ya tendríamos los dos arrays que necesitamos creados, ahora tenemos que modifcar la función nube_etiquetas que tenemos en el articulo inicial de nubes de etiquetas (enlace al articulo código php de la nubes de etiquetas)

La única modificación que tenemos que hacer es cambiar la línea que muestra la etiqueta.

echo $nombreetiqueta;

por la siguiente línea:

echo '<a href="http://www.dominio.com/etiquetas/'.$ids[$nombreetiqueta].'.html">' .$nombreetiqueta. '</a>';

Pero claro no se nos puede olvidar añadir como variable a la función en nuevo array que hemos creado.

El código de la función seria el siguiente:

function nube_etiquetas($etiquetas,$ids){
//saco los valores máximo y minimo de la apariciones de etiquetas
$valor_max = max($etiquetas);
$valor_min = min($etiquetas);
$diferencia = $valor_max - $valor_min;

//ordeno el array
ksort($etiquetas);

//creo la capa donde se van a mostrar las etiquetas
echo '<div class="nube">';
echo '<div class="etiquetas">';

foreach ($etiquetas as $nombreetiqueta=>$apariciones){
   
    //echo $nombreetiqueta;
//calculo un valor de 0 a 10 para cada etiqueta, porcentualmente según valores máximos y mínimos encontrados
$valor_relativo = round((($apariciones - $valor_min) / $diferencia) * 10);
//escribo las etiquetas con su estilo dependiendo del valor porcentual
echo "<span class='etiquetatam$valor_relativo'>";
echo '<a href="http://www.dominio.com/etiquetas/'.$ids[$nombreetiqueta].'.html">' .$nombreetiqueta. '</a>';

    echo "</span> ";
}
//meto una capa sin float para que tome todo el alto de las etiquetas
echo "<div style='clear:both'></div>";
//cierro la nube y las etiquetas
echo '</div>';
echo '</div>';
}

Y bueno solo nos quedaría recordar que cuando llames a la función tienes que pasarle los dos arrays.

nube_etiquetas($etiquetas,$ids);

Con la llamada terminamos los pasos a seguir para crear una completa nube de etiquetas en PHP.



Usuarios que han visto este tema también han visto...

- Conexión con MySQL en PHP
- CSS Color Generator en PHP
- Interfaz de navegación por pestañas con Ajax y PHP
- Funciones en PHP
- Como hacer encuestas con PHP y MySQL


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 26-05-2012 a las 04:50:11