Bonsoir 
question intéressante .. mais un peu laborieuse
il faut que tu ajoutes dans les tables "modules"  et "messages " de la bdd les informations de ta classe avec le nom de ta classe qui est considéré comme un module
Code :
INSERT INTO `modules` (`label_mod`, `codename_mod`, `administrationFrontend_mod`, `hasParameters_mod`, `isPolymod_mod`) VALUES (1, 'monmodule', 'index.php', 0, 0);
INSERT INTO `messages` (`id_mes`, `module_mes`, `language_mes`, `message_mes`) VALUES (1, 'monmodule', 'en', 'Mon Module');
INSERT INTO `messages` (`id_mes`, `module_mes`, `language_mes`, `message_mes`) VALUES (1, 'monmodule', 'fr', 'Mon Module');
ensuite tu crées ta classes (en respectant le CMS_module_
Code :
class CMS_module_monmodule extends CMS_module
{
}
la classe doit surcharger la méthode load afin d'insérer ta classe dans la pile autoload
Code :
/**
     * Module autoload handler
     *
     * @param string $classname the classname required for loading
     * @return string : the file to use for required classname
     * @access public
     */
   public function load($classname) {
      static $classes;
      if (!isset($classes)) {
         $classes = array(
            'maclasse' => PATH_MODULES_FS.'/'.MOD_MONMODULE_CODENAME.'/ma_classe_perso.php'
         );
      }
      $file = '';
      if (isset($classes[io::strtolower($classname)])) {
         $file = $classes[io::strtolower($classname)];
      }
      return $file;
   }