Mini-module : Problème lors de l'appel de fonction [Réglé]
YanX Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre YanX
- Inscrit le : 14/03/2011
- Site internet
Je suis en train de développer un module pour PhpBoost et pour ce module, j'ai également développer un mini-module. Le mini-module s'affiche bien, pas de problème jusque là.
Le problème est lorsque j'appelle une fonction externe que j'ai créée ailleurs.
Voici mon code PHP :
/course/kernel/info_user.class.php
Code PHP :
<?php class Info_user { function Info_user() { global $User; $this->user_id=$User->Get_attribute('user_id'); } function get_user_fname($user_id_given=0) { ($user_id_given==0)?$user_id=$this->user_id:$user_id=$user_id_given; global $Sql; $user_fname = $Sql->query("SELECT f_prenom FROM ".PREFIX."member_extend WHERE user_id=".$user_id,__LINE__,__FILE__); if(empty($user_fname)) return "##Error : bad user id##"; else return $user_fname; } }
/course/course_mini.php
Code PHP :
<?php function course_mini($position, $block) { global $LANG, $Session, $User; load_module_lang('course'); $tpl = new Template('course/course_mini.tpl'); import('core/menu_service'); MenuService::assign_positions_conditions($tpl, $block); //include_once('/course/kernel/info_user.class.php'); //Info_user::get_user_fname(2); $tpl->assign_vars(array( 'TITLE_MODULE' => $LANG['title_mini_module'], 'IS_ADMINISTRATOR' => (($User->check_level(2))?true:false), 'MY_PROGRESSION' => $LANG['my_progression'], )); return $tpl->parse(TEMPLATE_STRING_MODE); } ?>
Donc dans course_mini.php, j'ai mis deux ligne en commentaires. En fait, quand je les commente, tout se passe bien, mon mini-module s'affiche, et une fois que je les décommente, le site tout entier ne s'affiche plus. Une belle page blanche et rien de plus. J'ai constaté aussi que quand je faisais juste un require_once à la place de l'include_once, j'avais aussi directement cette page blanche. Avec un include_once, ca passe, mais une fois que j'exécute ma fonction, page blanche.
Que se passe-t-il ?

Merci d'avance pour vos réponse
Yannick
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
La méthode get_user_fname n'est pas statique. Ensuite je te conseil de passer ton code à PHP 5 (de toute façon avec la méthode statique tu n'as pas le choix.
Je te propose :
Code PHP :
<?php class Info_user { private static $user_id; public function __static() { global $User; self::$user_id = $User->Get_attribute('user_id'); } public static function get_user_fname($user_id_given = null) { global $Sql; $user_id = $user_id_given == null ? self::$user_id : $user_id_given; $user_fname = $Sql->query("SELECT f_prenom FROM '".PREFIX."'member_extend WHERE user_id = '" . $user_id . "'",__LINE__,__FILE__); if(empty($user_fname)) throw new Exception("##Error : bad user id##"); else return $user_fname; } } ?>
Correction des problèmes, passage de ta fonction en statique.
Édité par ReidLos Le 20/03/2011 à 19h01
YanX Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre YanX
- Inscrit le : 14/03/2011
- Site internet
Mais ceci dit, même après correction de la classe, j'ai toujours la page blanche une fois que je fait le require_once. Si je fais un include_once à la place, c'est la page blanche dès que j'appelle la fonction statique

Merci pour la réponse aussi
Yannick
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Code PHP :
require_once(PATH_TO_ROOT .'/course/kernel/info_user.class.php');
YanX Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre YanX
- Inscrit le : 14/03/2011
- Site internet

Un grand merci, ça fonctionne parfaitement bien à présent

Bonne soirée
Yannick
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie