Post

Visualizzazione dei post con l'etichetta php

PHP & Websockets

Il supporto offerto dai browser "moderni" alle funzionalità HTML5 sta favorendo il fiorire di un numero impressionante di progetti volti a rendere più immediato il loro utilizzo con i linguaggi classici dello sviluppo web. Una tecnologia molto interessante è quella dei websockets , in parole povere si tratta di un canale di comunicazione bidirezionale che si instaura tra browser e server, superando di fatto lo schema classico delle web apps (request-response). Utilizzando principalmente PHP ho cercato cosa fosse stato realizzato in questo campo per il PHP and WebSockets Sembra che non sia più sviluppato attivamente. WebSocket Server and Client library for PHP Simile al precedente, non richiede altre librerie o componenti, progetto attivo. Ratchet Sembra il più ricco di funzionalità, sfrutta alcuni componenti di Symfony. Spendo qualche parola in più su Ratchet perché mi ha fatto scoprire un altro tool interessante: composer , ovvero un dependency manager per PHP. P...

NodeJS e PHP, just for fun

In questi giorni sto cercando di approfondire la conoscenza di Node.js  ed ho iniziato con questo ottimo tutorial , veramente ben fatto. Ovviamente, da bravo smanettone, dopo le prime N pagine mi sembrava di aver preso possesso dei concetti base e che fosse arrivato il momento di passare a qualche esempio "utile". Ovviamente sono iniziate le grane... Poiché sviluppo principalmente in PHP la mia idea era questa: realizzare con Node.js una sorta di dispatcher di eventi, per sostituire il long polling Ajax, lasciando la logica associata agli eventi negli script PHP. Ho cominciato a cercare articoli e tutorial in rete e qualcosa ho combinato :) Punto di partenza questo ottimo spunto di Gianluca Guarini, che implementa un push notification server con Node.js e socket.io ; in pratica un semplice script Node.js gestisce la comunicazione con il client tramite websocket. Partendo da questo schema ho aggiunto la possibilità di richiamare un servizio scritto in PHP, in risposta a...

Software Open Source per le Camere di Commercio

Da poche settimane ho ultimato un software per la gestione di contratti e appalti commissionato da una Camera di Commercio. L'applicazione è scritta in PHP e sfrutta il framework Ampoliros e la libreria JQuery . Visto che si tratta di un software destinato alla PA si è scelto di rilasciarlo con licenza GPL. A causa della mia solita pigrizia per ora ho fatto solo alcuni screenshot (forse) seguirà un breve video dimostrativo.

Gateway Consorzio Triveneto per WP e-commerce

Recentemente ho dovuto integrare il gateway di pagamento del Consorzio Triveneto  nel plugin WP e-commerce , uno dei più noti plugin di commercio elettronico per Wordpress. All'inizio pensavo di utilizzare l'ottima classe PgConsTriv  di Davide Gullo, poi ho realizzato un'integrazione veramente minimale partendo dagli esempi forniti dal Consorzio e dalla documentazione di WP e-commerce. E' puro spaghetti-code ma forse a qualcuno può tornare utile :) Di seguito il codice del nuovo gateway da salvare nel folder /wp-content/plugins/wp-e-commerce/wpsc-merchants/ del vostro server. Tutte le funzioni andrebbero raccolte in un unico file (compresi i callback di ritorno dal gateway), per intenderci $responseURL dovrebbe essere qualcosa del genere: get_option('siteurl')."/?constriv=ok"; e quindi tutte le azioni verrebbero gestite dalla funzione  gateway_constriv_gateway,  purtroppo ho avuto qualche problema nella gestione degli indirizzi da parte del ga...

Feed stream pubblico Google+ (unofficial)

Ancora Google non ha pubblicato le API di G+ ma gli smanettoni si sono dati da fare da subito. Ad esempio è possibile ottenere in formato JSON lo stream dei post pubblici di un utente. Dopo aver visto questo articolo  (grazie Gian Angelo ) ho provato subito con qualche riga di PHP. Ci sono già progetti promettenti in rete, ma io mi sono limitato allo stretto indispensabile. Accertatevi di avere attivato il supporto SSL in PHP e sostituite $googleplus_id con l'id utente che vi interessa (basta guardare l'url del profilo): $googleplus_id = '110373656360084352107'; $url = 'https://plus.google.com/_/stream/getactivities/'.$googleplus_id.'/?sp=%5B1%2C2%2C%22'.$googleplus_id.'%22%2Cnull%2Cnull%2Cnull%2Cnull%2C%22social.google.com%22%2C%5B%5D%5D'; per recuperare i dati basta usare file_get_contents (a patto che in php.ini abbiate settato allow_url_fopen): $output = file_get_contents( $url ); La stringa JSON ottenuta va "ripulita...

Smartphone e drag&drop

Immagine
Al giorno d'oggi se le tue applicazioni non supportano in qualche modo i dispositivi mobili non sei nessuno! Mi ritengo fortunato perché da circa 10 anni sviluppo quasi esclusivamente in ambiente web, utilizzando tecnologie standard, quindi le applicazioni sono direttamente visualizzabili su qualunque aggeggio abbia un browser degno di questo nome. Ci sono però alcune situazioni che richiedono uno sforzo ulteriore. E' il caso di tutti i dispositivi dotati di touch screen e delle funzionalità drag&drop. Su iPhone, iPad o sul vostro smartphone Android l'applicazione viene visualizzata correttamente ma se provate a trascinare... il browser scrolla o esegue un pan nella pagina. Ad esempio in Kroneos MP  gli utenti si possono scambiare dei post-it, ovvero semplici messaggi che rimangono "appiccicati" al loro desktop virtuale piuttosto che al monitor reale ;) Questi oggetti anche graficamente riprendono l'aspetto di un post-it, il classico quadrato di colo...

Gruppi su GMail con Zend GData

Da qualche tempo ho realizzato un'integrazione tra l'anagrafica di Kroneos MP ed i contatti di GMail. Ho utilizzato Zend Gdata visto che avevo già ottenuto buoni risultati nell'integrazione del calendario con GCalendar. Per la gestione dei contatti però non ho trovato documentazione ed esempi come nel caso degli eventi. La fonte migliore che ho trovato in rete è questa . Nell'articolo non viene trattata la gestione dei gruppi, per cui condivido quello che ho concluso spulciando direttamente le API del protocollo di Google. Supponendo che abbiate a disposizione un oggetto DOMDocument come descritto nell'articolo: $doc = new DOMDocument(); $doc->formatOutput = true; $entry = $doc->createElement('atom:entry'); $entry->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:atom', 'http://www.w3.org/2005/Atom'); $entry->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:gd', 'http://schemas.google...