Come mantenere aggiornati gli override?


10

Come molti sanno, è possibile sovrascrivere modelli, viste, moduli, componenti.

Il problema principale è quando Joomla! viene aggiornato e gli elementi sostituiti (nella cartella dei modelli) diventano obsoleti.

Come posso aggiornare le sostituzioni ogni volta che viene fatto un aggiornamento a Joomla?

Devo farlo manualmente e controllare ogni nuovo aggiornamento o c'è un altro modo per farlo?

Risposte:


4
  1. Scrivi un piccolo script che calcola md5 di file originali che hai fatto scavalcando.
  2. Scarica questi percorsi di file e MD5 in un file nel tuo modello
  3. Ogni volta che joomla viene aggiornato, eseguire nuovamente lo script sopra.
  4. Controlla la differenza in MD5, se presente, devi verificarla.

Suggerimento: sovrascrivere i file solo se tali modifiche non possono essere apportate dall'override CSS.


Sembra una buona idea, ma commentare l'override renderà ovviamente md5 diverso rispetto a quelli aggiornati / non aggiornati che potrebbero provenire da un aggiornamento, quindi non funzionerà.
jackJoe,

1
Sto chiedendo ai file originali MD5 (dalla cartella di visualizzazione dei componenti), non le sostituzioni (file creati nella cartella dei modelli).
Shyam,

1
Ah! Vedo! in questo modo posso vedere quali file ho scavalcato cambiati con l'aggiornamento. Questa è una bella idea, potrei usare un sistema di controllo delle versioni e avere un ramo con solo i file overriden, in questo modo non ho davvero bisogno di scrivere alcuno script.
jackJoe,

12

Quando il core di Joomla viene aggiornato, non dovrebbe essere interessato alcun override nella cartella del modello. Ecco perché esistono.

Sugli elementi principali di Joomla, le sostituzioni entreranno in conflitto solo raramente con gli aggiornamenti principali di Joomla. Quando si sovrascrivono i file core di Joomla o qualsiasi file, documento documento documento. Commentare nel file di override è CRITICO se questo ti succederà regolarmente e tu gestirai più di uno o due siti. Non ti ricorderai cosa hai cambiato!

Il tuo editor di codice dovrebbe avere una funzione "diff", per confrontare il nuovo file con il vecchio e identificare riga per riga quali modifiche sono state apportate. Se hai commentato bene, questa differenza ti mostrerà esattamente cosa è stato modificato e se il file è stato interessato dall'aggiornamento. Le tue uniche modifiche dovrebbero essere le sostituzioni ... qualsiasi altra cosa e devi andare e ripetere la sostituzione.

Le sostituzioni di terze parti, tuttavia, diventano un problema solo se lo sviluppatore non utilizza correttamente la struttura MVC. Se un componente o un modulo è disposto in modo appropriato, la tmpl o la vista in questione non dovrebbero essere influenzati dagli aggiornamenti del codice.

Se in quell'estensione è presente un importante cambiamento di funzionalità, dovrai sicuramente documentare / commentare e confrontare i file.


Un esempio di sostituzioni di visualizzazioni interessate da un aggiornamento di base è stato con Joomla dal 2.5.16 al 2.5.18, in cui il sito era rotto a causa del componente com_content che aveva un aggiornamento nelle viste ... diffÈ quello che uso, ma quando ho più ignora, è noioso e con molti siti diversi, molto difficile da fare per ciascuno.
jackJoe,

È un concetto interessante, diff automaticamente i file all'aggiornamento. La funzione diff esiste in PHP. Può essere fatto ... da uno sviluppatore diverso da me;)
Toni Marie,

3

Sì, devi confrontare i file ogni volta a mano e aggiornare le modifiche. Su aggiornamenti minori la possibilità è relativamente piccola che sia necessario modificarli, ma su aggiornamenti importanti i file sovrascritti possono cambiare in modo significativo. Preferirei anche un modo più semplice, ma è l'unica soluzione ATM.


0

Una sostituzione non dovrebbe cambiare in nessuna versione di Joomla. Tuttavia, se trovi file modificati, ciò che potresti fare è gestire l'intera installazione di Joomla in sovversione.

È quindi possibile gestire anche le versioni del codice Joomla appropriate in sovversione ed eseguire un'unione fornitore http://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.