Tutti gli articoli di admin

TUTORIAL WORDPRESS – CREARE PLUGIN PER API REST

Solitamente uso WordPress come CMS, lo trovo comodo e semplice da usare qualora non siano presenti particolare esigenze da parte del cliente.  Da poco tempo ho scoperto la presenza della APi Rest pienamente supportate dalla versione 4.7, il che fa si che WordPress possa essere utilizzato come backend per architetture a servizi di tipo REST. In breve WordPress permette di definire agevolmente endpoint in grado di ricevere e inviare oggetti di tipo JSON (JavaScript Object Notation). JSON è un formato leggero per l’interscambio di dati, più leggero dell’XML e ciò ha fatto che l’architettura REST con JSON si presenti come alternativa ad una architettura SOAP con XML. Per chi volesse maggiori dettagli su REST rimando ai ragazzi di HTML.IT

Nel mio caso l’esigenza è quella di realizzare un app android che acceda ai contenuti gestiti su una piattaforma WordPress e ne consenta la lettura e/o la modifica.

In questo articolo vedremo come realizzare un servizio REST. Per fare questo occorre realizzare un plugin wordpress, definire l’endpoint da gestire e la logica con cui gestire le chiamate ricevute.

Andiamo per ordine, per realizzare il plugin occorre caricare un file php nella cartella /wp-content/plugins. Tale file deve presentare una intestazione particolare, che consenta a WordPress di individuarlo e di consentire tramite la dashboard di attivarlo. Di seguito un esempio:

Se avete fatto correttamente, accedendo alla sezione plugin di WordPress trovere il plugin da attivare

Il plugin compare dopo aver caricato il file php contenente la sua definizione

A questo punto attiviamo il file ma non essendoci alcun endpoint definito non vedremo effetti. Per definire l’endpoint ci avvaliamo della direttiva add_action che consente di stabilire le regole di invocazione del servizio e la logica con cui restituire il dato

Il comando add action invoca la direttiva register_rest_route che stabilisce l’url da invocare, il metodo HTTP con cui invocare il servizio e la funzione da invocare). Nell’esempio fornito il plugin risponde alla chiamata GET del servizio  http://www.valeriofinazzo.it/wp-json/vfplugin/v1/posts/.

Il metodo cakllback prevede di chiamare la routine api_get_posts che recupera tutti gli articoli presenti nel sito serializzati in formato json

La serializzazione viene gestita in modo trasparente da WordPress. Pertanto il servizio è attivo e non è richiesto altro.

A seguire il codice completo

TUTORIAL PRESTASHOP – NASCONDERE LA CONDIZIONE DEL PRODOTTO

Da poco ho iniziato a usare questo prodotto per l’ecommerce. Sull’installazione non mi soffermo perchè è abbastanza intuitiva, oltretutto è già offerta dai siti di hosting come aruba. Mi soffermerò di più sugli aspetti di configurazione, che l’interfaccia di back-end non permette di gestire in modo naturale.

La prima cosa che ho dovuto fare è stata rimuovere la condizione del prodotto. L’interfaccia di back-end non consente di agire su questo oggetto. Navigando sul forum ho trovato varie soluzioni che prevedevano la modifica al template tpl del prodotto. Personalmente ho preferito agire sul css e nascondere l’oggetto al momento della presentazione.

Per fare questo dovete modificare il file css product.css e aggiungere in coda la definizione

 

A questo punto ricaricando la pagina di dettaglio del prodotto il campo condizione risulterà scomparso.

Se per qualche motivo non potete modificare il css o il vedere il tag nell’html urta la vostra sensibilità potete sempre commentare il sorgente del file product.tpl all’interno del vostro tema

 

Il comportamento è stato implementato e testato sulla versione 1.6, con il thema di defautl

 

COOPERATIVE SOCIALI LOMBARDE

banner

Coop Sociali Lombarde è l’app per android che consente di ricercare le cooperative sociali presenti sul territorio lombardo.

iconaAltaRisoluzione

L’app localizza su google map le cooperative sociali lombarde.
I dati vengono recuperati dal servizio open data offerto da Regione Lombardia, consultabile all’indirizzo
https://www.dati.lombardia.it/resource/tuar-wxya.json.
Per ciascuna cooperativa mostra le informazioni di maggiore interesse per l’utente.
E’ presente una sezione che estrae delle statistiche e la possibilità di aggiornare i dati in ogni momento.
Nei rilasci verranno estese le funzionalità messe a disposizione dall’app.

device-2016-02-17-144825

device-2016-02-17-144928

 

RSA LOMBARDIA

banner

RSA Lombardia è la l’app per android che consente di ricercare le RSA presenti sul territorio lombardo.

icona

L’app localizza su google map le residenze sanitario assistenziali lombarde. I dati vengono recuperati dal servizio open data offerto da Regione Lombardia, consultabile all’indirizzo
https://www.dati.lombardia.it/Famiglia/Elenco-RSA-Accreditate/vef4-8fnp.
Per ciascuna residenza mostra le informazioni di maggiore interesse per l’utente.
E’ presente una sezione che estrae delle statistiche e la possibilità di aggiornare i dati in ogni momento.
Nei rilasci verranno estese le funzionalità messe a disposizione dall’app.

device-2016-02-02-113616 device-2016-02-02-113734

AGRITURISMI LOMBARDI

banner

Agriturimi Lombardia è la nuova app sviluppata per android che consente di ricercare agevolmente tutti gli agriturismi presenti in Lombardia.device-2015-09-18-223123Gli agriturismi vengono recuperati dal servizio open data esposto da Regione Lombardia e geolocalizzati tramite le api di google maps.

Per ogni agriturismo l’app recupera i dati identificativi, i dati di contatto e mostra le attività svolte dall’agriturismo. L’app consente di contattare telefonicamente l’agriturismo avviando in automatico il servizio di call, di inviare mail e di accedere al sito web se presente.

L’app presenta una base dati che consente di implementare una ricerca libera tra le varie informazioni del database. E’ inoltre presente un modulo statistiche che consente di estrarre una serie di statistiche di maggior interesse per l’utente.

device-2015-11-06-193642

L’app è disponibile qui per il download.

TUTORIAL SENCHA GXT 3 – GESTIRE IL TOOLTIP IN UN GRID – LA RIVINCITA

Ho continuato lo studio per gestire il tooltip in un datagrid gxt. Il giro è un pò più complesso di quello che pensavo, ma neanche tanto, basta cambiare il punto di vista.

Il Grid è definito aggiungendo le colonne una per una e associando a ciascuna di esse una configurazione, tramite la classe ColumnConfig.

Ipotizziamo di voler creare un classico grid con 2 colonne e di voler attivare il tooltip sia sull’intestazione che sul contenuto.

Con la chiamata setToolTip stabiliamo il tooltip associato all’intestazione.

Adesso definiamo il tooltip a livello di cella.  Per fare ciò ci viene in soccorso la classe TextCell, e ridefinendo la funzione di render in modo da associare un tooltip alla singola cella

Per attivare il tooltip occorre instanziare un oggetto QuickTip associandolo al grid

e a questo punto invocando il datagrid sarà visibile il tooltip a livello di cella.

tooltip

TUTORIAL SENCHA GXT 2 – GESTIRE IL TOOLTIP IN UN GRID

Nell’articolo di oggi vedremo come integrare un tooltip in una datagrid sencha.  Nel fare questa attività ho avuto qualche rimpianto per la semplicità di utilizzo di Flex, che permette di definire in modo semplice (tramite una sola properties) Il tooltip da far apparire per una determinata colonna.

Con Sencha la cosa non è così intuitiva, probabilmente esiste un modo molto semplice, ma non ho trovato una soluzione che mi soddisfacesse a pieno.  La soluzione che vi presento permette di definire un tooltip su un datagrid ed è provata e testata su gxt 3.1.0 e gwt 2.6.1.

La classe grid presenta una properties tooltip, ma essa riceve una string come argomento, pertanto si presta solo per tooltip statici, mentre la mia esigenza è quella di un tooltip funzione della riga selezionata e ancora meglio della cella selezionata.

Per soddisfare la necessità ho dovuto gestire gli eventi dell’oggetto, avrei sperato in una property della row ma le mie ricerche non hanno avuto esito positivo.

Pertanto considerando di avere a che fare con un oggetto Grid della classe com.sencha.gxt.widget.core.client.grid.Grid possiamo definire un handler sul mouse hover in questo modo:

Tramite tale approccio riusciremo a vedere il tooltip al passare del mouse, un tooltip funzione del model associato al grid.

Nei miei piano avrei v oluto anche gestire la comparsa e scomparsa del tooltip in funzione della colonna, ma i comandi relativi non hanno avuto l’effetto desiderato.

In questo caso direi meglio questo che niente. Alla prossima

 

ANDROID TUTORIAL – 6 – VALIDARE UN FORM

Dopo aver integrato il database oggi realizziamo il form per l’inserimento dei dati e agganciamo ad esso una funzione di validazione, che evidenzi i campi obbligatori.

Prevediamo tre campi obbligatori:

  • name
  • city
  • address

Questi 3 campi vengono definiti come EditText

L’attributo inputType impone il controllo sul formato del campo. Al salvataggio del form il sistema invoca la funzione di validazione che verificherà se il campo è valorizzato o no tramite la routine

Qualora il controllo fallisse la classe  EditText mette a disposizione il metodo setErrorr che consente di abilitare il messaggio di errore attivo sul singolo campo, come si può vedere in foto

mandatory

ANDROID TUTORIAL – 5 – INTEGRARE UN DATABASE

In Android molte applicazioni necessitano di un database per conservare le informazioni per un uso successivo. Realizzeremo insieme un crud, ovvero un app che consente le tipiche operazioni di gestione di una entità:
creazione, ricerca, aggionrnamento e cancellazione.
Il database di riferimento è SQLite, il package offerto da android è android.database.sqlite.

Per poter accedere al nostro database occorre estendere la classe SQLiteOpenHelper, che prevede l’implementazione dei metodi creazione del database.

Il costruttore prevede la creazione di un database con una determinata versione e sono previsti i metodi che verranno lanciati alla creazione del database e/o al suo aggiornamento., All’interno dei metodi è possibile lanciare degli script sql per aggiornare il database.

A questo punto dobbiamo definire la classe per la gestione della nostra tabella, tale classe implementa l’interfaccia BaseColumns, che prevede la presenza di una primary key _ID (tale approccio non è obbligatorio, ma è consigliato da Google per uno sviluppo più armonico)

Nel nostro caso prevediamo una classe così fatta

Non resta che definire la classe DAO responsabile dei metodi di lettura e scrittura sul nostro db

Dall’analisi della classe si vede come la classe Helper permetta di accedere al database in lettura e/o scrittura tramite i metodi

Ottenuta l’istanza del database la classe mette a disposizione dei metodi per la gestione dei dati, che permettono di eseguire del codice sql oppure tramite l’uso di classi container, tipo ContentValues, che consentono l’interazione con il database anche con una limitata conoscenza di sql.

Buona sperimentazione.