5

I have a template from a provider in which they've included a new content type and a com_content override. The template is a quick install.

I'd like to find out - what files have been added by template/extension developer in addition to the Joomla Core CMS - what files have been modified and how they've been modified - compare the the databases for differences

I'm also using PHP Storm (to which I'm brand new to).

Once I can compare these difference, I'm 95% confident I can clone the extension (I want to keep using the original as is), and then make some slight customizations to run virtually a clone of the same extension, but with the desired modifications.

How can I approach comparing the differences in files and db using the tools with PHP Storm (and also any tools you may recommend).

I'm interested, in this answer as reverse-engineering process, which I can describe as follows:

  1. You get a 3rd party template that has added some extensions and created som core overrides.

  2. You need to reverse-engineer what those changes were (include any modifications to the DB)

  3. You download a clean Joomla 3.x.x and the Template Quickstart and unpack them into 2 separate project folders (repositories 3).

  4. You then 'x' method to compare the differences.

As for making the actual specific modifications required, that's beyond the scope of this question - I'm looking to get a good methodology for #4 above, the rest is just putting this question in context.

I have PHP Storm and Git HUB - are these tools sufficient? How I do step 3 above?

  • 1
    I was planning on looking into this early next year (for extensions). As such my suggestions could be grossly incorrect. I would dump the DB and put it under Version Control (VC- using Git or similar) stackoverflow.com/questions/846659/…. For the extension/template, I'd also put it under VC. I'm thinking of doing something similar to step 4 described at vdespa.com/joomla-3-getting-started-with-extension-development I'm using ansible to create the vm, but tbh it is a PITA. Probably faster to just clone the vm. – TryHarder Dec 29 '17 at 14:27
  • 1
    I'm using Beyond Compare for comparing differences in files. Apparently, it also integrates with PHPSTORM. There are plenty of free alternatives though and most of them will do what you need. – TryHarder Dec 29 '17 at 14:31
5

Normally a template should deal with the layout and the presentational elements. Having said that, I have to say that I haven't seen any template (including quickstart packages) coming with modifications on the core database in my whole career working with Joomla, and I don't think there should be any template - unless the package has been developed by amateurish developers. Well-known providers wouldn't do that.

So we wipe-out db modifications from the question.

What a template may include is template-overrides. These usually relate to some core components and modules and contain html modifications required to achieve the layout/design of the given template.

The common location to find such overrides is the html folder that resides inside the template's folder (unless the template or framework uses a more advanced overriding system - in such cases consult the template's documentation in order to locate the overrides folder and the mechanism of how the overrides are implemented).

For each core component/module or other core layout, you will find the corresponding folder. For example for the com_content component, there will be a com_content folder inside the html folder. For the menu module, there will be a mod_menu and so on.

Then for components there will be more folders for each view that are overridden -e.g. for com_content there should be folders like: article, category, etc - and then inside each of these folder the actual template file (tmpl) that is the override.

If you want to know what the modifications are among the core and the overridden files, then a files comparison tool will do the job. DiffMerge is a cross platform app that I know and can do the job pretty well. GitHub could also be used.

1

@FFrewin is spot on with his comments about template overrides.
However, if you really think other files have been modified, you might get a security component like RSFirewall that has hashes to compare all files to core Joomla. Running its system scan will give you a list of modified files.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.