vicidomini.net
Blog di pubblica inutilità

Aggiungere una pagina Tag Cloud a wordpress

11 Settembre 2008

Mi piaceva molto l’idea di Davidonzo di avere una pagina contentente l’intera nuvola di tag. In Wordpress quest’opzione è piuttosto nascosta. Non sono esperto di Wordpress, non ne conosco per nulla la struttura e la pagina del codex riservata ai tag è incompleta, mentre gli articoli trovati in rete sembrano una scopiazzatura mal adattata del codex stesso.

Eppure è molto semplice, bastano due semplici operazioni. Prima si crea un nuovo template. Un template è una serie di istruzioni che dicono a Wordpress come visualizzare una pagina. Per creare un template il mio consiglio (be’, lo consiglia tutto il web…) è quello di prendere una pagina dalla cartella del proprio tema (ad esempio la pagina single.php che visualizza un singolo post del blog, oppure page.php che visualizza una singola pagina) e modificarla. Nel mio caso il tema non offre nessun template, pertanto ho aperto index.php: la pagina tuttofare del tema. Da questa ho eliminato tutto il codice centrale della pagina lasciando solo le funzioni essenziali per far apparire la pagina con la tag cloud come una normalissima pagina del blog.

Il risultato è questo:

<?php /*
Template Name: Tag Archive
*/ ?>
<?php get_header(); ?>
<div id="wrapper">
	<div id="content">
		<?php wp_tag_cloud('smallest=8&largest=20&number=0'); ?>
	</div>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Il primo commento è obbligatorio perché da un nome al template. Le funzioni “get_” assieme ai due tag “div” servono a impostare l’aspetto e le funzionalità della pagina standard di Wordpress (almeno nel mio tema basta questo).

La funzione “wp_tag_cloud” si preoccupa di scrivere la nuvola dei tag. Secondo la documentazione di Wordpress i parametri che accetta sono:

  • smallest: la dimensione con cui apparirà il tag meno usato.
  • largest: la dimensione con cui apparirà l tag più usato.
  • unit: l’unità di misura con cui intepretare le dimensioni smallest e largest. Sono le stesse unità di misura accettate dallo standard CSS: pt (che è quella usata di default), px, em, ex, mm, %, e così via.
  • number: il numero massimo di tag da mostrare. Impostare a 0 per non dare alcun limite.
  • format: se impostato a “flat” separa ogni tag con uno spazio; “list” crea un elenco puntato; “array” non fa stampare il tag cloud ma restituisce un array da manipolare in PHP.
  • orderby: può valere “name” (ordina i tag per nome) o “count” (ordina i tag per frequenza di utilizzo).
  • order: imposta la modalità di ordinamento, “ASC” ordina in modo crescente (comportamento di default); “DESC” decrescente; “RAND” casuale.
  • exclude: esclude dal cloud i tag con gli ID specificati (es: exclude=1,5,25).
  • include: permette di specificare una lista di ID dei tag da visualizzare, gli altri tag saranno automaticamente esclusi.

Ovviamente è possibile fornire la stessa dimensione ai parametri smallest e largest se non si vuole che i tag abbiano dimensione proporzionale al loro utilizzo!

Tornando a noi, il template appena creato deve essere memorizzato nella directory del tema in uso; all’interno della directory di wordpress in “/wp-content/themes/(directory del tema)”. Il file deve avere estensione “php” e bisogna evitare di usare i nomi riservati di Wordpress quali: single, page, tag, … per andare sicuri basta chiamare la pagina tagcloud.php.

Finita la parte tecnica, è possibile andare nella sezione di amministrazione di Wordpress e scegliere Scrivi e poi Pagina. Dare un titolo alla pagina e lasciarne vuoto il contenuto. In basso, tra le opzioni della pagina, è possibile scegliere il template da assegnarle. Scegliere il template appena creato (se non avete cambiato il codice si chiamerà Tag Archive) e il gioco è fatto.

La pagina dovebbe essere raggiungibile tramite link (dipende dal tema utilizzato) e funzionare perfettamente.


TeamViewer: un’alternativa facile e gratuita a VNC per il controllo remoto

8 Settembre 2008

La cosa più noiosa, quando hai un minimo di pratica col PC, è la gente che ti chiama per essere guidata a svolgere i compiti più assurdi. Come un tizio che voleva cancellare la cronologia di messenger perché la ragazza non doveva leggere.

Il controllo remoto permette ad una persona di comandare un PC a chilometri di distanza attraverso internet. Le soluzioni più famose in tal senso sono UltraVNC (gratuito) e RealVNC. Non volendo utilizzare una soluzione a pagamento quale RealVNC la scelta cade subito su UltraVNC, ma l’insidia è dietro l’angolo: come comportarsi in caso il PC da controllare (o peggio, entrambi) sia dietro ad un router? Sarebbe necessario aprire le porte del router verso UltraVNC. Ma se l’utente dall’altra parte vi chiede aiuto perché non sa cancellare la cronologia di messenger (e capita che voi lo guidate telefonicamente ma lui invece delle impostazioni di messenger si ritrova a pigiare a caso nelle impostazioni di Windows Explorer) sarà capace di modificare le impostazioni del router?

Ovviamente no.

Per caso, mi sono imbattuto in TeamViewer che funziona senza problemi anche dietro i router appoggiandosi a intermediari web offerti dal programma stesso. TeamViewer ci giunge in due pacchetti, entrambi gratuiti: la versione completa e il modulo cliente. La persona che vuole comandare l’altro PC deve scaricare la versione completa; la persona che vuole che il proprio PC sia comandato può scaricare la versione completa, ma il modulo cliente è più immediato e facile da usare.

Continua a leggere »


Incorporare le immagini di iTunes nelle tracce (ed usarle in altri programmi/lettori)

21 Agosto 2008

Dopo aver regalato il mio iPod Nano mi è rimasto un iTunes pieno di canzoni (tutte belle taggate). Ho dunque comprato una SDHC da 8GB e trasferito (quasi) tutta la collezione sul mio N95, per poi ricordarmi che le illustrazioni degli album scaricate automaticamente da iTunes attraverso lo Store non vengono memorizzate all’interno di ogni singolo file ma in un database a parte.

Il che da una parte  buono perché evita di appesantire troppo i file (un’illustrazione può tranquillamente raggiungere i 500kb di peso), dall’altra vuol dire che solo iTunes e gli iPod/iPhone possono leggere tali illustrazioni (quando sincronizzati con iTunes).

Come esportare le illustrazioni di iTunes? Come visualizzarle in altri programmi (compreso il Nokia Music Player)? E soprattutto, perché non azzecco mai un pronostico sul calcio?

A due di queste tre domande dà risposta il cosiddetto iTunes COM for Windows SDK, una API che i programmatori possono sfruttare per interagire con iTunes. Questo articolo si riferisce ovviamente alla versione Windows di iTunes ed utilizza un’altra tecnologia poco usata: Windows Script Host. Leggendo la documentazione dell’iTunes COM si nota che non espone nessun metodo per la gestione dei pronostici di calcio, pertanto dovremmo limitarci a manipolare un po’ le illustrazioni degli album (qualche maligno direbbe che sarebbe anche il caso di disinstallare iTunes).

Bando alle ciance. Propongo uno script in linguaggio JScript che non fa altro che analizzare la libreria di iTunes. Quando trova un brano che ha un’illustrazione scaricata dallo Store, incorpora tale illustrazione all’interno della traccia. Lo script avvia iTunes automaticamente quando parte, ma è anche possibile avviare iTunes manualmente prima di eseguire lo script. In questo caso è anche possibile selezionare all’interno di iTunes una o più tracce (all’interno della libreria principale, di una playlist, o di una ricerca) e limitare l’elaborazione solo alle tracce selezionate. Se avete IrfanView installato nel PC è anche possibile ridimensionare le illustrazioni per far pesare meno i file. Lo script trova IrfanView se quest’ultimo è stato installato tramite il suo installer oppure se l’eseguibile di IrfanView e lo script risiedono nella stessa cartella. Alla fine dell’operazione viene visualizzato un file di log.

Scarica lo script: EmbedAlbumArt.js (4 KB)

Quasi dimenticavo: l’idea di utilizzare IrfanView per il ridimensionamento delle illustrazioni mi è venuta leggendo questo post.

Continua a leggere »


Ricomincio da tre

19 Agosto 2008

… sperando che sia l’ultima volta :)