[résolu] Création de module : pb récupérer variables dans DoAction() - ledut - 04/02/2010
Bonjour,
Je suis en train de créer un module pour CMSMS, appelé LS2CMSMS.
Mon soucis est que je dois utiliser des variables dans la fonction "doAction()" et que ces variables se perdent en route :
Je les déclare dans le fichier "de config" : monModule.module.php
et lorsque je les appelle dans mon fichier action.MonAction.php : elles n'ont pas été conservées . . .
J'ai beau éplucher la documentation, je ne trouve pas comment faire.
quelqu'un aurait une idée ??
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.6.6
#~ Version du MLE si existante :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.6.6
#~ Installed Modules:
#~ * CMSMailer: 1.73.14
#~ * FileManager: 1.0.1
#~ * MenuManager: 1.6.2
#~ * ModuleManager: 1.3.1
#~ * News: 2.10.3
#~ * nuSOAP: 1.0.1
#~ * Printing: 1.0.4
#~ * Search: 1.6.1
#~ * ThemeManager: 1.1.1
#~ * FrontEndUsers: 1.6.11
#~ * FEmessages: 1.1
#~ * SelfRegistration: 1.2.5
#~ * FormBuilder: 0.6
#~ * CGExtensions: 1.17.6
#~ * CustomContent: 1.5.3
#~ * FormBrowser: 0.3
#~ * TinyMCE: 2.6.1
#~ * CGSimpleSmarty: 1.4.3
#~ * SimplePortal: 1.0
#~ * Captcha: 0.4
#~ * Skeleton: 1.7
#~ * LS2CMSMS: 1.0
#~ Config Information:
#~ * php_memory_limit:
#~ * process_whole_template: false
#~ * max_upload_size: 2000000
#~ * default_upload_permission: 664
#~ * assume_mod_rewrite: false
#~ * page_extension:
#~ * internal_pretty_urls: false
#~ * use_hierarchy: true
#~ Php Information:
#~ * phpversion: 5.2.11
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * memory_limit: 128M
#~ * max_execution_time: 30
#~ * safe_mode: Off (Faux)
#~ * session_save_path: D:/wamp/tmp (0777)
#~ * session.use_cookies: On (Vrai)
#~ Server Information:
#~ * Server Api: apache2handler
#~ * Server Db Type: MySQL (mysqli)
#~ * Server Db Version: 5.1.36
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
[résolu] Création de module : pb récupérer variables dans DoAction() -
bess - 04/02/2010
un petit bout de code stp ?
[résolu] Création de module : pb récupérer variables dans DoAction() - ledut - 04/02/2010
Bonjour Bess,
Merci pour ton message.
J'ai finalement résolu mon problème.
Je ne sais pas si c'est la manière la plus propre mais elle a l'avantage de marcher...
En pratique, je dois me connecter à une autre base de donnée de celle de CMSMS et j'avais besoin de stocker les paramètres de connexion à cette autre base.
je dois exécuter dans le doAction() :
Code :
$link = mysql_connect($databaselocation, $databaseuser, $databasepass);
au départ, j'ai placé dans le fichier
monModule.module.php le code :
Code :
$databaselocation = 'localhost';
$databasename= 'cms';
$databaseuser = 'root';
$databasepass ='';
mais lorsque j'exécutais le code
Code :
$link = mysql_connect($databaselocation, $databaseuser, $databasepass);
celui-ci retournait
mysql_connect(, , );
c'est-à-dire que les valeurs étaient perdus.
Pour résoudre le problème, je les ai stocké dans une fonction "
get_autre_Settings()" dans le fichier
monModule.module.php:
Code :
function get_autre_Settings(){
$settings = array( 'ls_db_location' => 'localhost',
'autre_db_name' => 'cms',
'autre_db_user' => 'root',
'autre_db_pass' => '',
);
return($settings);
}
puis, dans le fichier
action.MonAction.php je récupère les valeurs par :
Code :
$autre_settings = get_autre_Settings();
$databaselocation = $autre_settings['autre_db_location'];
$databasename= $autre_settings['autre_db_name'];
$databaseuser = $autre_settings['autre_db_user'];
$databasepass = $autre_settings['autre_db_pass'];
$link = mysql_connect($databaselocation, $databaseuser, $databasepass);
Ce qui fonctionne ! (retourne
mysql_connect('localhost','root' ,'' );
Cependant, j'imagine qu'il aurait fallu que je passe par la programmation objet, avec laquelle je suis moins à l'aise, pour résoudre ce problème de manière plus adaptée . . .
Je place ce post comme "résolu", mais je reste ouvert à d'autres suggestions.
[résolu] Création de module : pb récupérer variables dans DoAction() -
bess - 04/02/2010
Je n'ai pas encore toutes les données mais apparemment ton soucis était que tu codais effectivement pas en objet. de ce fait tu perdais la visibilité de tes variables et donc leur contenu.
Citation :mais lorsque j'exécutais le code
ink = mysql_connect($databaselocation, $databaseuser, $databasepass);
Je ne sais pas ou tu excecute ce code mais si c'est dans une fonction de monModule.module.php il faut sans doute penser à rappeler les variables
Code :
GLOBAL $databaselocation;
GLOBAL $databaseuser;
GLOBAL $databasepass;
ink = mysql_connect($databaselocation, $databaseuser, $databasepass);
[résolu] Création de module : pb récupérer variables dans DoAction() -
bess - 04/02/2010
Citation :Je place ce post comme "résolu", mais je reste ouvert à d'autres suggestions.
pour faire ca il faut modifier le titre de ton premier message et y ajouter [Résolu]
[résolu] Création de module : pb récupérer variables dans DoAction() - ledut - 04/02/2010
bess a écrit :Je n'ai pas encore toutes les données mais apparemment ton soucis était que tu codais effectivement pas en objet. de ce fait tu perdais la visibilité de tes variables et donc leur contenu.
Citation :mais lorsque j'exécutais le code
ink = mysql_connect($databaselocation, $databaseuser, $databasepass);
Je ne sais pas ou tu excecute ce code mais si c'est dans une fonction de monModule.module.php il faut sans doute penser à rappeler les variables
Code :
GLOBAL $databaselocation;
GLOBAL $databaseuser;
GLOBAL $databasepass;
ink = mysql_connect($databaselocation, $databaseuser, $databasepass);
Oui, c'est bien dans une fonction de
monModule.module.php que j'éxécute ce code.
J'ai essayé avec
global mais ça ne marche pas, les variables disparaissent toujours avec cette methode, que je place le
global dans
monModule.module.php ou
action.MonAction.php . . .
[résolu] Création de module : pb récupérer variables dans DoAction() -
Jean le Chauve - 04/02/2010
Le plus sécuritaire et le plus facile était quand même de placer ta bd externe dans celle de cmsms ce qui ne devait pas te poser de problème vu que tu y a accès.
[résolu] Création de module : pb récupérer variables dans DoAction() - ledut - 04/02/2010
Jean le Chauve a écrit :Le plus sécuritaire et le plus facile était quand même de placer ta bd externe dans celle de cmsms ce qui ne devait pas te poser de problème vu que tu y a accès.
Certes,
Cependant mon problème concerne en fait une dizaine de variables, la plupart indépendantes de la base de donnée. J'ai mis uniquement ces 3 là par soucis de simplification.
D'ailleurs, pour l'instant, les 2 bases sont les mêmes, mais je souhaite dès la rédaction du code me garder la possibilité de les séparer ci-besoin.