Si passi ora alla fase relativa allo sviluppo dell'applicazione, la prima operazione da compiere sarà quella relativa alla definizione di una piccola classe che si occuperà delle operazioni di connessione al DBMS, di selezione del database, di chiusura della connessione e dell'istanza della classe stessa, come nell'esempio seguente:
<?php
class MySQL
{
function MySQL()
{
# parametri per la connessione
$this->host_name = "localhost";
$this->user_name = "username";
$this->password = "password";
$this->data_name = "tag_cloud";
# connessione a MySQL
$this->link = @mysql_connect(
$this->host_name,
$this->user_name,
$this->password)
or die (mysql_error());
# selezione del database
@mysql_select_db($this->data_name) or die (mysql_error());
}
}
function Close(){
# chiusura della connessione
@mysql_close();
}
# istanza della classe
$data = new MySQL();
?>
Ora si passi alla definizione di una funzione in grado di restituire i valori massimi e minimi relativi ai tag e di utilizzarli per restituire in output i diversi tag sulla base dei valori ricavati attraverso una semplice interrogazione
<?php
function mostra_tag_cloud() {
# intervallo delle dimensioni per i font
$dimensione_minima = 10;
$dimensione_massima = 25;
# creazione di un array con i valori dei records
$query = @mysql_query("SELECT * FROM tag_cloud GROUP BY nome_tag ORDER BY contatore_tag DESC") or die (mysql_error());
while($r = @mysql_fetch_object($query)) {
$v[$r->nome_tag] = $r->contatore_tag;
}
Close();
# ordinamento dell'array
@ksort($v);
# differenza tra le occorrenze minime e massime
$valore_minimo = @min(@array_values($v));
$valore_massimo = @max(@array_values($v));
$differenza = $valore_massimo - $valore_minimo;
# controllo per evitare eventuali errori derivanti da divisioni per 0
if($differenza == 0) {$differenza = 1; }
$box = '';
$tags = @array();
# calcolo delle dimensioni dei font
foreach ($v as $val => $i) {
$dimensione = $dimensione_minima + ($i - $valore_minimo) * ($dimensione_massima - $dimensione_minima) / $differenza;
# stampa del link associato ai tags
$tags[] = '<a style="font-size: '.@floor($dimensione).'px'.'" class="tag" href="tag.php?tag='.$val.'" title="\''.$val.'">'
.@htmlspecialchars(@stripslashes($val)). '</a>';
}
# valore di ritorno
$box = @join("\n", $tags) ."\n";
return $box;
}
?>
Infine, per produrre in output la tag cloud sarà sufficiente richiamare la funzione appena definita in una pagina PHP che includa il foglio di stile, il file della classe per il database e quello contenente la funzione stessa:
<div id="box"> <?php @require 'config.php'; @include 'function.php'; echo @mostra_tag_cloud(); ?> </div>
Se tutto è andato per il meglio si dovrebbe ottenere un output simile a quello rappresentato nella figura seguente:
Figura 1: La Tag cloud

I tag saranno naturalmente collegati ad una pagina per l'estrazione delle risorse ad essi correlati (tag.php nell'esempio), la creazione di questa pagina sarà però argomento per un prossimo tutorial.
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |