Forum CMS Made Simple FR

Version complète : [Résolu] Développement module : ajout ligne dans le log admin
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.6
#~ Url du site :
#~ Hébergeur / Soft : IIS7
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

Je viens de me lancer dans le dev de module CMSMS, et j'aimerais ajouter des lignes dans le log admin de CMSMS.
Pour ca, j'utilise la fonction suivante :
Code :
[== PHP ==]
$this->Audit( 0, $this->Lang('friendlyname'), 'Description du log');

Ca fonctionne parfaitement, mais j'aimerais maintenant envoyer un log depuis une fonction PHP. Exemple :
Code :
[== PHP ==]
function EnvoiCaDansLeLog($text) {
   $this->Audit( 0, $this->Lang('friendlyname'), $text);
}

Mais ca ne fonctionne pas. Probablement à cause du $this qui n'est plus interpreté correctement dans dans une fonction ?

Comment puis-je faire depuis une fonction ?

Merci pour votre aide Smile

Fabien
Salut,

Est-ce que ça, ça fonctionne ?

Code :
[== PHP ==]
function EnvoiCaDansLeLog($text) {
   cmsms()->Audit( 0, $this->Lang('friendlyname'), $text);
}
Bonsoir,

Non ça ne fonctionne pas non plus. Page blanche
Bonjour,
pour que $this soit connu, il faut être dans la classe de ton module.
Donc, soit ta fonction est dans ta classe de module (directement ou par include), soit tu récupères ta classe par
Code :
[== PHP ==]
$modops = cmsms()->GetModuleOperations();
$mod = $modops->get_module_instance('monModule');
$mod->Audit( 0, $this->Lang('friendlyname'), $text);
Hello jissey,

Voici l'erreur que j'ai :

Code :
[== Indéfini ==]
Fatal error: Call to a member function Audit() on a non-object in D:\Web\test\www\modules\FAQ\action.defaultadmin.php on line 26

Call Stack:
    0,0006     162472   1. {main}() D:\Web\test\www\admin\moduleinterface.php:0
    0,1104    4019296   2. CMSModule->DoActionBase() D:\Web\test\www\admin\moduleinterface.php:116
    0,1105    4020744   3. CMSModule->DoAction() D:\Web\test\www\lib\classes\class.CMSModule.php:1799
    0,1109    4038912   4. include('D:\Web\test\www\modules\FAQ\action.defaultadmin.php') D:\Web\test\www\lib\classes\class.CMSModule.php:1731
    0,1151    4168672   5. EnvoiCaDansLeLog() D:\Web\test\www\modules\FAQ\action.defaultadmin.php:53
quel est le code que tu as mis exactement à la ligne 24-25 et 26 du fichier action.defaultadmin.php ? et quel est le nom donné à ton module (function GetName() dans le même fichier)
Voici mon code :

Code :
[== PHP ==]
[20] function EnvoiCaDansLeLog($text) {
[21]     echo '<script>alert("'.$text.'");</script>';
[22]    
[23]     // Ajout dans le log admin de CMSMS
[24]     $modops = cmsms()->GetModuleOperations();
[25]     $mod = $modops->get_module_instance('FAQ');
[26]     $mod->Audit( 0, $this->Lang('friendlyname'), $text);
[27] }

et

Code :
[== PHP ==]
  function GetName()
  {
    return 'FAQ';
  }

merci pour ton aide Smile
RE:
met ta fonction dans faq.module.php et appelle là depuis action.defaultadmin.php
Code :
[== Indéfini ==]
function EnvoiCaDansLeLog($text) {
   echo '<script>alert("'.$text.'");</script>';
    
     // Ajout dans le log admin de CMSMS
    
     $this->Audit( 0, $this->Lang('friendlyname'), $text);
Hello jissey,

Merci, c'est parfait !

bonne soirée

Fabien