Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Jelix et Vbulletin...

Posted by Arnall on 08/05/2008 21:04

Bonjour à tous,

je tente d'intégrer un haut de page générer par Jelix dans un forum Vbulletin. Pour cela Vbulletin a prévu d'évaluer du code PHP à divers endroit de son code pour que l'on puisse rajouter du code PHP tiers et donc personnaliser son forum Vbulletin.

La méthode est donnée ici : http://www.vbulletin.com/docs/html/main/(..)

J'ai donc inclus ce code dans le gestionnaire de plugin de Vbulletin :

 ob_start();
 $_POST['module']='forum';
 $_POST['action']='default:index';
 chdir('/path/www/');
 require_once("index.php"); // il s'agit de l'index de Jelix dans le rep /www
 chdir("/path/www/forumVbulletin/");
 $includedphp = ob_get_contents();
 ob_end_clean();

Mon controleur utilise une réponse Texte dont j'ai surchargé l'output pour ne renvoyer aucune entete HTTP ( vu que les entêtes sont déjà gérées par Vbulletin ). La variable $includedphp est ensuite incluse dans un template de Vbulletin et hop mon haut de page apparait avec les modules qui vont bien, et mon forum Vbulletin à la suite. Malheureusement pour une raison que j'ignore lorsque je tente de poster un message je me retrouve avec une page me listant une série de notice/erreurs PHP ( se rapportant à Vbulletin ) se terminant par celle ci :

 [error 0] Jelix fatal error : Unknow class vB_Mail 	/home/ha/v2.lephoceen.fr/lib/jelix/init.php 	123

Il s'agit de l'autoload de Jelix, je pourrais contourner le problème en rajoutant une clause dans l'autoload de Jelix mais je ne comprends pas comment Jelix se retrouve a vouloir charger une classe du forum Vbulletin, et seulement dans le cas ou j'essaye de poster un message... ( si je crée un nouvelle discussion tout se passe bien ...)

Je suis un peu dépassé par la chose alors si quelqu'un à une idée de piste ou je devrais regarder...je l'en remercie.

  [Opened] Re: Jelix et Vbulletin...

Reply #1 Posted by Arnall on 08/06/2008 00:22

Je me réponds à moi même :)

autoload étant une fonction primaire de PHP elle est appelé par d'autres fonctions PHP comme class_exists. Or class_exists est utilisé par Vbulletin pour charger la classe vB_Mail, du coup class_exists déclenche autoload et comme __autoload a été écrite dans Jelix et que Jelix ne sait pas quoi faire de vB_Mail cela génère une erreur.

J'ai donc juste rajouté

 if ($class =='vB_Mail'){return;}

dans l'__autoload de Jelix et tout roule.

Si vous voyez une solution plus propre qui m'évite de toucher à un fichier de Jelix je suis preneur. Pour l'heure je vais me coucher !

  [Opened] Re: Jelix et Vbulletin...

Reply #2 Posted by laurentj on 08/11/2008 10:36

Salut,

Si vous voyez une solution plus propre qui m'évite de toucher à un fichier de Jelix je suis preneur

faire un include systématique de la classe en question ? ce serait plus propre que de hacker jelix ;-)

 
Page
  1. Re: Jelix et Vbulletin...