Google reCaptcha Versione 2 con joomla! e K2

reCaptcha Box and Joomla K2 reCaptcha Box and Joomla K2

Google ha introdotto, alcuni mesi fa, una nuova versione per il sistema di protezione dei Form. In questo articolo . Potrai trovare maggiori dettagli sulle novità più importanti introdotte in Joomla 3.4, all'interno del quale un breve paragrafo è dedicato proprio a quelle novità introdotte nel CMS Joomla!® relativamente all'utilizzo della nuova versione di Google reCaptcha.  Questo di per sé non è un vero e proprio problema, tutt'altro! Infatti la nuova versione di reCaptcha è meglio accettata dai chi visita un sito, poiché non si è più costretti a digitare sequenze di caratteri senza significato che spesso non fanno altro che generare un buona dose di stress.

Questo How-To vuole quindi essere una traccia per tutti coloro che hanno avuto la sventura di imbattersi nello stesso problema e che non hanno trovato la soluzione, o che la soluzione introdotta non raggiunga comunque un buon risultato nel rendering della pagina.

Il Problema

Cominciamo col dire che, durante lo sviluppo di uno dei siti web per un Cliente, ho avuto non pochi problemi ad utilizzare il nuovo reCaptcha di Google (per intenderci la nuova versione 2) in una installazione Joomla versione 3.4.1 con installato K2 versione 2.6.9 (il famoso CCK - Content Construction Kit). Ci sono volute parecchie ore di lavoro e una grande dose di pazienza per cercare di individuare il problema e risolverlo, anche perché il sito in questione è piuttosto complesso; con tantissimi plugin, componenti e moduli. Quindi individuare il problema è stato un vero rompicapo: Incompatibilità tra alcune estensioni? Malfunzionamento di Joomla!? Errori nella configurazione delle estensioni?. Andando per esclusione, dopo parecchie ore di lavoro, sono riuscito finalmente a restringere il cerchio, delle possibili cause intorno al componente K2 o a qualche parametro mal configurato in questa famosa estensione.

Nell'interminabile processo di ricerca delle possibili cause del problema, mi sono accorto che:

  1. Joomla 3.4+ usa l'ultima tecnologia di reCaptcha versione 2
  2.  Il modulo di registrazione utilizzato da K2 non usa il captcha di Joomla, ma usa la vecchia reCaptcha versione 1 (cablata nel componente).

Con questi presupposti, era ovvio che non potesse funzionare! Perché non me ne sono accorto prima? Infatti, Tentando di effettuare una registrazione sul sito ho notato subito che il riquadro di Google reCaptcha non era quello nuovo (per intenderci, quello con la scritta "Non sono un Robot") bensì quello vecchio, ovvero quello che mostra una o più stringhe di caratteri deformati (oppure quello con delle immagini di numeri che sembrano numeri civici di abitazioni).

Il Captcha versione 1

 

Eppure il captcha di default, nella System > Global Configuration > Default Captcha era correttamente impostato a Captcha - reCaptcha (quello di Joomla).

captcha vs k2.001

Non solo. Ho anche verificato nuovamente che User > User Manager > Options > Captcha fosse inpostato su Use Default.

captcha vs k2.002

 

Niente da fare! Ogni volta che tentavo di effettuare una registrazione di un nuovo utente non riuscigo ad ottenere altro che l'antipatico errore "Warning Empty solution not allowed" con l'ovvio risultato che la registrazione del nuovo utente non andava a buon fine. Insomma: nessuno poteva registrarsi su quel sito!

La soluzione

Per correggere l'anomalia, o meglio, per fare in modo che joomla! funzionasse secondo quanto progettato (indipendentemente da componente K2) è stato necessario fare qualche modifica sia sulla configurazione classica sul lato backend del sito, sia intervenire sul filesystem dell'installazione di Joomla..

Sul lato Backend del sito, ovvero come amministratore:

  1. Verificare che il plugin Captcha - reCaptcha sia abilitato e siano state correttamente inserite le chiavi (Chiave del Sito e Chiave Segreta) ottenute da Google sul sito https://www.google.com/recaptcha/intro/index.html.
  2. Verificare inoltre che il plugin Captcha - reCaptcha sia impostato sull'utilizzo della Versione 2
  3. Verificare che System > Global Configuration > Default Captcha sia correttamente impostato a Captcha - reCaptcha.
  4. Verificare che User > User Manager > Options > Captcha sia inpostato su Use Default, o in alternativa su Captcha - Recaptcha.
  5. Verificare che K2 > Parameters  > Advanced tab > Enable reCaptcha on registration form sia  impostato su No.

Nel File system:

  1. Individuare il file root-di-joomla/components /com_k2 /templates/register.php e rinominarlo in register.php.BAK. (Questo forzerà joomla ad utilizzare il proprio form di registrazione di default invece che quello di K2).

Se non è andato storto qualcosa, si potrà facilmente verificare che la pagina di registrazione ora ha il nuovo Captcha, ovvero questo qui

il nuovo Captcha versione 2

Puoi verificare tu stesso, registrandoti direttamente su questo sito, dove è stato applicato questo workaround. il nuovo Google reCaptcha farà bella mostra di se in fondo al Form di registrazione.

Conclusioni

Lavorare con Joomla! può dare moltissime soddisfazioni, si può dare vita ad un sito web in poco tempo con ottimi risultati. Con l'impiego di estensioni  professionali ci possiamo permettere di raggiungere livelli di complessità insperabili, con altri framework. Tuttavia, è sempre possibile che la convivenza tra diverse estensioni possa essere fonte di notevoli grattacapi, soprattutto tra estensioni eterogenee. In fin dei conti, chi sviluppa un'estensione pone sicuramente molta cura alla compatibilità con Joomla, ma non può certamente sapere a priori con quale altra estensione, di qualsiasi altro sviluppatore, dovrà coesistere.

Pertanto, se posso permettermi di dare un suggerimento, direi che, nello sviluppo di un sito web sulla piattaforma joomla! (ma lo stesso discorso vale in generale) va posta molta cura nel disegno iniziale, prendendo in cosiderazione solo estensioni la cui qualità sia comprovata. Aggiungerei anche che è estremamente utile verificare attentamente la compatibilità tra le estensioni a convivere nel medediso sito web, prima di proporre soluzioni difficilmente applicabili nella pratica.

 

Lascia un commento

Tutti i commenti dovranno essere verificati ed approvati dal webmaster, prima di essere pubblicati

 

Quote of the Day

Si può esser tutto ciò che si vuole, basta trasformarsi in tutto ciò che si pensa di essere

Freddie Mercury

Chi è online

Abbiamo 320 visitatori e nessun utente online

Newsletter

Per essere sempre aggiornato sulle ultime novità.

Go to top