Prevenire le ansie da aggiornamento con il sistema Over-Ride

Dalla lettura del Forum e dei messaggi, si nota che molti utenti si dilettano a modificare importanti files come

/includes/filenames.php
/includes/languages/italian.php
/includes/languages/italian/*.php
… e molti altri.

Attenzione, nei futuri aggiornamenti questi file andranno sovrascritti, per ovviare a questo c’è il sistema over-ride, che funziona molto bene ed evita la riscrittura dei files ad ogni aggiornamento o modifica della struttura.

COME USARE IL SISTEMA OVER-RIDE PER GLI IDIOMI DEL LINGUAGGIO
In questo esempio useremo l’idioma italiano ed un template di nome custom

* NOTA BENE: prima di procedere oltre è data per scontata la lettura delle FAQ, ed in particolare il testo relativo a “Come creo un mio Template”

Per Personalizzare il file default di lingua – /includes/languages/italian.php
Per esempio si desidera cambiare subito il titolo Zen Cart! in “Il Mio Negozio!”
Si creerà un archivio/cartella con lo stesso nome del template (quindi “custom”) in /includes/languages, in modo da avere perciò /includes/languages/custom e lì dentro si copierà il nostro italian.php.

Le modifiche andranno effettuate quindi in /includes/languages/custom/italian.php, sostituendo tutte le definizione di base proposte con le proprie scelte personalizzate. Semplice no?

A questo punto si potrà procedere con anche gli altri files di lingua che si intende modificare / personalizzare.
Semplicemente i files di testo .php presenti in /includes/languages/italian/ che si intende modificare andranno copiati in /includes/languages/italian/custom e solo a quel punto andranno modificati secondo le proprie esigenze.

Queste modifiche sovrascriveranno, “over-ride” per l’appunto i files esistenti in /includes/languages/italian, lasciando i core files perfettamente intatti … ed ogni aggiornamento non sarà più un problema!

COME USARE IL SISTEMA OVER-RIDE PER I FILES DEL TEMPLATE

Per Personalizzare i Files del Template si sceglierà da /includes/templates/template_default/templates/
Per esempio, volendo modificare il codice HTML in tpl_account_default.php semplicemente si creerà all’interno della nostra cartella /includes/templates/custom il relativo archivio per i templates, ovvero: /includes/templates/custom/templates.

Come visto precedentemente, via alla copia del file interessato – tpl_account_default.php – all’interno di questo archivio e poi avanti con tutte le modifiche al codice secondo le proprie esigenze.

Saranno da copiare nella cartella “custom” solo i files interessati a modifiche, lasciando gli altri nella cartella template_default.

COME USARE IL SISTEMA OVER-RIDE PER I FILES DEI BLOCCHI LATERALI

Per Personalizzare i Blocchi laterali, si tenga conto che seguono la stessa disposizione dei normali templates (vedi sopra), con l’eccezione del percorso del sidebox: /includes/templates/custom/sideboxes

Per Personalizzare i Files del Blocco si sceglierà da – /includes/modules/sideboxes/*.php
Per esempio, volendo modificare il Blocco information.php per inserivi un’altro link.

Nella cartella sidebox (/includes/modules/sideboxes), si crerà la solita sottocartella con il nome del template “custom”, così da avere /includes/modules/sideboxes/custom

Si copierà all’interno il file d’esempio information.php che solo a quel punto andrà modificato secondo le proprie esigenze, che verranno poi lette e sovrascritte al precedente file.
Sarà possibile visualizzare la sovrascrittura del file dal Pannello di Amministrazione, alla voce > tools > Layout boxes controller.
Nella colonna ‘Box File Name’ se il testo appare in rosso significa che il file è sovrascritto!

COME USARE IL SISTEMA OVER-RIDE PER I NOMI PAGINA

Per richiamare i nomi files personalizzati – /includes/filenames.php

Esempio: si crea una pagina personalizzata, chi_siamo e si deve richiamare il giusto file
Invece di inserire un nuovo define in /includes/filenames.php, si potrà richiamare il nomefile dalla cartella esistente, /includes/extra_datafiles.

Creare un nuovo filename, chi_siamo_filenames.php e porre questo file in /includes/extra_datafiles.

In questo file sarà inserito il codice:

// Define relativo al Filename Chi Siamo
define(‘FILENAME_CHI_SIAMO’, ‘chi_siamo’);
?>

Questo file sarà automaticamente richiamato, al pari di ogni altro file di quella cartella, indicando così al sistema quali sono i filenames personalizzati.

COME USARE IL SISTEMA OVER-RIDE PER LE TAVOLE DEL DATABASE

Per richiamare delle tavole personalizzate del database – /includes/database_tables.php

Esempio: si crea un nuovo campo nel database per il tracking delle consegne UPS, ups_track ed occorrerà definire il nome della tabella contenente il codice.
Invece di inserire una nuovo define in /includes/database_tables.php, si potrà richiamare il nome tabella dalla cartella esistente, /includes/extra_datafiles.

Creare un nuovo filename, ups_track_database_tables.php e porre questo file in /includes/extra_datafiles.

In questo file sarà inserito il codice:

// Tabella tracking consegne UPS
define(‘TABLE_UPS_TRACK’, ‘ups_track’);
?>

Questo file sarà automaticamente richiamato, al pari di ogni altro file di quella cartella, indicando così al sistema quali sono le tabelle personalizzate del database.

COME USARE IL SISTEMA OVER-RIDE PER FILES DI LINGUA SUPPLEMENTARI

Si vuole creare un nuovo file per richiamare delle definizioni di lingua supplementari (cioè extra distribuzione), per ad esempio un nuovo box nominato “Centro Risorse”.

In /includes/languages/italian/extra_definitions, si creerà un file denominato centro_risorse_box_defines.php. In questo file, si inseriranno tutte le definizioni di lingua occorrenti per il nuovo box personalizzato.

Questa cartella viene automaticamente caricata garantendo il corretto richiamo a tutte le definizioni di lingua supplementari previste per i box o le pagine personalizzati.

COME USARE IL SISTEMA OVER-RIDE PER ULTERIORI JAVASCRIPT

Aggiungere ulteriori Javascript ad un file esistente.
Esempio: si vuole caricare un javascript per utilizzare il meccanismo di pagamento xxxpass, così che il Javascript lo carichi dalla (esistente) pagina checkout_success.php una volta completato l’ordine.

Nella cartella /includes/modules/pages/checkout_success, creare un nuovo file denominato jscript_xxxpass.js
In questo file, andrà inserito il codice javascript personalizzato fornito da xxxpass.

Stessa procedura se si intende usare il conversion tracker di google.
Creare un’altro file, nominarlo jscript_google.php e via così …

COME USARE IL SISTEMA OVER-RIDE PER AGGIUNTE o MODIFICHE al CSS

Esempio: si è creato una classe CSS nuova per qualcosa di unico per il Sito. Piuttosto che aggiungela al CSS esistente in /includes/templates/custom/css/stylesheet.css, si creerà un CSS nuovo nella stessa cartella nominandolo stylesheet_YOURFILENAME.css ed inserendovi tutti i dati relativi alla personalizzazione.

Per terminare dobbiamo spendere qualche parola riguardo gli upgrades!

Stiamo correttamente usando il sistema over-ride di Zen Cart! Quando in avvenire dovremo affrontare un upgrade non avremo da preoccuparci di sovrascrivere i nostri files personalizzati in quanto li avremo collocati tutti nelle cartelle personalizzate come abbiamo imparato a fare!
Perciò si proceda pure con l’upgrade. Cosa succede se con questa operazione si aggiunge nuovo codice ai files di sistema sottoposti all’over-ride? Bhè, basta prendere le cartelle personalizzate e confrontare il codice con il NUOVO file di sistema, si evinceranno le differenze che potranno essere riportate nei files personalizzati.
Esempio:
Se avete crato un file di lingua in /includes/languages/custom/italian.php ed adesso dopo l’upgrade, vediamo che vi sono alcuni nuovi define in/includes/languages/english.php ovviamente occorrerà riportare questi nuovi define (tradotti) nel file italian.php.

Per facilitare il lavoro si potrà utilizzare un programma dedicato come WinMerge, che oltretutto è Open Source.