CMS Automne

Forum de la communauté du CMS Automne
Nous sommes actuellement le Mer Nov 27, 2024 2:17 pm

Le fuseau horaire est UTC [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 2 messages ] 
Auteur Message
MessagePublié: Mar Fév 19, 2013 2:41 pm 
Hors-ligne

Inscrit(e) le : Mar Sep 21, 2010 2:41 pm
Message(s) : 95
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:


Haut
 Profil  
 
MessagePublié: Jeu Fév 21, 2013 8:59 pm 
Hors-ligne

Inscrit(e) le : Lun Mars 07, 2011 5:30 pm
Message(s) : 70
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;
   }


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 2 messages ] 

Le fuseau horaire est UTC [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 86 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Recherche de:
Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit par Maël Soucaze et Elglobo © phpBB.fr