Modifier une fonction du kernel sans toucher au kernel

Un article de Wiki Maximus CMS.

Tout le monde un jour ou l'autre à besoin de modifier et/ou agrémenter une fonction du kernel de Maximus ....


Jusqu'à présent on devait faire comme les autres et se galérer à modifier les fichier du kernel, ce qui implique qu'à la mise à jour suivante du CMS, on était en galère car il fallait retrouver ses modifications, les refaire etc etc .... enfin la grosse galère classique du CMS (ou dieu sait combien d'upgrades, en plus, naissent régulièrement chez certains)


Avec Maximus 2008, adieu ces vielles galères, qui maintenant seront à classer parmi les ancêtres (comme d'autres:))


Pour prendre exemple, on va faire très simple.

Supposons que je désire modifier la fonction Is_Active, fonction qui permet de déterminer si un module est bien activé et installé.
Cette fonction se situe dans le fichier kernel/utility.php
Je vais donc au préalable créer un nouveau fichier que je vais nommer utility.php et que je devrai uploader dans le dossier kernel/perso/


Je vais donc écrire ma nouvelle fonction is_active qui sera prioritaire sur la fonction native de maximus, comme par exemple ceci :

function Is_active( $module) {
   /* là je met mon code à moi bien mieux que celui d'origine :) */
}


Et voilà ma fonction terminée, mon fichier enregistré et uploadé sur le FTP dans le dossier qui va bien et la bonne vieille fonction native de maximus n'existe plus :), et c'est bien ma nouvelle fonction qui est chargée dès la première page visitée et ce tant que mon fichier sera présent dans le dossier kernel/perso


Cet exemple se veut basic mais il est d'évidence qu'il permet toute sorte de configuration personnelle sans jamais avoir à toucher un quelqconque fichier du kernel


Pour la prochaine version de maximus, il me suffira donc de réuploader mes fichiers localisés dans le dossier perso du kernel, dans le kernel de la version suivante, et roule ma poule :):) (quoi, plus simple tu meurt ... ou pas loin :))



Nota, pour remplacer une fonction du kernel il faut:

  • la localiser (un guide sera prochainement mis à disposition du public récapitulant les fonctions et leurs emplacements réciproques )
  • créer un fichier du même nom et le placer dans le dossier perso du kernel
  • écrire sa nouvelle fonction
  • enfin uploader le fichier concerné
  • pour terminer ne pas oublier de sécuriser le fichier avec la ligne suivante juste après <?php
defined('MAXIMUS') or die('illegal access');


Cyril 1 aoû 2008 à 17:19 (CEST)