Aggiornamenti Recenti Pagina 2 Attiva/disattiva nidificazione dei commenti | Scorciatoie da tastiera

  • giubot 5:26 pm il 29 December 2011 Permalink | Rispondi
    Etichette: , , entity api, field collection, field collection table, nota spese, views   

    Drupal 7: gestione note spese 

    Io amo Drupal perchè, diversamente da quasi tutti gli altri CMS, consente di costruire applicazioni internet “guidate dai dati” strutturati anziché da semplici contenuti “destrutturati” (come articoli e pagine). E (quasi) sempre senza scrivere una riga di codice.

    Come esempio, proviamo a costruire la gestione delle Note Spese. Semplificando un po’, una Nota Spese è una entità formata da una intestazione (descrizione, data di presentazione, richiedente, luogo ecc.) e da un numero arbitrario di righe (che chiamerò “Spesa”), ognuna delle quali formata da diversi campi: descrizione, tipologia (es. “vitto”, “alloggio”), valore della spesa, valore del rimborso richiesto ecc.

    Questo modello a due livelli (1 intestazione + molte righe) è comune a molti altri casi reali (es. ordini di acquisto, fatture) e quindi è di particolare interesse. Può essere costruito in Drupal (6 o 7) creando due tipi di contenuto (“Nota Spesa” e “Spesa”) legandoli tra loro con una delle seguenti soluzioni:

    • aggiungere al modello”Nota Spese” un campo (di tipo “Node Reference”) che punta a entità di tipo “Spesa” e dichiarare che questo campo può accogliere un numero arbitrario di Spese. Questa soluzione richiede però di inserire prima le singole Spese e poi di collezionarle nel campo della Nota Spese. Questa artificiosità di inserimento può essere parzialmente superata utilizzando moduli appositi (es. “Add and Reference“) che, mentre si modifica una Nota Spese, consentono di creare al volo le Spese e collegarle alla Nota Spese stessa.
    • aggiungere al modello”Spesa” un campo (di tipo “Node Reference”) che punta a entità di tipo “Nota Spese”. Questa soluzione permette un inserimento più intuitivo (prima si inserisce la Nota Spese e poi le singole Spese) ma, ad ogni inserimento di nuova Spesa, bisogna riselezionare la Nota Spese giusta. Questo fastidio può essere ovviato con moduli (es. “URL Fill“) che “precaricano” il campo legame in modo che punti alla Nota Spese voluta.

    Entrambe le soluzioni presentano perciò alcuni problemi di usabilità, risolvibili con parecchio sforzo di configurazione. Drupal 7 offre una soluzione molto simile ma più semplice da realizzare, grazie al modulo “field_collection“. Questo modulo (purtroppo non disponibile per Drupal 6) aggiunge un nuovo tipo di campo, “field collection” che a sua volta è formato da diversi campi. Nel nostro esempio, agiungeremo perciò un campo “field collection” di nome “Spesa” al modello Nota Spese come nella soluzione 1; la novità vera è che la creazione e la modifica di un campo field collection (compresi quindi i suoi campi) avviene dentro la medesima maschera in cui si crea / modifica la Nota Spese (cliccare sulle figure per ingrandirle):

    Così pure la visualizzazione della Nota Spese mostra anche le Spese, permettendo anche di modificarle al volo senza rimodificare l’intera Nota Spese:

    Anche le Viste (“Vews” di Drupal) lavorano bene coi field_collection, mostrando l’intera struttura delle Spese come fosse un singolo campo della Nota Spese:

    Non solo: siccome le singole Spese sono in realtà archiviate in Drupal come entità separate, con un piccolo trucco è possibile richiamarle in una Vista indipendentemente dalla Nota Spese cui si riferiscono; si può così ad esempio costruire una Vista – utile a chi deve autorizzare i rimborsi – che analizza le singole richieste di rimborso per tipologia (es. solo le spese di viaggio):

    Naturalmente, per avere una applicazione completa mancano parecchi dettagli, ma la struttura fondamentale c’è tutta ed è realizzabile in un paio d’ore di lavoro, avendo un po’ di dimestichezza con Drupal. Per chi volesse replicare questo esperimento, ho utilizzato Drupal 7 e i moduli aggiuntivi:

    La struttura “Nota Spese” è la seguente (si noti il campo “Spesa” definito come “field_collection”, questo è il passaggio fondamentale):

    La struttura “Spesa” la si definisce nella nuova sezione  “field_collection”:

    La Vista che elenca la Nota Spese è banale: è una Vista che elenca le entità di tipo “Nota Spese” in forma tabellare, dove basta aggiungere alle colonne il campo “Spesa” (indicato dal cursore) per ottenere la visualizzazione completa delle Spese associate alla Nota Spesa:

    Meno banale la Vista che elenca le singole Spese: come per la precedente, si parte da una Vista che elenca le Note Spese, cui si aggiunge la “relazione” sul campo Spesa dell’entità Nota Spese (mostrata dal cursore nella figura che segue). Grazie a questa aggiunta, si rendono disponibili per le colonne della Vista tutti i campi delle entità Spesa (che iniziano con “field collection item”):

    Per chi vuole giocare con Drupal 7 sul proprio pc consiglio l’applicazione AMPPS che facilita enormemente l’installazione di Drupal (e di altre 200 applicazioni open source a scelta).

     
    • Costantino Landino 6:31 pm il 29 dicembre 2011 Permalink | Rispondi

      Caro Giuseppe, hai ragione.

      La potenza di Drupal è notevole e ne apprezzo soprattutto la possibilità di adeguarsi rapidamente a specifiche in evoluzione.
      Ho fatto sviluppare un prodotto di protocollazione e gestione documentale (std digitpa) anche un plugin web twain per l’integrazione con uno scanner.
      Abbiamo però notato in questo caso qualche problema nella gestione di ACL complesse in particolare per la gestione dei permessi a livello di singolo documento (problema che abbiamo risolto aggiungendo una gestione ad hoc).

      Buon anno!

      Costantino

      • giubot 6:38 pm il 29 dicembre 2011 Permalink | Rispondi

        Ciao Costantino
        in effetti la gestione documentale in Drupal è affrontata da diversi moduli aggiuntivi, con approcci abbastanza differenti e che pongono tutti qualche problema, soprattutto nell’ACL. Semplificando al massimo, direi che ci sono due approcci: considerare il documento un file (e qui i lmassimo credo sia il modulo Web File Manager) o considerarlo un oggetto con file allegati (o meglio ancora, in campi di tipo file), e qui ci si può sbizzarrire.
        In questo secondo caso, si possono adottare per le ACL tecniche del tipo quella indicata in questo post:

        http://giubot.wordpress.com/2010/03/25/a-scuola-di-drupal-proteggere-i-contenuti-per-categoria/

        che permettono una buona flessibilità. Mi piacerebbe conoscere qualche dettaglio della tua esperienza di gestione documentale con Drupal. Hai affrontato anche la questione della ricerca full text?

        • Costantino 2:13 pm il 12 gennaio 2012 Permalink

          Rieccomi,

          ho chiesto ai programmatori di verificare quali moduli drupal possono interfacciare meglio lucene e solr. Queste funzioni le ho inserite nella seconda release del prodotto.

          Il 26 presento il prodotto internamente ed ho preparato una prima presentazione con le slide.

          Se vuoi te le posso inviare ma per i dettagli devo chiedere agli sviluppatori. Ti interessano i moduli o altro?

          Fammi sapere

  • giubot 10:40 pm il 21 December 2011 Permalink | Rispondi
    Etichette: gigya, , radio 101, , streaming wordpress.com   

    Radio in wordpress.com 

    Con la stessa logica con cui si possono includere in wordpress.com filmati e musica (cioè passando per siti “amici” di cui wordpress.com si fida, quali vodpod e gigya), proviamo ad inserire in questo post una radio che trasmette su internet.

    Ad esempio Radio 101. Esaminando la pagina web della radio (con la funzione “Informazione pagina” di Firefox è abbastanza semplice) ho trovato che l’indirizzo cui si trova lo streaming è questo:

    http://www.r101.it/player/swf/radio_streaming.swf

    IL suffisso .swf fa ben sperare perché identifica uno streaming in formato flash e il servizio gigya accetta appunto formati flash. Perciò, “incapsulo” lo streaming flash di Radio 101 “dentro” gigya con questa sintassi (lo spazio tra la parentesi quadra e la parola gigya va tolto se vuoi copiare questa stringa di caratteri nel tuo sito wordpress.com; qui l’ho messo solo x evitare che wordpress.com lo trasformasse in un player radio e non facesse vedere la stringa in chiaro):

    [ gigya src="http://www.r101.it/player/swf/radio_streaming.swf"]

    ed ecco il risultato: un player che trasmette Radio 101!

    L’unico problema è che mi parte automaticamente.

    Stessa operazione per Radio 105. La stringa originale è:

    http://www.105.net/swf/player_webradio_3.swf?cnnl=0&streamRadio=105Radio&titoloRadio=Radio%20105%20FM&buffertime=2&logo=105_fm.jpg&spiega=0&autoplay=1

    Buttata “dentro” gigya e sostiuendo l’1 finale con 0 per evitare che parta automaticamente diventa:

     
  • giubot 12:46 pm il 20 December 2011 Permalink | Rispondi
    Etichette: grooveshark, ,   

    Musica in wordpress.com 

    Grooveshark consente di sentire gratis migliaia di brani musicali. Per includere in un articolo wordpress.com un brano selezionato su Grooveshark, bisogna prelevare da Grooveshark il codice di embedding:

    Sul riquadro arancione in basso a sinistra che rappresenta il brano selezionato, clicca sulla freccina in basso: si apre un menù in cui seleziona”Condividi brano” e “Widget”. Poi clicca su “Copia negli appunti”

     

    In wordpress.com crea un nuovo post (articolo) e incolla il codice copiato da Grooveshark. Il codice è nella forma:

    <object width=”250″ height=”40″ classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″ id=”gsSong2909984849″ name=”gsSong2909984849″><param name=”movie” value=”http://grooveshark.com/songWidget.swf&#8221; /><param name=”wmode” value=”window” /><param name=”allowScriptAccess” value=”always” /><param name=”flashvars” value=”hostname=cowbell.grooveshark.com&songIDs=29099848&style=metal&p=0″ /><object type=”application/x-shockwave-flash” data=”http://grooveshark.com/songWidget.swf&#8221; width=”250″ height=”40″><param name=”wmode” value=”window” /><param name=”allowScriptAccess” value=”always” /><param name=”flashvars” value=”hostname=cowbell.grooveshark.com&songIDs=29099848&style=metal&p=0” /><span>Il Più Grande Spettacolo Dopo Il Big Bang by <a href=”http://grooveshark.com/artist/Jovanotti/18418&#8243; title=”Jovanotti”>Jovanotti</a> on Grooveshark</span></object></object>

    Questo codice non funziona in wordpress.com, per i noti limiti di questa piattaforma rispetto ai codici provenienti da siti non “fidati”. Come spesso accada, basta questo codice attraverso un servizio “fidato” per farlo accettare a wordpress.com. Gigya è uno di questi servizi internet fidati. Ecco come fare.

    Copia nel post la seguente stringa di caratteri (io ci mette uno spazio tra la parentesi quadrata e la parola gigya per evitare che venga eseguita e non possiate quindi vedere il testo, tu copia questa stringa e togli lo spazio per farlo funzionare):

    [ gigya src="http://grooveshark.com/songWidget.swf" width="250" height="40" flashvars="cowbell.grooveshark.com&songIDs=29099848&style=water&p=0" allowScriptAccess="always" wmode="window"]

    Sostituisci alla stringa racchiusa tra virgolette dopo la parola flashvars la stringa che, nel codice proveniente da Grooveshark, viene dopo param name=flahsvars e che ti ho evidenziato in grassetto nell’esempio.

    Poi cancella dal posto tutto il codice proveniente da Grooveshark, perché la sua funzione è svolta da [ gigya ecc. ]

    Salvo errori, il risultato è questo:

    Clicca sul freccetta di play e buon ascolto!

    Questo articolo è un adattamento delle istruzioni trovate qui.

     
  • giubot 9:54 am il 15 November 2011 Permalink | Rispondi  

    Montare e timbrare documenti PDF 

    Il formato PDF è uno dei formati più longevi e di successo nell’informatica. Sono abbastanza vecchio da ricordarmi di essere rimasto perplesso quando lessi, ormai molti anni fa, di questo nuovo standard per la riproduzione fedele dei documenti ed indipendente dalle applicazioni che generano i documenti stessi. Il nome stesso, “Acrobat”, voleva proprio indicare la funambolica capacità di far passare un documento da un sistema all’altro senza perdere non solo il contenuto ma anche la forma.

    Di strumenti per creare e manipolare i file PDF ce ne sono ormai moltissimi. Secondo lo stile di questo blog, segnalo oggi una specie di coltellino svizzero per file PDF, che consente di fare parecchie operazioni di utilità quotidiana. E naturalmente gratuito. Si tratta di Free PDFill Tools,che include in una sola applicazione funzioni  di assemblaggio (inserimento e spostamento pagine) e di “timbro” (rinumerazione pagine, watermark ecc.) su file PDF.  Alcune di queste funzioni sono disponibili anche con PDFCreator (la stampante virtuale che permette di trasformare in PDF qualunque documento Windows), ma dalla sua PDFill ha la maggiore semplicità di utilizzo, che lo rende idoneo ad un uso anche da parte di personale operativo non esperto di cose informatiche.

    La procedura di installazione installa anche altri due strumenti, un “PDF Fille&Image Writer” (gratuito, che non ho ancora esaminato) e “PDF Editor” (a pagamento).

    hh

     
  • giubot 5:50 pm il 28 October 2011 Permalink | Rispondi  

    Un piccolo studio televisivo in WordPress.com 

    In un mio precedente articolo, avevo descritto come riportare dentro una pagina WordPress.com un evento live, sfruttando Ustream e Vodpod.

    Se si vuole trasmettere utilizzando più webcam o mescolando immagini live con video registrati, questa soluzione deve essere arricchita con un “mixer” sul pc, che gestisca come sorgenti video più webcam e filmati registrati sul pc. Il mixer risolve inoltre un problema riscontrato con Ustream (difficoltà a gestire più di una webcam). Un mixer gratuito è ManyCam, che permette anche di trasmetter due sorgenti in “picture in picture”, aggiungere logo e ora (oltre ad una serie di effetti buffi poco utili per i nostri scopi). ManyCam viene visto da Ustream come una webcam virtuale (che nasconde perciò sia la numerosità reale delle webcam sia il fatto che un flusso video arrivi da un filmato anziché da una webcam).

    Riassumendo, per allestire un piccolo studio televisivo sul nostro pc e trasmettere eventi live (mescolati a filmati preregistrati):

    1. Installare ManyCam sul pc, che funge da mixer video in grado di selezionare più webcam collegate al pc e filmati registrati sul pc
    2. Registrarsi su Ustream, creare un canale e prelevare il codice di embedding corrispondete
    3. Registrarsi su Vodpod, “caricare” come video il codice di embedding fornito da Ustream e prelevare il codice di embedding del “video” per WordPress.com
    4. Creare una pagina nel blog su WordPress.com e incollarvi il codice Vodpod

    Questi passaggi sono una tantum. Poi, ogni volta che si vuol trasmettere, basta attivare ManyCam sul pc, aprire la pagina web di Ustream e si è in onda!

     
  • giubot 1:35 pm il 28 October 2011 Permalink | Rispondi
    Etichette: google reader, manycam, ,   

    Leggo, mi piace, lo pubblico 

    Io sono un accanito utilizzatore di Google Reader, il lettore RSS on line di Google, che permette di aggregare in una sola pagina centinaia di articoli su uno o più temi, provenienti da decine di siti differenti.  Leggendo gli articoli così raccolti, mi capita di dire: ecco, questa notizia è particolarmente interessante, vorrei pubblicarla sul mio blog WordPress.com.

    Ho scoperto un metodo molto facile che, in cambio di una piccola configurazione iniziale, poi consente di condividere le notizie interessanti con un solo click.

    1. Iscriviti a IFTT, il servizio gratuito che permette di costruire piccole automazioni tra siti internet  (vedi mia recensione di IFTT)
    2. In IFTT costruisci la seguente regola “SE condivido un articolo in Google Reader ALLORA pubblicalo come post su WordPress.com”. IFTT guida facilmente alla creazione di questa regola. Ma se hai voglia di cimentari coi dettagli, puoi usare direttamente la mia regola, che ho condiviso in IFTT come “ricetta” (recipe) alla pagina http://ifttt.com/recipes/6474
    3. IFTT ti chiederà il permesso di accedere al tuo Google Reader ed al tuo blog

    L’uso è proprio facile: quando in Google Reader sei su una notizia che vuoi pubblicare, basta che clicci su “Condividi” oppure “Condividi con nota” (nel secondo caso, potrai aggiungere alla notizia un tuo testo, che sarà presentato insieme al testo originale della notizia). Ho costruito la regola in modo che l’articolo scritto automaticamente da IFTT sul blog riporti la fonte dell’articolo ed il link all’articolo originale, visto che il canale RSS spesso mette a disposizione solo l’inizio del testo.

     
  • giubot 9:06 am il 26 October 2011 Permalink | Rispondi  

    Cyber-attacco contro il Parlamento giapponese 

    Un altro episodio della guerra digitale in corso. Cina contro tutti?


    Da: Le News di Tom's Hardware October 26, 2011 at 10:00AM di (author unknown), condiviso via IFTTT. Articolo completo


    I computer dei deputati giapponesi sono stati spiati per tutta l’estate. Grazie a un cyber-attacco è stato possibile diffondere un Trojan capace di sottrarre password e informazioni. Tutti i dati poi sono stati veicolati verso un server cinese.

     
  • giubot 9:06 am il 26 October 2011 Permalink | Rispondi  

    È morto il padre dell’Intelligenza Artificiale 

    Il mio primo programma l’ho scritto in LISP.


    Da: Zeus News – Home - October 26, 2011 at 09:58AM di (author unknown), condiviso via IFTTT. Articolo completo


    Notizie – John McCarty ha creato il linguaggio LISP e ideato il termine ”intelligenza artificiale”.
     
  • giubot 7:09 pm il 22 October 2011 Permalink | Rispondi  

    CO2: le emissioni globali continuano ad aumentare 


    Da: Scienze – Ecologia e ambiente September 24, 2011 at 08:29AM di (author unknown), condiviso via IFTTT. Articolo completo


    Le emissioni gobali di CO2, che costuiscono la principale causa del riscaldamento climatico, sono aumentate del 45 per cento tra il 1990 e il 2010 e hanno raggiunto il più alto valore di sempre: 33 miliardi di tonnellate nel corso del 2010.

    L’incremento dell’efficienza energetica, il ricorso all’energia nucleare e il sempre maggiore contributo delle energie rinnovabili, almeno allo stato attuale non sembrano in grado di compensare la crecita della domanda globale di energia, soprattutto nei paesi in via di sviluppo.
    <br …

     
  • giubot 2:46 pm il 19 October 2011 Permalink | Rispondi  

    Simulazione 3D dei viaggi su Google Maps 

    Una nuova interessante funzione di Google Maps: la visualizzazione in 3D di un percorso, utile per farsi un’idea della strada prima di partire, in particolare se si affronta un tragitto montano. Ecco ad esempio il percorso da Chiesa in Valenco alle dighe di Campo Moro: per godere della vista, cliccate su “Larger Map” o “Visualizzazione ingrandita” e poi sul pulsantino “3D” collocato a fianco dell’elenco delle indicazioni stradale. Buon viaggio!

     
  • giubot 10:13 am il 14 October 2011 Permalink | Rispondi  

    Creare moduli di richiesta in WordPress.com con Google Docs 

    WordPress.com può incorporare moduli (form) di Google Docs nei propri articoli. Sfruttando questo meccanismo, si possono agevolmente aggiungere modul di richiesta informazioni (es. sondaggi o test o altro) nel proprio blog:

    Ecco ad esempio come appare un modulo (form) di Google Docs in WordPress.com:

     
    • Danilo 9:50 am il 28 ottobre 2011 Permalink | Rispondi

      Ciao giubot, l’articolo è molto interessante.
      Potresti integrare qualche informazione su come hai fatto?

      • giubot 1:07 pm il 28 ottobre 2011 Permalink | Rispondi

        Ciao Danilo, la procedura è la seguente:

        1. Creare il modulo su Google Docs: bisogna avere un account Google, andare in Google Docs e creare un “modulo”; un modulo è fatto di due parti: una maschera di inserimento dati, che si disegna interattivamente in Google Docs e che contiene le domande e le opzioni di risposta possibili + un foglio elettronico, che viene creato automaticamente da Google Docs e in cui finiscono le risposte fornite da chi compila il modulo

        2. Presentare il modulo in un articolo WordPress.com: creato il modulo, il comando Google Docs “Incorpora modulo in pagina web” mette a disposizione una sequenza che, incollata in un articolo WP, mostra appunto il modulo nell’articolo. La sequenza inizia con “iframe” (non la riporto qui, per evitare che WP la elabori). Una volta incollata e salvato l’articolo, WP la trasforma nel seguente shortcode:

        [ googleapps domain="docs" dir="spreadsheet/embeddedform" query="formkey=dFZaU09Bbm1iSlA4Y0d1aEJHaGN0c3c6MQ" width="760" height="589" / ]

        Volendo, nello shortcode le dimensioni del modulo sono facilmente adattabili al tema grafico, modificando i campi width e height.
        Spero di aver risposto esaurientemente, altrimenti chiedi pure.

    • Riccardo 7:35 am il 19 agosto 2012 Permalink | Rispondi

      Ciao Giubot e grazie per il materiale messo a disposizione.

      Ti chiedo cortesemente una informazione: è possibile far in modo di collegare il modulo di contatto ad una mail, di modo che ogni volta che un’utente lo compila io riceva una mail col contenuto della richiesta?
      Ringraziando, saluto.

  • giubot 10:01 am il 14 October 2011 Permalink | Rispondi  

    Pubblicare un foglio di lavoro Google Docs in WordPress.com 

    Ecco come si presenta un foglio di lavoro Google Docs in WordPress.com, condiviso come “html”:

     

     
  • giubot 9:53 am il 14 October 2011 Permalink | Rispondi  

    Pubblicare un documento Google Docs su WordPress.com 

    Tra le opzioni meno usate di WordPress.com c’è la possibilità di esporre documenti (testo, presentazione, disegni, form) preparati con Google Docs. Ecco un esempio di documento testo:

     

     
  • giubot 9:28 pm il 13 October 2011 Permalink | Rispondi
    Etichette: embed, picasa web, , slideshare, ,   

    Mostrare in WordPress.com le gallerie di foto di Picasa Web 

    Uno dei limiti – comprensibili ma spesso fastidiosi – di WordPress.com (la piattaforma che gentilmente ospita gratis questo sito) è che accetta di includere nei propri articoli solamente gli oggetti (foto, video, documenti, animazioni ecc.) provenienti da un ristretto numero di siti di cui si fida.
    Ad esempio, per quanto riguarda le gallerie di foto, WP le accetta solo se le foto sono registrate in RockYou, Scribd, SlideShare e Slide.com. E se le tue foto sono su Picasa Web?
    Fortunatamente, tra i siti “amici” di WP c’è Vodpod. E poiché Vodpod accetta i contenuti di moltissimi altri siti, basta prima includere PicasaWeb in Vodpod e poi Vodpod in WP ed il gioco è fatto. Vediamo come:

    1. In PicasaWeb, posizionati sulla galleria di foto, seleziona “Link a questo album”, “Incorpora Slideshow”, scegli le dimensioni e copia il codice creato da Picasa, che inizia per “< embed …”
    2. In Vodpod, aggiungi un “video”, incolla come codice del video il codice fornito da Picasa Web, seleziona “WordPress”, “WordPress Shortcode” e copia il codice creato da Vodpod, che inizia per “[ vodpod ..."
    3. In WP, incolla nell'articolo il codice fornito da Vodpod ed il gioco è fatto

    Il risultato finale è il seguente:

     
  • giubot 9:10 am il 12 October 2011 Permalink | Rispondi  

    Oltre mille applicazioni gratuite (da scaricare o usare online) 

    Ho appena scoperto e condivido un sito che elenca un migliaio di applicazioni gratuite (freeware) da scaricare o da usare on line, divise per argomento. Un indice da tenere a portata di mano quando si cerca un software o un servizio per fare una cosa specifica. Ecco l’autopresentazione:

    Gizmos Freeware Reviews

     At this community website you’ll find the very best freeware programs each selected by our independent editors because of their quality and performance. Many of these programs are as good as or better than their commercial counterparts so why pay for what you can get for free?

    http://www.techsupportalert.com

     
c
Componi il tuo articolo
j
Next post/Next comment
k
Previous post/Previous comment
r
Rispondi
e
Modifica
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Annulla
Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 26 follower

%d blogger cliccano Mi Piace per questo: