Joomla: Passare da GCalendar a DPCalendar in pochi passi

Tre giorni fà (18.Novembre) un cliente mi chiama allarmato chiedendomi il motivo per il quale il calendario inserito nel suo website ha deciso di non funzionare più.

Da amministratore ho subito tranquillizzato il cliente informandolo di un mancato aggiornamento avvenuto in quei giorni e che avrei controllato immediatamente (ero già sul sito, loggato e avevo già visto da backend che qualcosa non andava o era stato fatto qualche cambiamento), così chiudo la conversazione informando che tutto andrà per il meglio.

Intanto il problema era dietro l’angolo che mi aspettava per dirmi: eh eh e ora? che fai? Google ha deciso di chiudere le API v2 ai quali fa riferimento Google Calendar. Le API verranno chiuse il 17 di Novembre, dal 18 bisognerà usare API v3 (questo è un enorme problema anche perché esistono milioni di utenti che proprio sul Calendar hanno organizzato il loro lavoro o anche vita personale). Comunque detto questo nel giro di pochissimo tempo devo trovare una soluzione a questo problema.

Inizio con le mie ricerche e come funghi compaiono link che mi portano a DPCalendar, spieghiamo cosa è.

La Digital Peak è una società il cui motto è:

Software should work for you – it should be simple, accessible, easy to use and above all, it should do what it says on the tin.

Questa società americana già dal 2007 aveva creato la loro prima versione di GCalendar usando le Google API v1 sino a che in Aprile Google ha deciso di togliere tutto e loro hanno avuto così la possibilità di prendersi una buona fetta di mercato, offrendo anche la possibilità di migrazione guidata e automatizzata da GCalendar al loro DPCalendar.

Vediamo come effettuare questa migrazione…

Prima di tutto dove scaricarvi il file joomla extension da qui:

http://joomla.digital-peak.com/download/dpcalendar (scegliete la versione, io attualmente ho scaricato la 4.1.2)

Questa è la versione FREE e contiene il GCalendar plugin.

1- Installate la versione attraverso il Joomla installer.

2- Poi andate nella vostra cartella locale di download e unzippate il file DPCalendar_Free.zip, vedrete che all’interno vi sarà un altro file chiamato: plg_dpcalendar_gcalendar.zip (dovrete installare anche questo file in joomla, quindi ritornare nel vostro backend e installate questo plugin)

3- Sempre dal backend andate nella sezione Plugin Manager e ATTIVATE il DPCalendar – GCalendar plugin.

4- Andate in Components ->DPCalendar->Tools->Import

Vi importerà le date, gli eventi, i posti e il calendario salvati nel vostro account google.

Ora potrete creare un nuovo DPCalendar – Calendar dal link nel menù e creare il calendario proprio da GCalendar

——IMPORTANTE——-

Lasciate il plugin di GCalendar nel website non lo eliminate perchè servirà da ponte.

——————————-

Nel caso in cui avete il pacchetto Professional perché -vi siete registrati sul sito della Digital Peak e avete pagato il vostro canone- allora potrete anche usufruire del pacchetto “DPCalendar – Google plugin”

Cosa è questo pacchetto…..questo vi servirà perché vorrete creare altri calendari su google e desiderate averli direttamente sul vostro DPCalendar, quindi in qualche modo dovrete creare la connessione tra DPCalendar backend and Google Account.

Vediamo come possiamo fare e cosa ci serve.

Innanzitutto vi serviranno ClientID e Client Secret.

Per avere la possibilità di importare i tuoi Google calendars hai bisogno di un ClientID e di un Client Secret dalla sezione Google Developer Console

In questa sezione dovrete essere loggati “ovviamente” con l’account con cui il website si deve interfacciare (nel mio caso mi sono collegato con l’account del mio cliente).

1 – Create un nuovo progetto con il nome ” Joomla Access”, accettate e andate avanti (in basso a destra si aprirà una finestra con barra nera all’interno della quale vedrete la creazione del nuovo progetto in corso)

plugin-google-create-project

2- Andate nel menu a sinistra e cliccate su APIs&auth->APIs vi aprirà la pagina con le API del vostro account, scendete nel Browse APIs e cercate Calendar API

plugin-google-api-screen-shot

Fatto ciò dovrete cliccare su OFF di Calendar API in modo tale da ABILITARLO

plugin-google-select-enable-api

Poi andate sempre nella colonna a sinistra, nella sezione Credentials e qui dovrete creare in OAuth un nuovo Client ID.

Cliccando vi si apre la finestra:

Screen Shot 2014-11-21 at 11.44.48

Web application->Configure…

Inseriamo la mail dell’account collegato con Google Calendar (miraccomando a digitare correttamente la mail), inserite il nome del progetto che desiderate e andate avanti, vi si aprirà l’altra schermata

Screen Shot 2014-11-21 at 11.51.33

In questa schermata dovrete inserire l’indirizzo del vostro website (miraccomando prestate molta attenzione all’inserimento dell’indirizzo perchè se al posto dell’ “httpS” inserite “http” normale non avrete accesso al vostro website). Procedete cliccando sul bellissimo tasto blu (Create Client ID).

Fatto ciò avrete una nuova schermata che vi mostrerà il vostro Client ID, come noterete avrete anche il Redirect URIs che sarà formato dal vostro indirizzo+oauth2callback (questo verrà cambiato con un altro indirizzo che andremo a scovare tra un po’)

Passo successivo andiamo nel backend

Extensions->PluginManager e attiviamo il plugin DPCalendar – Google.

Clicchiamo su questo plugin ed entriamo nella pagina relativa-> (ora in base a quale versione di joomla avete)

Joomla3.0: Pagina sfondo bianco, accanto al tasto verde(New) vi sarà il pulsante Import (cliccate su Import)

Joomla2.5: Sulla sinistra vi si aprirà la sezione relativa al plugin dove potrete clicc are su Import

Vedrete nella schermata successiva ClientID e Client Secret,  qui inserite i link dati da Google Console, Copia e Incolla.

Dopo cliccate su Import e vi apparirà un errore (perché il redirect URI nella richiesta fatta non è corretta, questo è il link che vi dicevo prima scritto in GRASSETTO.

Screen Shot 2014-11-21 at 13.08.28

Cosa bisogna fare:

Semplicemente selezioniamo (come vedete nell’immagine) l’indirizzo che ci viene consigliato in questa pagina e lo COPIAMO e INCOLLIAMO da qualche parte dove lo possiamo modificare (anche se aprite Blocco Note).

Una volta incollato, dovrete togliere la scritta “amp;” (in totale ne saranno 3, miraccomando dovrete eliminare anche il “punto e virgola”  , quindi sarà (troverete l’indirizzo del vostro website al posto del mio “websiteexample”):

http://websiteexample.com/administrator/index.php?option=com_dpcalendar&task=plugin.action&plugin=google&action=import

Fatto ciò riprendete questo indirizzo e lo copiate.

Andate nella pagina di Google Developers Console

Screen Shot 2014-11-21 at 13.16.39

Cliccate su Edit Settings

Screen Shot 2014-11-21 at 13.18.08

Selezionate l’indirizzo nella casella Authorized redirect URI e incollate l’indirizzo che avete modificato nel vostro Blocco Note.

Cliccate su Update.

Ritornate nel vostro backend, andate un click indietro nella pagina perchè dovrete reinserire nuovamente il Client ID e Client Secret. (sempre gli stessi passi fatti precedentemente.

Una volta cliccato su Update vi compare un altra schermata alcune volte è differente per ognuno di noi dove cliccherete sul nostro bel tasto blu ACCETTANDO tutto………..eh………….magia……..vedrete comparire i tutti vostri calendari eventi e tutto ciò che avete nel vostro account google nel vostro website.

Ora di tutti questi calendari probabilmente non vi serviranno tutti, scegliete quali vi servono abilitandoli e disabilitandoli.

Fatto tutto questo andate e riaggiornate la vostra pagina frontend dove avete il vostro calendario.

Cosa accade? Ancora vi rimane l’errore?

Certo, è ovvio…perchè voi avete importato i calendari da google però quella vostra pagina è ancora un modulo GCalendar, quindi dovrete:

Disabilitare il modulo del calendario di quella determinata pagina, Creare un nuovo modulo DPCalendar scegliendo i calendari che vi servono e miraccomando dategli la stessa posizione (all’interno della pagina) del vostro vecchio GCalendar (ossia tipo: bottombox1 nel mio caso)

Grazie per avermi letto

Buona fortuna e ricordatevi (create un vostro database interno al vostro website perchè tempo 1 anno google eliminerà il vostro calendario dai suoi server quindi PERDERETE TUTTO)

Per qualsiasi dubbio o chiarimento sono sempre a disposizione.

Grazie

Alessio Scannicchio.