web-dev-qa-db-fra.com

Comment désosser une extension Joomla tierce pour la cloner et pouvoir y apporter des modifications?

J'ai un modèle d'un fournisseur dans lequel ils ont inclus un nouveau type de contenu et un remplacement com_content. Le modèle est une installation rapide.

J'aimerais savoir quels fichiers ont été ajoutés par le développeur de modèles/extensions en plus du CMS Joomla Core - quels fichiers ont été modifiés et comment ils ont été modifiés - comparez les bases de données pour voir les différences

J'utilise aussi PHP Storm (pour lequel je suis nouveau).

Une fois que je peux comparer ces différences, je suis sûr à 95% que je peux cloner l’extension (je veux continuer à utiliser l’original tel quel), puis apporter quelques légères modifications pour exécuter pratiquement un clone de la même extension, mais avec l’enregistrement souhaité. modifications.

Comment puis-je comparer les différences entre les fichiers et la base de données en utilisant les outils avec PHP Storm (ainsi que tous les outils que vous pouvez recommander).

Je suis intéressé par cette réponse en tant que processus d'ingénierie inverse, que je peux décrire comme suit:

  1. Vous obtenez un modèle tiers qui a ajouté des extensions et créé certains remplacements de base.

  2. Vous devez procéder à un reverse-engineering sur la nature de ces modifications (inclure toutes les modifications apportées à la base de données).

  3. Vous téléchargez un fichier Joomla 3.x.x vierge et le modèle de démarrage rapide, puis vous les décompressez dans deux dossiers de projet distincts (référentiels 3).

  4. Vous avez ensuite la méthode 'x' pour comparer les différences.

En ce qui concerne les modifications spécifiques requises, cela dépasse le cadre de cette question - je cherche à obtenir une bonne méthodologie pour le point 4 ci-dessus, le reste ne fait que replacer cette question dans son contexte.

J'ai PHP Storm et Git HUB - ces outils sont-ils suffisants? Comment puis-je effectuer l'étape 3 ci-dessus?

5
NivF007

Normalement, un modèle devrait traiter de la mise en page et des éléments de présentation. Cela dit, je dois dire que je n’ai vu aucun modèle (y compris les packages Quickstart) apporter des modifications à la base de données principale de toute ma carrière en travaillant avec Joomla, et je ne pense pas qu’il devrait exister de modèle - à moins que le Le paquet a été développé par des développeurs amateurs. Les fournisseurs bien connus ne feraient pas cela.

Nous supprimons donc les modifications de la base de données de la question.

Ce qu'un modèle peut inclure est un modèle-remplacement. Celles-ci concernent généralement certains composants et modules de base et contiennent les modifications html requises pour réaliser la présentation/conception du modèle donné.

L’emplacement habituel pour rechercher ces substitutions est le dossier html qui réside dans le dossier du modèle (à moins que le modèle ou la structure utilise un système de remplacement plus avancé. Dans ce cas, consultez la documentation du modèle afin de localiser le dossier de remplacement et le les dérogations sont implémentées).

Pour chaque composant/module principal ou autre structure principale, vous trouverez le dossier correspondant. Par exemple, pour le composant com_content, il y aura un com_content dossier dans le dossier html. Pour le module de menu, il y aura un mod_menu etc.

Ensuite, pour les composants, il y aura plus de dossiers pour chaque vue qui sont remplacés, par exemple. pour com_content, il devrait y avoir des dossiers tels que: article, category, etc. - puis à l'intérieur de chacun de ces dossiers, le fichier modèle réel (tmpl) qui constitue le remplacement.

Si vous voulez savoir quelles sont les modifications parmi les fichiers centraux et les fichiers remplacés, un outil de comparaison de fichiers fera le travail. DiffMerge est une application multiplateforme que je connais et que je peux très bien faire. GitHub pourrait également être utilisé.

5
FFrewin

@FFrewin est sur place avec ses commentaires sur les remplacements de modèles.
Cependant, si vous pensez réellement que d'autres fichiers ont été modifiés, vous pouvez vous procurer un composant de sécurité tel que RSFirewall comportant des hachages permettant de comparer tous les fichiers au noyau de Joomla. L'exécution de son analyse du système vous donnera une liste des fichiers modifiés.

1
YellowWebMonkey