Il nuovo sistema di modifica in OpenCart 2

Il successo di qualsiasi framework open source dipende da alcuni fattori e l'estensibilità è uno dei fattori importanti tra di essi. Permette alla comunità di aggiungere nuove funzionalità e arricchire le sue funzionalità principali, dando vita a un prodotto finale molto potente. Certo, è una caratteristica irrinunciabile anche per quanto riguarda lo sviluppo di estensioni personalizzate.

In questo articolo vedremo come è possibile modificare i file principali del framework OpenCart implementando un'estensione OCMOD basata su XML. Gran parte delle sue funzionalità sono prese in prestito dal suo predecessore, il sistema vQmod. In realtà, è un sistema molto più semplice, che offre meno funzioni rispetto a vQmod. Detto questo, ha coperto tutti i modelli di sostituzione importanti.

Il sistema OCMOD è un sistema di ricerca e sostituzione basato su XML. Definisci il file XML secondo le convenzioni di OCMOD e farà il resto. Quindi, potremmo dire che è possibile modificare qualsiasi file nel framework principale!

Elenchiamo un paio di esempi per capire di cosa è capace:

  • Inserisci un determinato pezzo di codice prima di una riga specifica nel file.
  • Sostituisci un blocco di codice con il tuo blocco di codice personalizzato.
  • Trova una stringa nel file usando regexp e sostituiscila con un'altra stringa.
  • Modificare lo schema del database OpenCart.
  • Molti altri…

Come puoi vedere, è un bel elenco di cose che potresti fare con OCMOD. Inoltre, è una buona pratica utilizzarlo invece di modificare direttamente i file core, che è fortemente scoraggiato.

Nella prossima sezione andremo avanti e creeremo un semplice modulo OCMOD a scopo dimostrativo. Suppongo che tu stia utilizzando l'ultima versione di OpenCart.

Come funziona OCMOD

È possibile creare e installare un'estensione OCMOD in due modi diversi. O hai bisogno di creare un file zip con l'estensione ".ocmod.zip", o l'altro modo è quello di creare un solo file XML con l'estensione ".ocmod.xml".

L'opzione File Zip

L'opzione del file zip consente di includere anche un paio di altri file, in modo da poter eseguire anche altre operazioni come la modifica dello schema del database, il caricamento di nuovi file / directory nell'installazione di OpenCart, ecc. Vediamo quali opzioni sono disponibili quando si utilizza la versione zip dell'estensione OCMOD.

  • caricare: I contenuti in questa directory verranno copiati così come sono nella root di OpenCart.
  • install.sql: In questo file, è possibile includere query SQL per modificare il database.
  • install.php: In questo file, è possibile includere codice PHP personalizzato richiesto dal codice di modifica.
  • install.xml: È il file più importante, che contiene il codice di modifica XML.

Naturalmente, non è obbligatorio creare ogni singolo file / directory sopra elencato, ma è necessario crearne uno install.xml file per assicurarsi che l'estensione OCMOD possa essere installata.

L'opzione File XML

Questo è un modo molto più semplice per creare un'estensione OCMOD: è sufficiente creare un file XML con l'estensione ".ocmod.xml". Potremmo dire che è identico al install.xml file e contiene il codice di modifica XML di cui abbiamo parlato nella sezione precedente.

Per semplificare le cose, andremo con l'opzione successiva e creeremo un'estensione OCMOD nella prossima sezione.

Creare i file del modulo OCMOD

Come sviluppatore, il più delle volte ti troverai in una situazione in cui sarai tentato di modificare i file principali. Quindi, faremo un esempio reale di come affrontare questo problema usando un'estensione OCMOD.

Supponiamo che tu voglia modificare il modo in cui il titolo viene visualizzato nella pagina dei dettagli del prodotto. Il seguente codice è responsabile dell'assegnazione del titolo appropriato alla pagina dei dettagli del prodotto. Potresti trovarlo nel file che si trova in Catalogo / regolatore / prodotto / Product.php.

$ data ['heading_title'] = $ product_info ['name'];

E tu vuoi qualcosa di simile a questo:

$ data ['heading_title'] = strtoupper ($ product_info ['name']);

Vediamo come possiamo ottenerlo usando un'estensione OCMOD. Creare un product_title.ocmod.xml file con il seguente contenuto.

  Modifica del titolo del prodotto Code_Tutsplus_Product_Title 1.0 Codice Tutsplus http://code.tutsplus.com       

Come puoi vedere, la maggior parte dei tag è autoesplicativa. Il tag più importante è , che definisce il nome del file su cui verrà eseguita l'operazione. Il il tag è usato per cercare il codice che stiamo cercando, e finalmente abbiamo usato il tag per iniettare il nostro codice.

Installa il modulo dal back-end

Ora che abbiamo terminato con il nostro file di modifica, vediamo come installarlo dal back-end di OpenCart. Dirigiti verso il back-end e vai a Estensioni> Programma di installazione dell'estensione. Clicca sul caricare pulsante e selezionare il file che abbiamo creato nella sezione precedente. Se tutto va bene, dovresti vedere un messaggio di successo.

Navigare verso Estensioni> Modifiche, e dovresti vedere la tua estensione OCMOD elencata in quella pagina.

Ciò significa che hai installato l'estensione con successo! Ora, basta fare clic sul ricaricare icona nella sezione in alto a destra in modo che venga rilevata da OpenCart e pronta per essere applicata al front-end.

Nella prossima sezione, esamineremo il front-end per vedere se è applicato correttamente alla pagina dei dettagli del prodotto.

Test nel front-end

Dirigiti verso il front-end e vai alla pagina dei dettagli del prodotto. Dovresti essere in grado di vedere che il titolo del prodotto è ora in maiuscolo.

Sebbene questo fosse un esempio molto semplice per dimostrare la potenza di OCMOD, si potrebbe fare molto di più con questa utility e modificare i file core se necessario.

Conclusione

Oggi abbiamo discusso del nuovo sistema di modifica in OpenCart 2 e abbiamo esaminato l'intero processo per dimostrare come utilizzarlo per modificare i file core di OpenCart. Sentiti libero di pubblicare le tue domande!