2012-10-16 22 views
5

C'è un modo per gli sviluppatori di modificare i metodi del controller e del modello in Opencart senza dover toccare i file principali? Molto simile al modo in cui WP ha il file functions.php in cui è possibile modificare l'intestino di WP senza doversi preoccupare degli aggiornamenti futuri che sovrascrivono il codice.Modifica il controller in Opencart senza toccare il core?

Ecco alcuni esempi che credo ogni sviluppatore ha bisogno di avere nella loro OpenCart toolkit:

  • La possibilità di aggiornare i valori
  • Run SQL personalizzata query
  • Aggiornamento logica dello strato programma di
  • Estendere ulteriormente il sistema
+0

Non si può sovrascrivere la classe e reimplementare i metodi che vuoi? – AlexP

risposta

1

Dai uno sguardo allo vQmod. Questo è il modo principale utilizzato dalla maggior parte degli sviluppatori per non modificare il codice di base

+1

vQmod è ottimo ma ha questa sensazione _hacky_ che non approvo abbastanza, soprattutto perché usa XML quando XML è stato progettato per il trasferimento dei dati e non per l'archiviazione del codice. – enchance

+0

Un commento equo, ma è stato largamente adottato dalla comunità OC nel suo complesso ed è attualmente il metodo meno intrusivo –

0

Suggerirei di modificare l'anima minimamente in modo che possa essere facilmente estesa. E per chi è già troppo tardi, di seguito un esempio per aggiornare un nucleo modificato da 2.0.2.0 a padroneggiare: (! Altrimenti io suggerirei biforcano OpenCart e utilizzando rebase)

git clone https://github.com/opencart/opencart 
cd opencart 
git checkout 2.0.2.0 #insert tag with your current version. Mine was 2.0.2.0 
cd upload 

#Note: sed strips paths for 'upload/' (opencart) 
git diff 2.0.2.0 master > ~/patch-to-newest-version.diff | sed "s/+++ b\/upload\//+++ b\//" | sed "s/--- a\/upload\//--- a\//" 
#  I chose ^master^ but you'd better use a stable version. 

cd to-your-modified-(opencart)core 
patch -p1 < ~/patch-to-newest-version.diff 

#..time to resolve the conflicts.. hopefully not much. Good luck. 

(se qualcuno conosce un un modo migliore per applicare patch a un core modificato, per favore commenta soprattutto perché non è bello continuare a lavorare in una cartella '/ upload' ... usare un checkout sparse o s/t?

Problemi correlati