Per la navigazione su file e cartelle remote (sui server) uso spesso mc, Midnight Commander.
apt-get install mc
su macchine Ubuntu / Debian
Per spostare il file del Plugin sul server ci sono tanti modi diversi (quando non è possibile scaricarlo direttamente dal sito di provenienza): è possibile usare FTP (saranno 20 anni che non installo FTP sui miei server, ma è un metodo abbastanza diffuso), oppure scp (dal terminale di Linux o del Mac) o ancora PSCP.EXE (se si usa Putty da macchine Windows). Io preferisco un metodo più pratico: sposto il file in una cartella dropbox che uso solo per lo scambio di file tra vari PC, poi Tasto Dx del mouse sul file e click su Condividi (con accanto l’icona di Dropbox). Compare la seguente finestra:
Cliccando su Crea link verrà generato un link di condivisione del file e compariranno due testi cliccabili: Impostazioni link e Copia Link. Premendo su questo secondo testo si avrà il link copiato in Clipboard.
A questo punto ci si collega in ssh sul server e si crea da qualche parte una cartella temporanea, ad esempio:
mkdir /tmp/plugins/
e
cd /tmp/plugins/
Scarichiamo il file (solitamente cliccando col tasto destro del mouse su una shell di linux, oppure con SHIFT + tasto destro si ottiene un INCOLLA del link appena copiato) con:
wget https://www.dropbox.com/s/blablabla/plugin.tgz?dl=<strong>1</strong> -O myplugin.tgz
ATTENZIONE: il link copiato riportera ?dl=0
che NON permette il download diretto, rimandandoti alla pagina Dropbox da cui scaricare il file. A noi basta cambiare ?dl=0
in ?dl=1
e il file verrà giù come una grandinata in Agosto.
ATTENZIONE BIS: prima di procedere da qui in avanti sarebbe opportuno effettuare un BACKUP del nostro sistema (lo si può fare dal pannello di amministrazione di Magento) perchè sbagliare è un’attimo… ripristinare senza avere un backup può essere piuttosto doloroso.
ATTENZIONE TRIS: prima di procedere è opportuno disabilitare la cache di Magento per poi riabilitarla a lavoro concluso. Sistema > Gestione della Cache > Seleziona tutto > Disattiva
Bene, il nostro file ora è sul server, è ora di aprire il nostro file manager digitando mc
Il File manager presenta la schermata divisa in 2 parti: sinistra e destra. In ognuna delle due parti è visualizzato il contenuto di una cartella. Ci spostiamo tra sinistra e destra col tasto di tabulazione TAB, mentre con il tasto INVIO si entra nella cartella evidenziata. Facciamo in modo da avere a sinistra la root directory del nostro sito di commercio elettronico e a destra la cartella temporanea con il plugin appena trasferito sul server. Mc ha la capacità di accedere anche a cartelle compresse per cui ci basterà spostarci sul file e cliccare su INVIO per ritrovarci a visualizzare la struttura del nostro plugin che dovrebbe essere quella visualizzata in figura sotto.
Ci spostiamo nella parte destra con TAB e con le frecce del cursore spostiamo la riga evidenziata su app
: a questo punto premiamo il tasto funzione F5 (copia), e si aprirà una finestra che ci chiede quale sia la destinazione della copia. SE nel pannello di sinistra abbiamo già la destinazione (la root html del sito Magento) non occorrerà far altro che premere INVIO perché la destinazione preimpostata sarà già quella corretta. ATTENZIONE: mc ci chiederà se vogliamo SOVRASCRIVERE eventuali file già presenti (nel mio caso c’è solo un conflitto su style.css): la risposta è NO. Faremo la stessa cosa con la cartella skin
.
Per chi usa un template diverso da quello standard occorre fare qualche operazione in più: occorre sovrascrivere i file html che contengono i form con quelli forniti dal Plugin:
LO SO! è brutto da farsi e non è cosa che faccio volentieri.
perché se un giorno cambiassi Template dovrei ricordarmi di rifare l’operazione e perché se il template venisse aggiornato (quello che ho comprato non ha avuto aggiornamenti negli ultimi 2 anni) dovrei riportare nuovamente le modifiche… MA, non si può avere la botte piena e la moglie ubriaca: questo è un plugin GRATUITO, la modifica richiesta è LOW LOW LOW budget (per cui non voglio impiegare un minuto più del necessario, risolvendo comunque il problema). Cosa dobbiamo sovrascrivere dunque?
in app/design/frontend/default/nomeDelTuoTema/layout
occorrerà copiare il contenuto che troviamo nel plugin sotto > app/design/frontend/base/default/layout
e in app/design/frontend/default/nomeDelTuoTema/template
dovrai andare a sostituire i file che contengono i form che vuoi proteggere. Ad esempio nella directory app/design/frontend/default/nomeDelTuoTema/template/newsletter
c’è il file subscribe.phtml che per prima cosa backuppo (subscribe.theme.phtml) e poi sovrascrivo con il file che trovo in app/design/frontend/base/default/template/recaptcha/newsletter
.
Se a questo punto andassimo a visualizzare i form, vedremmo già il recaptcha, ma non sarebbe attivo lato server: questo vuol dire che se l’utente riuscisse a inviare il form senza utilizzare il controllo, Magento accetterebbe i dati senza controlli ulteriori. Per fare in modo che il controllo venga effettuato anche lato server occorre configurare il plugin.
Per prima cosa occorre ottenere una Site key ed una Private key iscrivendosi al servizio su Google. Una volta inserito il dominio (è anche possibile utilizzare la stessa coppia di chiavi per più domini, se indicati) Google ci mostra le due chiavi da utilizzare in configurazione.
Se abbiamo installato correttamente il Plugin (potrebbe essere necessario un Logout + nuovo Login dall’area amministrativa di Magento per vederlo) possiamo configurarlo da Sistema > Configurazione > MageComp > Google Recaptcha.
La prima voce abilita il Plugin lato server, seconda e terza voce le abbiamo appena ottenute; il thema può essere Light (sfondo bianco) o Dark (sfondo grigio scuro); l’ultima scelta ci permette di attivare il Plugin selettivamente solo su alcuni form utilizzati.
Se abbiamo fatto tutto a modino quello che otteniamo è ad esempio questo:
Come si può notare entrambi i form della pagina presentano il Google Recaptcha. Un occhio attento noterà che la dimensione dei due box non è identica. Può capitare infatti che, per esigenze stilistiche, il box debba essere ridimensionato (in questo caso quello sotto il campo di iscrizione Newsletter era sensibilmente più lungo del campo sovrastante, quindi andava rimpicciolito). Non ci sono possibilità di stilizzazione del recaptcha, ma c’è un escamotage che si può utilizzare: andiamo ad aprire il file app/design/frontend/default/ilTuoTema/template/newsletter/subscribe.phtml
(o qualunque altro form a noi interessi modificare). Andiamo ad individuare il blocco div che ha classe=”g-recaptcha” e gli affibbiamo questo stile:
style="transform:scale(0.89); -webkit-transform:scale(0.89); transform-origin:0 0; -webkit-transform-origin:0 0;"
Siamo quindi andati a scalare l’intero blocco per andare a matchare le dimensioni del campo superiore.
Qui sotto un’immagine che mostra il risultato della nostra modifica al codice:
PS. questa modifica può creare alcuni problemi di visualizzazione in alcuni template (fondamentalmente non si riesce a mettere il focus sul campo “email”). Personalmente ho dovuto spostare tutto il blocco condizionale (if () …) che contiene il codice in figura, qualche riga più in basso, al di sotto dei blocchi div che contengono il tasto SUBMIT.