CMS Automne
http://www.automne-cms.org/forum/

Ajout d'une classe dans le répertoire classes de automne
http://www.automne-cms.org/forum/viewtopic.php?f=2&t=2673
Page 1 sur 1

Auteur:  pdub75 [ Mar Fév 19, 2013 2:41 pm ]
Sujet du message:  Ajout d'une classe dans le répertoire classes de automne

Bonjour,

je souhaite ajouter une classe à automne.
Mais surtout, j'aimerais pouvoir créer des objets de cette classe sans devoir faire d'INCLUDE de classe dans les scripts qui utiliseront cette classe.

Autrement dit j'aimerais profiter de l'autoloader de classes de automne.

Comment cela est-il possible ? A quel endroit dans automne dois-je ajouter la prise en compte de ma nouvelle classe ? Ou si vous préferez, où se trouve l'autoloader de classes de automne ?

Un grand merci à qui me renseignera :wink:

Auteur:  mediaboost [ Jeu Fév 21, 2013 8:59 pm ]
Sujet du message:  Re: Ajout d'une classe dans le répertoire classes de automne

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;
   }

Page 1 sur 1 Le fuseau horaire est UTC [Heure d’été]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/