Architettura di Opencart
Opencart, a partire dalla versione 1, è stato riscritto seguendo la metodologia MVC (Model-View-Controller), che consente di separare logicamente 3 aspetti della struttura, e cioè:
- Model: sono i metodi per accedere ai dati (ad esempio le caratteristiche di un prodotto: prezzo, immagine etc..)
- Controller: accede ai dati forniti dal Model e li rende disponibili al View
- View: visualizza i dati forniti dal controller
Ciascuno di questi componenti è inserito all'interno di 3 omonime cartelle, sia dentro catalog (negozio pubblico) sia dentro admin (amministrazione)
Facciamo un esempio pratico: vediamo come viene costruito il blocchetto delle selezione della valuta. I file coinvolti sono 3:
- Model: file catalog/model/localisation/currency.php
- Controller: file catalog/controller/module/currency.php
- View: file catalog/view/theme/default/template/module/currency.tpl
Il primo file (model) è una classe molto semplice, che esegue semplicemente una query al database per recuperare tutte le valute inserite
Il secondo file (controller) recupera i dati tramite la classe del file model:
$this->load->model('localisation/currency');
$this->data['currencies'] = $this->model_localisation_currency->getCurrencies();
ed effettua altre operazioni per impostare i dati da passare al view come ad esempio il titolo del blocchetto (la parte dopo l'uguale è un metodo che si occupa di tradurre nella lingua giusta il testo impostato nei file di lingua):
$this->data['heading_title'] = $this->language->get('heading_title');
Il terzo file (view) si occupa della visualizzazione dei dati ed è un file tpl (modello di template) contenente codice misto HTML/PHP con le variabili che vengono passate dal controller, ad esempio:
<div class="top" style="background: url('catalog/view/theme/default/image/icon_currency.png')
8px 8px no-repeat; padding-left: 30px;"><?php echo $heading_title; ?></div>
che è la variabile impostata prima nel controller. Chiaramente fa riferimento anche a file CSS e JS ubicati nella cartella catalog/view/theme/default/
Questo sopra è un esempio che esemplifica il funzionamento e l'architettura di Opencart, tutto quanto è strutturato in questo modo, quindi una volta capito il meccanismo è facile trovare tutte le cose che ci interessano. Provate ad esempio a vedere come viene costruito il blocchetto delle lingue, molto simile a quello delle valute, oppure per avere un esempio più complesso provate a vedere la scheda prodotto.
- Versione stampabile
- Login o registrati per inviare commenti

