web-dev-qa-db-fra.com

Injecter des remplacements HTML dans un modèle d'administrateur

Je voudrais créer des remplacements HTML pour un modèle d’administrateur donné (isis). Je pourrais donc insérer tout le code dans le répertoire du modèle, mais je suppose qu'une mise à jour effacera toutes mes modifications, ce qui pourrait ne pas être la meilleure des idées. En ce moment, j'ai trois idées et j'aimerais demander laquelle privilégier ou s'il y a une meilleure solution:

(I)

Le meilleur scénario serait d'inclure ces remplacements dans mon composant et d'enregistrer cet emplacement dans Joomla !. Imaginez le chemin suivant:

/admininistrator/com_somecomponent/overrides/…

tout ce qu'il contient doit être traité comme

/administrator/templates/<sometmpl>/html/…

Mais s’il est possible d’enregistrer ce chemin dans le système pour que les fichiers soient récupérés, comment puis-je le faire?

(II)

Une autre solution pourrait consister à copier l'intégralité du modèle d'administration, à l'activer et à pirater toutes les modifications. Mais ensuite, ce modèle copié ne recevra pas les mises à jour de son "parent/original", car ce n'est pas un "vrai thème enfant". Il voudrait garder les mises à jour en vie, alors comment cela pourrait-il être fait?

(III)

Une autre solution consiste à créer un lien symbolique en partant du modèle vers le composant, comme suit:

$ pwd 
$ /administrator/templates/<sometmpl>/html/
$
$ ls -la
$ com_content --> ../../../com_custom/overrides/com_content

De cette façon, je devrais avoir soin de créer ce lien chaque fois qu'une mise à jour se produit, ce qui pourrait être fait dans un plugin en écoutant l'événement "onExtensionAfterUpdate". Mais cela nécessite beaucoup de code et je ne sais pas comment le tester, car les mises à jour sont rares.

RÉSUMÉ

L'extension du type de contenu principal est quelque chose que j'aimerais vraiment faire depuis longtemps et je cherche une bonne façon de le faire. Donc, si quelqu'un avait déjà fait cela auparavant, j'apprécierais beaucoup chaque aide!

3
philipp

Je suggérerais l'option 1.

Disons que vous voulez remplacer:

administrateur/composants/com_admin/vues/sysinfo/tmpl/default.php

Il vous suffira simplement de copier ce fichier sur

administrateur/templates/isis/html/com_admin/sysinfo/default.php

Note: comme vous pouvez le voir, cela exclut le tmpl répertoire

Vous n'avez pas besoin d'enregistrer de chemins. Joomla utilisera automatiquement le remplacement.

1
Lodder