it-swarm.it

Come decodificare un'estensione di Joomla di terze parti per clonarla ed essere in grado di modificarla?

Ho un modello da un fornitore in cui hanno incluso un nuovo tipo di contenuto e una sostituzione di com_content. Il modello è un'installazione rapida.

Vorrei scoprire - quali file sono stati aggiunti dallo sviluppatore di template/extension oltre al CMS Joomla Core - quali file sono stati modificati e come sono stati modificati - confrontare i database per differenze

Sto anche usando PHP Storm (a cui sono nuovo di zecca).

Una volta che posso confrontare queste differenze, sono sicuro al 95% di poter clonare l'estensione (voglio continuare a utilizzare l'originale così com'è), quindi apportare alcune lievi personalizzazioni per eseguire virtualmente un clone della stessa estensione, ma con il desiderato modifiche.

Come posso avvicinarmi confrontando le differenze tra file e db usando gli strumenti con PHP Storm (e anche tutti gli strumenti che potresti consigliare).

Sono interessato a questa risposta come processo di reverse engineering, che posso descrivere come segue:

  1. Ottieni un modello di terze parti che ha aggiunto alcune estensioni e creato sostituzioni som core.

  2. È necessario decodificare le modifiche apportate (includere eventuali modifiche al DB)

  3. Scarica un Joomla 3.x.x pulito e il modello Quickstart e li scompatta in 2 cartelle di progetto separate (repository 3).

  4. Quindi metodo 'x' per confrontare le differenze.

Per quanto riguarda le effettive modifiche specifiche richieste, questo va oltre lo scopo di questa domanda: sto cercando di ottenere una buona metodologia per il n. 4 sopra, il resto sta solo mettendo questa domanda nel contesto.

Ho PHP Storm e Git HUB - questi strumenti sono sufficienti? Come faccio il passaggio 3 sopra?

5
NivF007

Normalmente un modello dovrebbe occuparsi del layout e degli elementi di presentazione. Detto questo, devo dire che non ho visto alcun modello (compresi i pacchetti di avvio rapido) con modifiche sul database principale in tutta la mia carriera lavorando con Joomla, e non penso che ci dovrebbe essere alcun modello, a meno che il il pacchetto è stato sviluppato da sviluppatori dilettanti. I provider noti non lo farebbero.

Quindi cancelliamo le modifiche db dalla domanda.

Ciò che un modello può includere è l'override del modello. Questi di solito si riferiscono ad alcuni componenti e moduli principali e contengono modifiche html necessarie per ottenere il layout/design del modello dato.

La posizione comune per trovare tali sostituzioni è la cartella html che si trova all'interno della cartella del modello (a meno che il modello o il framework non utilizzi un sistema di sostituzione più avanzato - in tali casi consultare la documentazione del modello per individuare la cartella delle sostituzioni e il meccanismo di come il le sostituzioni sono implementate).

Per ogni componente/modulo principale o altro layout principale, troverai la cartella corrispondente. Ad esempio per il componente com_content, ci sarà un com_content nella cartella html. Per il modulo menu, ci sarà un mod_menu e così via.

Quindi per i componenti ci saranno più cartelle per ogni vista che viene sovrascritta -e.g. per com_content ci dovrebbero essere cartelle come: article, category, ecc - e quindi all'interno di ciascuna di queste cartelle il file modello effettivo (tmpl) che è l'override.

Se vuoi sapere quali sono le modifiche tra i file core e quelli sovrascritti, uno strumento di confronto dei file farà il lavoro. DiffMerge è un'app multipiattaforma che conosco e che posso fare abbastanza bene il lavoro. GitHub potrebbe anche essere usato.

5
FFrewin

@FFrewin è perfetto con i suoi commenti sulle sostituzioni dei template.
Tuttavia, se pensi davvero che altri file siano stati modificati, potresti ottenere un componente di sicurezza come RSFirewall che ha hash per confrontare tutti i file con il core di Joomla. L'esecuzione della sua scansione del sistema ti darà un elenco di file modificati.

1
YellowWebMonkey