Spiego brevemente, per chi fosse interessato, la logica con la quale ho implementato il tag cloud che, per semplicità, su faCCebook ho chiamato "Parole più frequenti".
Il primo problema era determinare i tag visto che quando si propone un mostro su faCCebook.eu non viene richiesto l'inserimento di nessuna parola-chiave.
D'altronde, ogni singola parola del titolo del mostro è già un tag!
Partendo da questa idea, ho spezzettato (split) il titolo in singole parole ed escluse quelle con meno di tre caratteri, poi ho eliminato le preposizioni semplici, gli articoli e tutte i termini non significativi (ad esempio, quello, quegli ...). Le parole rimaste identificavano i tag del mostro.
Dovevo però scegliere tra più di 1000tag e non potendo visualizzarli tutti ho deciso di selezionarne 50.
I primi 40sono quelli con la molteplicità maggiore, i rimanenti invece li ho scelti a caso tra tutti gli altri (vedi funzione shuffle)
Il tagcloud cosi costruito risulta dinamico e cambia ad ogni aggiornamento della pagina sia in termini di contenuti che di posizione.
Nel mio database ho creato una tabella con due colonne: tag e molteplicità.
Tramite una semplice funzione ho provveduto a inserire in tale tabella i nuovi tag identificati mentre, nel caso di tag già presente, ho aggiornato la sua molteplicità incrementandola di uno.
La parte più complessa era mostrare i tag con una grandezza proporzionale alla propria molteplicità. Sul web si trovano molti algoritmi già implementati, io ho usato il seguente:
$nPix = getSizeFromPerc(($value/$max)*100, $maxSize, $minSize);
dove value è la molteplicità del tag, max è il numero di tag, gli altri due parametri sono la dimensione massima e minima del font.
La funzione getSizeFromPerc($percent, $maxSize, $minSize) restituisce la size del font con uno switch del tipo:
if ($percent >= 95)
$size = $maxSize;
else if ($percent >= 70)
$size = $minSize + $step*8;
else ...
Segue la costruzione del link usando ad esempio:
style="font-size:".$nPix." px" title='$value argomenti'
Il risultato lo potete osservare navigando su faCCebook.eu nelle pagine dedicate ai mostri.
Che ne dite? Sono stato bravo? 8-)
PS: chiunque fosse interessato al codice sorgente PHP può contattarmi
martedì 10 agosto 2010
Iscriviti a:
Commenti sul post (Atom)

0 commenti:
Posta un commento