Cap. 2: Avvertenze sulle modifiche al sistema
Chi si avvicina a OPC o OSC MS2.2 proveniente da esperienze con altri sistemi dinamici in Php-MySQL, come i CMS open source Md-Pro, PostNuke, PhpNuke, Xoops ecc., è abituato a lavorare su sistemi astratti e modulari, nel senso che la struttura del sistema è gerarchica e specializzata: in altri termini, questi sistemi si compongono di un core (codice base del sistema,composto da funzioni, classi, dalle API di sistema e dai driver per il database) e dai vari sottosistemi che gestiscono le funzionalità sovrastanti (gestione utenti, autorizzazioni, downloads, articoli, ...): sottosistemi chiamati Moduli: alcuni sono inclusi nel sistema, altri moduli sono esterni e possono essere aggiunti in modo semplice assicurando una elevata scalabilità. Separato dal codice troviamo integrate delle sovrastrutture che regolano per esempio l'interfaccia grafica (con un motore grafico, tipo AutoTheme), capace di agire sull'output del core e dei moduli. In poche parole, in questi sistemi è facile personalizzare, aggiungere, modificare funzionalità e aspetto grafico agendo solo su specifiche cartelle o file.
OpenCommercio e OSC non hanno invece ancora nella versione stabile attuale, la MS2.2, questa netta separazione tra le varie sovrastrutture, il core e i moduli (le funzionalità specifiche e aggiuntive): così risulta complicato e dispersivo per esempio aggiungere un blocco o modificare l'aspetto grafico (se non ci si vuole limitare a modificare i fogli di stile nel solito file stylesheet.css), per non parlare della difficile integrazione di funzionalità aggiuntive, come alcune contributions (come si chiamano in gergo le integrazioni esterne al sistema).
Esempio: per aggiungere un nuovo blocco per visualizzare le modalità di spedizione, bisogna modificare il codice dei seguenti files:
/catalog/includes/application_top.php
/catalog/includes: column_left.php e column_right.php
/catalog/includes/languages/italian.php
/catalog/includes/languages/italian/shipping.php
/catalog/shipping.php
/catalog/includes/boxes/nuovo_box.php
Perchè questo discorso? Per sottolineare il fatto che molte contributions sovrascrivono direttamente i files originali, e spesso parecchi files: non c'è quella separazione, quell'astrattezza propria dei CMS: se sono state installate altre contrib in precedenza, queste rischiano di essere sovrascritte e non funzionare più: è il classico caso di quando si installa sul sistema vergine un motore grafico (STS, BTS, AutoTheme) e poi si installa la contrib Admin Level che permette di controllare l'accesso al Pannello di Amministrazione tramite un box di login: Admin Level sovrascrive alcuni files già sovrascritti dal motore grafico, col risultato che non funziona più il motore grafico. Qualsiasi integrazione (con le rare eccezioni dell'aggiunta dei gateway di pagamento e dei moduli di spedizione) necessita di un'attenta analisi e confornto dei sorgenti aggiuntivi, e spesso si richiedono modifiche direttamente al codic
e invece di un copia e incolla della contribution aggiuntiva.
Perciò si consiglia:
per migliorare la configurazione dell'aspetto grafico e separare l'interfaccia grafica dal core, installare un motore grafico.
Prima di installare qualsiasi contribution aggiuntiva, leggere attentamente il file readme della contribution e sfogliare i files contenuti per assicurarsi che questi non sovrascrivano files già modificati precedentemente.
Fare sempre un backup prima di provare una contribution e provarla prima magari in locale e vedere se ci sono interazioni a danno di altre funzionalità del sistema e di altre contribuiton installate in precedenza.