Il Sistema Over-Ride

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.

The Open Source Definition

Open Source non significa solamente accesso al codice sorgente.
I termini di distribuzione di un programma open-source devono rispettare dei criteri.

The Open Source Definition

Open Source non significa solamente accesso al codice sorgente.
I termini di distribuzione di un programma open-source devono rispettare i criteri seguenti.

1. Libera ridistribuzione
La licenza non può limitare nessuna delle parti nella vendita o nella fornitura di software come componente di una distribuzione di software aggregati, contenente programmi provenienti da fonti diverse. La licenza non può richiedere il pagamento di una royalty o di diritti per tale rivendita.

2. Codice sorgente
Il programma deve includere il codice sorgente, e deve consentire la distribuzione sia sotto forma di codice sorgente sia in forma compilata. Nei casi in cui un prodotto non venga distribuito con il codice sorgente, deve esserci la possibilità, ben pubblicata, di scaricare il codice sorgente via Internet senza costi aggiuntivi. Il codice sorgente deve essere la forma privilegiata in cui in programmatore modificherà il programma. Codice sorgente deliberatamente nascosto non è ammesso. Forme mediate, come l’output di un preprocessore non sono ammesse.

3. Prodotti derivati
La licenza deve consentire l’attuazione di modifiche e di prodotti derivati, consentendo inoltre la loro distribuzione sotto gli stessi termini di licenza del software originale.

4. Integrità del codice sorgente dell’autore
La licenza può imporre limitazioni sulla distribuzione del codice sorgente in forma modificata solamente se la licenza consente la distribuzione di file “patch” insieme al codice sorgente con lo scopo di modificare il programma durante l’esecuzione del build. La licenza deve consentire esplicitamente la distribuzione di software realizzato a partire dal codice sorgente modificato. La licenza può richiedere che i prodotti derivati portino un nome o un numero di versione diverso dal software originale.

5. Nessuna discriminazione verso singoli o gruppi
La licenza non deve porre discriminazioni verso qualsiasi persona o gruppo di persone.

6. Nessuna discriminazione verso campi di applicazione
La licenza non deve porre limitazioni sull’uso del programma in un particolare campo di applicazione. Per esempio, non può impedire l’uso del programma in una azienda o per la ricerca genetica.

7. Distribuzione della licenza
I diritti allegati al programma devono applicarsi a tutti coloro a cui viene ridistribuito il programma, senza la necessità di applicare una licenza supplementare per queste parti.

8. La licenza non deve essere specifica per un prodotto
I diritti allegati al programma non devono dipendere dal fatto che il programma faccia parte di una distribuzione particolare. Se il programma viene estratto da tale distribuzione e usato o distribuito nei termini della licenza del programma, tutte le parti a cui il programma viene ridistribuito devono avere gli stessi diritti garantiti in occasione della distribuzione originale del software.

9. La licenza non deve contaminare gli altri programmi
La licenza non deve porre limitazioni su altro software che venga distribuito insieme con il software in licenza. Per esempio, la licenza non deve asserire che tutti gli altri programmi distribuiti sullo stesso supporto devono essere software open source.

10. Conformità della licenza e della certificazione
Qualsiasi programma che faccia uso di licenze certificate come conformi alla Open Source Definition può utilizzare il marchio registrato Open Source, e il codice sorgente può essere dichiarato esplicitamente di pubblico dominio. Nessun altro programma o licenza è certificato per fare uso del marchio registrato Open Source.
(Le informazioni seguenti non sono parte della Open Source Definition e possono subire variazioni nel corso del tempo).
La GNU GPL, la LGPL, la licenza BSD, la licenza X Consortium, l’Artistic, la MPL e la QPL sono esempi di licenze che consideriamo conformi alla Open Source Definition. Per sottoporre a certificazione una licenza, scrivere a certification@opensource.org. Incoraggiamo caldamente l’utilizzo di licenze già certificate dall’elenco precedente, dal momento questo consente l’uso del marchio Open Source senza bisogno di sottoporre a revisione la licenza. Si prega di riportare eventuali abusi del marchio Open Source a: mark-misuse@opensource.org.

Cronologia delle modifiche

    1.0 Identica a DFSG tranne per l’aggiunta di MPL e QPL alla clausola 10.
    1.1 Aggiunta LGPL alla clausola 10.
    1.2 Aggiunto “pubblico dominio” alla clausola 10.
    1.3 Modificato il titolo della clausola 10 e separato l’elenco delle licenze, con l’aggiunta di materiale sulle procedure.
    1.4 Esplicitata l’esigenza del codice sorgente per il software di pubblico dominio.

The Open Source Definition Versione originale (in inglese)

Bruce Perens scrisse la prima bozza di questo documento come “The Debian Free Software Guidelines”, perfezionandola mediante i commenti degli sviluppatori Debian in una conferenza in posta elettronica durata un mese nel giugno 1997. Rimosse quindi i riferimenti specifici a Debian per creare la “Open Soure Definition”.

GNU – GPL

GNU General Public License / ita – eng (originale)

La GNU General Public License è una licenza opensource per software libero.

Il testo ufficiale della licenza è disponibile all’URL http://www.gnu.org/licenses/gpl.html, mentre all’URL http://www.softwarelibero.it/gnudoc/gpl.it.txt è disponibile la traduzione non ufficiale in italiano.

Viene spesso indicata con l’acronimo GNU GPL o (quando non c’è il rischio di confondersi con un’altra “General Public License”) semplcemente GPL.

Per evitare un errore alquanto comune, si tenga presente che GPL non significa Gnu Public License.
La GNU GPL è stata scritta da Richard Stallman ed Eben Moglen nel 1989, per distribuire i programmi creati dal Progetto GNU.

È basata su una licenza simile usata per le prime versioni di GNU Emacs.

Contrapponendosi alle licenze per software proprieatario, la GNU GPL permette all’utente libertà di utilizzo, copia, modifica e distribuzione; a partire dalla sua creazione è diventata una delle licenze per software libero più usate.

Caratteristiche vers. 1.3.xx di Zen Cart®

Hai visto OSCommerce, e cerchi qualcosa di più … tanto di più.
Leggi questa pagina e ti si presenteranno subito le nuove opportunità che cercavi e non pensavi di poter trovare così … tutte e subito!

Migliorato il Sistema dei Templates
– Di norma le modifiche possono essere eseguite usando la sola tabella di stile ed alcune immagini. Non occorrono codifiche del PHP. Le modifiche più profonde possono essere eseguite con la sovrapposizione di template mediante semplici comandi manuali. Passare da un template installato ad un altro è semplice, bastano un paio di click nel Pannello di Amministrazione.

Opzioni di gestione del magazzino
– Sono tanti, adesso, gli strumenti per gestire il negozio. Oltre alla Categoria Promozioni, le opzioni per vendere al meglio comprendono gli sconti per prodotto, per categoria o per quantitativi; lo strumento degli Additivi consente di inserire numerosissime variabili (taglia, colore, peso, dimensione) e, a determinate condizioni, di offrire anche prodotti solo virtuali (software da scaricare on-line dietro pagamento, per esempio). Con un semplice click il tuo negozio potrà trasformarsi in uno Show-room (nessuna indicazione dei prezzi) o in un negozio riservato ai clienti registrati (i prezzi appariranno solo a loro).

Quantità Minima, Massima e Quantità Unità
– Vuoi vendere soltanto 1 articolo per cliente oppure condizionare la vendita all’acquisto di XX unità ? Ora si può, grazie alle funzioni di base.

Nuovi Additivi ed Opzioni
– pulsanti di scelta, caselle di controllo, tendine, caselle di testo ed uploads. Ci sono tutte le possibili scelte per evidenziare le opzioni dei prodotti, con ulteriori opzioni per la lista delle caratteristiche e degli additivi.

Nuovo Regolatore di Additivi
– aggiungi, rimuovi, regoli l’ordine per specie, cambi le opzioni del prodotto e le caratteristiche tutte in un momento. Regoli le proprietà degli additivi, aggiungi le immagini per le opzioni ed installi i trasferimenti dal sistema centrale verso i complementari da un semplice pannello di controllo.

Nuove Regolazioni per le Disposizioni
– scegli come costruire le colonne laterali, la larghezza dei box, il margine di separazione, aggiungi facilmente un collegamento alle pagine dei nuovi prodotti o alla categoria speciale direttamente al menu oppure a più di una categoria dal pannello di Amministrazione.

Chiuso per Manutenzione
– vuoi chiudere il sito per il breve periodo di una manutenzione? Ora puoi! Annuncio per avvertire i clienti del lavoro previsto, dalle ore del giorno … alle ore del giorno … Accesso consentito solo per amministratore o sovrapposizione per comando manuale e riconoscimento dell’ IP per il webmaster o il progettista.

Nuove Opzioni Email
– possibilità di trasmettere le copie delle email del negozio ad altri reparti per la fatturazione o disbrigo dell’ordine! Le regolazioni facili da attuare nel pannello di Amministrazione. Elenco a discesa dei contatti da avvisare a seconda delle disponibilità del catalogo.

Schema e caratteristiche migliorati per le informazioni sul Prodotto
– nel pannello di Amministrazione (configurazione > Pagina Prodotto), ora c’è l’opzione se mostrare o meno quasi ogni informazione del prodotto. In più le immagini multiple in multipli formati, gli attributi e le opzioni, il tutto per dare al meglio le informazioni che inducono all’acquisto immediato.

Conforme alle prescrizioni sulla Privacy
– richiesta la lettura e l’accettazione delle norme che regolano il servizio, nonché di quelle relative alla Privacy (Riservatezza).

Più Opzioni per il Trasporto
– tutte le possibili opzioni sono ora supportate dalla consegna in sede a quella via posta o corriere.

Blocchi Laterali
– non si tocca mai il codice, dal pannello di Amministrazione i blocchi si attivano, disattivano, spostano ovunque con pochi click. Una funzione veramente interessante che offre innumerevoli possibilità, seppure nell’ambito di una grande facilità di gestione.

Modalità Demo
– accesso completo del livello di admin disponibile in maniera dimostrativa, permette agli ospiti di studiarne il pannello di Amministrazione e verificarne le funzionalità proteggendo le zone sensibili da abusi.

Ricerca Migliorata
– di default è attiva la ricerca dei prodotti non solo per nome ma anche in base alla descrizione.

Gestione Magazzino / Fatturazione
– è possibile ora resettare a zero tutti i valori necessari per poter adoperare Zen Cart anche come gestore di magazzino e di fatturazione ripartendo ogni anno dall’inizio.

Sito bucato: box “Case Discografiche” attivo, o trovati in FTP strani file, o non si vedono più le immagini dei prodotti

Nel file README presente in ogni distribuzione, nell’ultima pagina, al termine di ogni processo di installazione e nel mini tutorial inserito in ogni copia di Zen Cart in italiano, c’è scritto di spostare il pannello di amministrazione da /admin a /quello-che-vuoi.

Nonostante tutto questo vi sono negozi con il pannello ancora in /admin!

Si desidera sottolineare quanto sia una semplice e ovvia conseguenza il fatto che un bot possa provare l’esistenza (e violabilità) di un determinato indirizzo, quando alla base, oltre alla mancata procedura di sicurezza abbiamo l’abbinata di (A) un software con meccanismi che ottimizzano indicizzazione e resa con i motori di ricerca; (B) le varie attività di comunicazione, scambio link, pubblicità ecc. ecc. ecc. che ogni amministratore produce per meglio incentivare visibilità negozio e vendite.

Come capire se il negozio è stato violato o bucato:

– sono presenti file XXXX.php nella cartella images e sue sottocartelle, dove con XXXX si intendono caratteri alfanumerici random.
– sono presenti file coreXXXX.php, dove con XXXX si intendono caratteri alfanumerici random.
– aggiunte nuove Case Discografiche nel database; per verificare vedi in Extra > Case Discografiche e controlla se sono presenti record con nome “0” e immagine uno dei file XXXX.php

– in alcuni casi sarà visualizzato il box laterale “Case Discografiche”

– in alcuni casi NON verranno visualizzate correttamente le immagini dei prodotti nel negozio, nonostante il percorso delle immagini sia corretto e le immagini sia realmente presenti; questo è dovuto alla presenza di un file .htaccess nella cartella images.

Cosa fare per bonificare l’ambiente:

1. Rinominare l’amministrazione da “admin” a “quello-che-vuoi”, cambiando di conseguenza il percorso nel file di (admin/include/)configure.php, da /admin in /quello-che-vuoi.

2. Applicare la patch di sicurezza 21_giugno_2009 – Qui in inglese tutte le informazioni ed i dettagli relativi thread_1301610

3. Informare sempre il proprio fornitore di hosting, documentando dettagliatamente la cosa.

4. Ripulire il sito (riferimento Recovering_From_Hacks):
– A) rimuovere tutti i file che sono stati aggiunti nel server (riferimento per data hh:mm:ss) e correggere quelli ev. modificati;
– B) controllare tutte le impostazioni di amministrazione, indirizzi e-mail, dati di pagamento, ecc.;
– C) se si utilizzano moduli o servizi la cui password è accessibile in admin, modificare quella password;
– D) per ordini ricevuti dopo la violazione, considerare una piena verifica pagamento / proprietà prima della spedizione;
– E) se si gestiscono le carta di credito è necessario informare immediatamente i clienti interessati di tale situazione;
– F) si consideri di cambiare i dati di accesso (user/password) del database MySQL.

4. Prevenire effettuando regolari back-up, struttura e specialmente database; questo renderà più veloce e più facile il recupero dati per qualsiasi opzione futura.

Informazioni e normativa per E-commerce

Informazioni sull’E-commerce:

Associazione per lo sviluppo delle garanzie A Supporto del commercio elettronico
CittadinoLex
Interlex
E-commerce: incontro fra domanda e offerta
Guida all’e-commerce
Garante della Privacy
Tutto sulla Legge per la Privacy

Legislazione per E-Commerce:

Normativa Privacy Italiana
Normativa Comunitaria ed Internazionale
L. 23 dicembre 1993 n. 547
D.Lgs. 31 marzo 1998 n. 114
D.Lgs. 13 maggio 1998 n. 171
D.Lgs. 22 maggio 1999 n. 185
Direttiva 2000/31/CE
D.Lgs. 9 aprile 2003 n. 70 – Attuativo della direttiva 2000/31/CE

Incentivi per e-commerce e imprenditoria:

Monitoraggio sui fondi stanziati per i bandi della ex legge 388/2000
Rapporto sul monitoraggio fondi ex legge 388/2000
Ministero Attività Produttive – Incentivi al commercio elettronico
Progetto Saturno per il supporto al pianeta impresa
Istituto per la Promozione Industriale

Inviare ulteriori suggerimenti relativi agli argomenti sopra esposti – grazie!