Archivio > Scripting e Programmazione, Markup > Singolo: Salvare su del.icio.us via PHP, in Wordpress e Textpattern

Salvare su del.icio.us via PHP, in Wordpress e Textpattern

[Immagine] del.icio.us è un ottimo servizio di social bookmarking, che permette di segnalare e condividere articoli e pagine interessanti come segnalibri sul nostro account personale. Per salvare un link nella nostra lista, tuttavia, viene fatto uso del linguaggio Javascript - non sempre supportato -, che è all'origine di alcune disattenzioni nell'ambito dell'accessibilità. Viene quindi spiegato un metodo alternativo in PHP (Hypertext Pre-Processor) per ottenere il medesimo risultato. Oggi parliamo di un problema pratico e forse frequente nella realtà dei blog: aggiungere le notizie ai segnalibri dei più noti servizi di social bookmarking, fra i quali sicuramente spiccano nomi come Digg e del.icio.us.

E' proprio di quest'ultimo che vorrei parlare, e in particolare di come spesso basti un minimo di pazienza e un pizzico di fantasia per rendere i nostri blog più puliti e più leggeri.

Come viene infatti spiegato su del.icio.us, per far sì che all'utente sia concesso salvare rapidamente una notizia nei suoi preferiti - con i campi URL e title già riempiti - è necessario usare la sintassi Javascript.

<a href="http://del.icio.us/post" 
    onclick="window.open('http://del.icio.us/post?v=4&noui&jump=close&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title), 
    'delicious','toolbar=no,width=700,height=400'); return false;">
    Save This Page
</a>

Questo codice ci porta però ad osservare tre cose:

  1. Essendo in Javascript, non offre completa compatibilità con tutti i sistemi operativi, i browser, e gli interpreti, operando in due modi differenti in base alla presenza o mancanza del supporto a questo linguaggio di scripting.
  2. Al click si apre un popup, ovvero una nuova finestra in dimensioni ridotte e spesso priva di alcuni elementi essenziali dell'interfaccia grafica di un browser. E' una soluzione altamente inaccessibile.
  3. E' chiaramente codice Javascript intrusivo, che va contro ogni canone di pulizia e chiarezza del markup.

Questi tre punti mi hanno spinto a cercare un'alternativa che fosse più accessibile e in un certo senso più moderna rispetto alle tecniche sopra presentate. Poichè i linguaggi client-side non sono per loro stessa definizione in grado di offrirmi queste caratteristiche, ho optato per PHP, un linguaggio interpetato lato server, quindi naturalmente compatibile con ogni macchina e applicazione attraverso la quale l'utente naviga nelle nostre pagine.

Tuttavia, mentre Javascript ci permette in poche righe di prelevare il titolo del documento e passarlo correttamente in una delle variabili GET dell'indirizzo di destinazione, in PHP le cose si fanno leggermente più complicate, poichè è necessario usufruire del modulo DOM/XML apposito. Vediamo quindi come è possibile aggirare questo ostacolo secondario attraverso gli strumenti che ci offrono le più famose piattaforme di blogging (o se vogliamo essere sinceri, le uniche con cui ho un minimo di esperienza :-P): Wordpress e Textpattern.

Wordpress

WP rende disponibili alcune variabili per permettere facilmente agli sviluppatori di richiamare parti del template o impostazioni del blog. Quelle che ci servono in questo caso sono: bloginfo, wp_title e get_permalink: la prima immagazina informazioni generali sul blog, la seconda il titolo della singola notizia che si sta visualizzando, e la terza il link permanente all'articolo.

In single.php, che di quest'ultima rappresenta proprio il template modificabile, possiamo inserire il nuovo spezzone di codice:

<?php
$url = get_permalink();
$title = bloginfo('name').wp_title();
$href = "http://del.icio.us/post?v=4&noui&jump=close&url=".urlencode($url)."&title=$title";
?>

<a href="<?php echo $href; ?>">Save This Page</a>

Ovviamente possiamo modificare la variabile $title come meglio ci aggrada. Ad esempio, possiamo copiare il contenuto del tag title in header.php, e impostare una variabile di questo tipo:

$title = bloginfo('name')." &raquo; Archivio ".wp_title();

In modo tale che del.icio.us riempia automaticamente il campo title seguendo lo schema:

Nome blog » Archivio » Titolo notizia

Textpattern

Su TXP il procedimento è altrettanto semplice. Anche in questo caso abbiamo una lista di marcatori utili da usare nel template: noi ci serviremo in particolare di txp:php, txp:title, txp:sitename, e txp:permlink.

Di default Textpattern utilizza il modulo Single per generare l'output HTML relativo alla notizia consultata singolarmente (cioè in una pagina a parte). E' proprio lì che andremo ad apportare la modifica:

<a href="<txp:php>

$url = permlink();
$title = sitename().": ".title().;
$link = "http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=".urlencode($url)."&amp;title=".$title;
echo $link;

</txp:php>">Save This Page</a>

Anche in questo caso, possiamo decidere di personalizzare il titolo in uscita aggiungendo ad esempio lo slogan del blog, attraverso il tag txp:slogan. Eccome come si presenta la stessa variabile $title su LineHeight:

$title = sitename().": ".title()." ~ ".site_slogan()." ~";

Il titolo del segnalibro presenterà quindi lo scheletro:

Nome blog: Titolo notizia ~ Descrizione blog ~

E questo è tutto. Se avete idee migliori, suggerimenti da propormi, o critiche da muovermi, siete i benvenuti! ;-)

Approfondimenti

L'articolo è stato di tuo gradimento? Puoi controllare che vi sia altro di tuo interesse nelle categorie e , oppure iscriverti al notiziario RSS e seguirmi su per restare sempre aggiornato sulle ultime pubblicazioni.

Pubblicato venerdì 02 febbraio 2007.

Discuti

Il blog è in sola lettura.

Paginatura: