Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Alors, ce message est plus une clarification qu'une réelle question.
J'ai noté de nombreux messages (en utilisant la fonction "Recherche":D) qui demandaient tous la même chose, c'est donc bien signe qu'il y a incompréhension (et aussi qu'il y a pleins de boulets, ok...:rolleyes:)
Pour intégrer son forum dans un site web, si j'ai bien compris la FAQ, il faut faire un include dans le main.tpl du forum... Donc en réalité, pour intégrer son forum DANS son site web, on peut plus ou moins dire qu'en fait, il faut intégrer son site DANS le forum, ou en tout cas dans les fichiers du forum... C'est bien ça ?
Mais dans le cas d'un site assez "gros", avec beaucoup de pages, de contenus et une seule page (un lien dans le menu du site nommée "Forum") qui afficherait dans une DIV centrale l'ensemble du forum, cela signifie qu'il faut en gros "gérer" tout son site dans la page "main" du forum ?
Désolé de répéter encore et toujours la même question, mais sincèrement, la FAQ apporte une réponse bien dépouillée je trouve, et aurait pu être plus explicite. Apprendre que pour intégrer le forum dans un site, il faut, je cite, "ajouter son propre fichier header ou footer au forum", ça laisse pour le moins dubitatif, et la réaction normale pour un non-expert est de se dire "Mais... je ne veux pas changer le header du forum, je veux mettre le forum DANS mon site !":)
Bref, si un expert, justement, pouvait confirmer ou infirmer mes suppositions...;)
Hors ligne
Ha...
Dans ce cas, je ne comprend vraiment pas...:(
il est préférable qu'il soit au look & feel du site ce que te permet les gabarits index.tpl et main.tpl ainsi que les feuilles de styles. Ton site et ton forum sont affichés indépendamment.
Oui, l'harmonisation, c'est du pure bon sens...
J'ai fait mon site en CSS, valide et tout, je ne demande qu'à faire hériter le forum de ces styles !
Ce que je ne comprend pas, c'est déjà au niveau de l'intégration du code, avec les variables, les dossiers etc..., comment simplement faire fonctionner le forum DANS une partie du site.
Donc concrètement, j'ai mon fichier index.php (du SITE, pas du forum) du type
<?
=> Démarrage des sessions
=> Include des fonctions
=> Include de la bannière
=> Include du menu
=> Include du contenu principal de la page (c'est là que je veux afficher mon forum, donc : si $page='forum' => include de l'index du forum)
=> Include du pied de page.
?>
Actuellement c'est ce que j'ai, mais j'ai pleins de message d'erreur, notamment au niveau du "header" du forum (puisque des affichages ont déjà eu lieu avant...) et du common.php
Pourtant j'ai bien reglé les variable ROOT, le fichier config, etc...
Merci de votre aide... 
Dernière modification par Malta (25-09-2008 23:07:23)
Hors ligne
Bonsoir,
@Malta : globalement, tu AVAIS tout compris dans ton premier message, mais il semble dans ton deuxième message que tu sois parti sur la MAUVAISE voie..
Donc :
1. NON, on n'intègre pas le forum dans une div avec un include. Le forum possède son propre moteur de génération des pages complètes.
2. Ce que l'on fait, c'est inclure (dans main.tpl) le design général du site (entête, footer, etc..) pour que l'aspect du forum ressemble à l'aspect général des autres pages du site.
VISUELLEMENT, le forum sera bien DANS TON SITE (dans le design du site).
Mais ce n'est pas le cas au niveau du code php.
Hors ligne
Oki, donc je ne dois plus avoir de fichier index pour mon site.
L'index du forum sera mon seul index, sauf que le forum sera "rendu tout petit" avec mon site tout autour...
Je vais tester ça... Merci, c'est déjà un peu plus clair... Enfin je crois...:rolleyes:
Hors ligne
Bon bah dans un premier temps, ça avait l'air de marcher, mais après la mise en place, j'ai :
Fatal error: Call to a member function on a non-object in c:\program files\easyphp1-7\www\portail2\index.php on line 42
Suite à ma recherche sur le forum, il semble que cela soit lié au fait que j'ai déplacé le forum et que je n'ai pas changé le lien vers celui-ci...
Pourtant, même après modification du ROOT_PATH et des autres chemins que j'ai trouvé à modifier, l'erreur persiste...
Une suggestion ?:rolleyes:
Dernière modification par Malta (25-09-2008 23:59:27)
Hors ligne
Suite à ma recherche sur le forum, il semble que cela soit lié au fait que j'ai déplacé le forum et que je n'ai pas changé le lien vers celui-ci...
Pourtant, même après modification du ROOT_PATH et des autres chemins que j'ai trouvé à modifier, l'erreur persiste...Une suggestion ?:rolleyes:
A 90% de chance, c'est parce que tu as oublié de vider le contenu du répertoire cache...
A chaque modification "à la main" (dans le fichier config.php ou directement dans phpmyadmin), il faut vider le cache, sinon les modifs ne sont pas prises en compte.
Note "HS mais pas tant que ça" : je rappelle que l'on peut utiliser le moteur de FluxBB pour faire des pages EXTERNES au forum (qui seront au même "format" que le forum). Il suffit d'inclure common.php, puis header.php, de mettre n'importe quoi après, et de conclure par footer.php
Hors ligne
J'ai vider le cache pour vérifier (mais de toute manière, je fais toujours Ctrl + F5 pour afficher mes modifications, ce qui vide le cache, il me semble...) et le message d'erreur est toujours présent. A part ça, page blanche, forcément...
Voici la ligne où le code plante, ligne 42 de index.php :
// Print the categories and forums
$result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.forum_desc, f.redirect_url, f.moderators, f.num_topics, f.num_posts, f.last_post, f.last_post_id, f.last_poster FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY c.disp_position, c.id, f.disp_position', true) or error('Unable to fetch category/forum list', __FILE__, __LINE__, $db->error());
Est-ce parce qu'il n'arrive pas à se connecter à la base ??
Dernière modification par Malta (26-09-2008 17:51:24)
Hors ligne
Bonjour,
Fatal error: Call to a member function on a non-object in c:\program files\easyphp1-7\www\portail2\index.php on line 42
Il faut lire, décortiquer et essayer de comprendre le pourquoi des erreurs.
L'erreur dit qu'il est fait appel à une fonction membre d'un objet qui n'en est pas un.
La ligne 42 fait appel à la fonction $db->query(...) qui fait partie de la class DBlayer, laquelle class est définie dans le fichier punbb/include/dblayer/mysql.php qui est inclus par le fichier punbb/include/dablayer/common_db.php lui-même inclus par punbb/common_db.php.
Donc, la class BDlayer est-elle définie avant l'appel de la ligne 42 ?
Autrement dit, le fichier punbb/include/dblayer/mysql.php a-t-il été inclus AVANT l'appel de la ligne 42 ?
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
@Malta : je parlais du REPERTOIRE "cache" du forum, pas du cache du navigateur... 
Hors ligne
Le cache n'a rien changé.
Et vu que je n'ai rien changé au code php du forum, je vois pas comment j'aurais pu faire qu'une fonction appelée soit pas déclarée avant... Bref.
Par contre, j'ai trouvé le prob, sans toutefois savoir comment y remédier pour autant.
En fait, la première ligne de mon site, c'est l'inclusion des sessions.
Biensûr, c'est du PHP, donc, lors de l'adaptation de tout ça dans la page du template, j'ai couper/coller le code dans un fichier "mysession.php" et mettre celui-ci comme indiqué dans le répertoire ./include/user/, et remplacer du coup le code php par l'appel du fichier créer avec <pun_include "mysession.php"> dans le template.
Jusque là, c'est correcte, puisque c'est ce qui est préconisé en cas d'utilisation de script php.
Le prob, c'est que c'est ça qui fait planter le code, puisque si j'ôte <pun_include "mysession.php"> dans le template, la page s'affiche bien ! (excepté les infos de session mais bon, tout va bien...)
Vous avez une idée de la marche à suivre ???
Pour info, voici mon script php ajouté :
<?
session_start();
if (isset($_GET['page']) && $_GET['page']=='dcnx') {session_unset(); session_destroy();}
include ('./system/cnx.php'); // connexion à la BDD
include ('./system/fonctions.php'); // mes fonctions
include ('./system/admin.php'); // en cas d'opération effectuée par l'admin.
?>Dernière modification par Malta (27-09-2008 00:53:38)
Hors ligne
Oui, je le sais bien.
En fait, la première ligne de mon site, c'est l'inclusion des sessions.Mais cela signifie quoi, que la 1ère ligne envoyé au navigateur n'est pas dans le fichier main.tpl ? Erf, question idiote...
Je reformule ma question : où dois-je placer ma session, dans quelle page du forum ?
Merci 
Dernière modification par Malta (27-09-2008 11:12:09)
Hors ligne
C'est Ok, problème réglé, et tout marche bien !
J'ai mis mes sessions, connexion et tout tout en haut de index.php, et ça fonctionne.
Par contre, j'ai une interface graphique en découpe d'images, et maintenant, y'a deux cellules qui se sont décalées d'un ou deux millimètres, avec du coup un gros trait noir en plein milieu du visage d'une photo 
Allez, c'est r'parti pour les joies de la recherche d'une ligne parmi des centaines... 
En tout cas merci pour votre aide.
Hors ligne
Oui, en effet, autre prob directement lié à ça...
J'ai donc bien mon p'tit site et tout avec une gestion de page classique, via une varibale 'page'.
Dans la DIV "contenu principal", je la teste. Si elle est égale à "acc", j'affiche l'accueil, si elle est égale à "gal", j'affiche les galeries, si elle est égale à "lien", j'affiche les liens, etc...
J'ai ajouté un item dans le menu qui lui donne la valeur "forum" et dans ce cas, j'affiche le forum.
Problème : le forum s'affiche 1 seule fois. Si je clique ensuite sur n'importe quoi sur le forum, la main div n'affiche plus rien du tout.
Et c'est parfaitement normal, puisque tous les liens du forum ne repassent pas par la page index.php, genre viewtopic.php, login.php, etc..., qui sont des pages bien distinctes, et donc mon site n'a plus de variable "page" et il n'affiche rien...
J'ai essayer de mettre une variable de session $_SESSION['forum'] à 0 par défaut, à l'arrivée sur le site, et lorsque l'utilisateur clique sur le menu "- Forum", elle se met à 1 et continuera à afficher le forum tant qu'elle est à 1 (je la remet à 0 suite au clic sur n'importe quel AUTRE item du menu).
Cela ne fonctionne pas, car j'ai mon script de test de la variable de session sur l'index, et comme on ne passe pas par l'index, il est ignoré.
(J'ai essayer sur le header, même résultat, avec en plus une fatal error)
@oldie-2 : J'ai essayé de mettre mon appel de session, connexion et gestion de l'appel du forum comme tu l'as conseillé, sur le header à l'endroit indiqué, mais il me ressort la Fatal error de l'index...
Fatal error: Call to a member function on a non-object in c:\program files\easyphp1-7\www\new\index.php on line 39Pour info, la ligne 39 :
if ($pun_user['g_read_board'] == '0')
message($lang_common['No view']);Voilou, en espérant que ça s'arrange, je continue de faire des tests
Hors ligne
@oldie-2 : J'ai suivi ton conseil. Lorsque je ne mets QUE le session_start dans le header, la main div reste vide. Le forum ne s'affiche pas...:huh:
Là où cela fonctionne le mieux, c'est lorsque je laisse les 4/5 lignes dans l'index, mais dans ce cas, les instructions ne sont pas exécutées lorsque j'appelle une autre page du forum, genre login.php... 
Pour la ligne 39, autant pour moi, j'ai copier/coller trop vite :
// Print the categories and forums
$result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.forum_desc, f.redirect_url, f.moderators, f.num_topics, f.num_posts, f.last_post, f.last_post_id, f.last_poster FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY c.disp_position, c.id, f.disp_position', true) or error('Unable to fetch category/forum list', __FILE__, __LINE__, $db->error());Même genre de prob que lors de la dernière fatal error sur un "$db->query('SELECT..." je suppose... ?
Dernière modification par Malta (27-09-2008 13:28:18)
Hors ligne
Après une aprem de recherche, la solution reste hors de ma portée.
Le problème reste : Les différentes pages de mon site sont affichées en fonction d'une variable "page" testée dans la DIV "contenu" du site. Pour afficher le forum, aucun problème puisque ==> si 'page' = "forum" alors afficher "./forum/index.php", en gros...
Mais tous les liens interne aux forums, vers les topics, les users, etc... n'ont pas de variables 'page' et du coup mon site n'affiche rien dans la DIV prinicpale.
J'ai essayer plusieurs petites choses, mais sans succès...
Dernière modification par Malta (27-09-2008 18:11:21)
Hors ligne
si 'page' = "forum" alors afficher "./forum/index.php"
Cela me laisse penser que tu n'as pas pris en compte (ou pas complètement) ma réponse précédente :
NON, on n'intègre pas le forum dans une div
FluxBB (ou punbb) n'est pas fait pour fonctionner comme cela, point barre. Tu peux conserver ton système de page pour les pages externes au forum, mais dans le forum il faut laisser FluxBB construire ses pages lui-même.
Et rajouter ce qu'il faut "autour" (entête, footer) dans main.tpl
Hors ligne
Ok, j'explique mieux :
Mon site est structurer un peu comme tous les autres :
bannière, boîte de connexion, menu sur le côté, contenu central et pied de page.
J'ai donc déjà mon propre système de connexion au site, des comptes, édition des profils, etc... J'ai développé tout ça bien avant de me dire "Tiens, je vais intégrer un forum punBB à mon site"...
Tous les liens de mon forum sont de ce type là :
* Tout en haut :
<a href='./index.php?page=mem'>Membres</a>
<a href='./index.php?page=rec'>Recherche</a>
* Dans la boîte de connexion, quand vous êtes connectés :
<a href='./index.php?page=pro'>[le pseudo du user]</a> ('pro' pour profil)
<a href='./index.php?page=grp'>Groupes</a>
* Dans le menu :
<a href='./index.php?page=pre'>Présentation</a>
<a href='./index.php?page=new'>News</a>
<a href='./index.php?page=art'>Articles</a>
<a href='./index.php?page=gal'>Galerie</a>
<a href='./index.php?page=vid'>Vidéos</a>
* Tout en bas de la page
<a href='./index.php?page=con'>Contact</a>
<a href='./index.php?page=adm'>Administration</a>
Bref, voilà le genre de liens...
Et un peu partout sur le site, dès qu'il y a un lien à faire, je renvoie toujours sur l'index, avec la variable 'page' qui prend une nouvelle valeur.
Donc tout fonctionne par l'index.
Un peu plus loin dans le code, c'est dans la DIV principale, là où j'affiche le contenu principal de ma page, que je vais avoir un fichier qui s'occupe de switcher :
if ($_GET['page'] == 'mem') include ("./user/membres.php");
else if ($_GET['page'] == 'new') include ("./user/news.php");
else if ($_GET['page'] == 'con') include ("./user/contact.php");
etc...
Là, j'ai donc réussi à faire marcher le forum, il s'affiche bien dans la DIV, j'ai simplement rajouter un lien sur le site : <a href='./index.php?page=for'>Forum</a>
et dans la DIV prinicpale :
else if ($_GET['page'] == 'for') include ("./user/forum.php"); et dans le fichier forum.php se trouve le contenu du main.tpl
Et ça marche très bien !
Le soucis, c'est que dès que je clique quelque part, par exemple sur "Login", l'url du lien est du type "http://mondomaine.com/login.php", c'est une page bien différente, et donc pas de variable 'page'... Il m'affiche donc la div principale VIDE.
Edit :
@Mpok : Oui, j'ai bien compris ton conseil et je t'en remercie encore.
Depuis j'ai réussi à afficher tout le forum, mais uniquement l'index. Si j'arrive à voir l'index, avec tout en ordre, tout bien à sa place, je devrais arriver à voir tout le reste, non ?
Dernière modification par Malta (27-09-2008 19:22:31)
Hors ligne
avec tout en ordre, tout bien à sa place
Je veux bien te croire, mais j'ai quand même quelques doutes..
(ce n'est pas parce que visuellement ça semble bon que ça l'est réellement...)
Si tu pouvais mettre à jour ton adresse forum (ou donner une adresse de test), ça permettrait de se rendre mieux compte de ce que tu veux faire (et de vérifier le "tout est en ordre").
Pour le reste de l'explication, j'avais bien compris le coup du "index.php?page=xxx". Et je précisais d'ailleurs "Tu peux conserver ton système de page pour les pages externes".
Mais visiblement, le main.tpl n'est pas correct en l'état...
Tip : il ne doit pas y avoir de test sur "page=" dans les fichiers inclus dans main.tpl.
Pour t'aider plus précisemment, il nous faut :
- une adresse de test avec ce qui marche (et ce qui ne marche pas) actuellement.
- le contenu du main.tpl + éventuellement les fichiers php inclus (faire une archive avec ces quelques fichiers et donner une adresse de téléchargement).
Hors ligne
Bon, j'ai tout mis en ligne.
Pour être sûr de bien voir le site fonctionner sans interférence avec le forum, je vous ai mis le site autonome sur un répertoire, et le site + forum sur un autre.
- Site sans le forum
- Site avec forum (comprend pô, en local tout marche bien, et là pleins de prob de "header"...:mad: Dsl, je suis en train de regler ces petits prob de dernières minutes...)
Je me rend compte après coup que tout le déroulement de l'affichage des pages se retrouve dans le main.tpl, donc le test sur la variable 'page' aussi...:rolleyes:
M'enfin bon, je vous laisse déjà me donner votre avis (et éventuellement une solution
) sur les choses en l'état.
Voici une archive qui contient :
- le main.tpl
- tous les fichiers appelés dans le main.tpl
Remarque :
- Dans un soucis de confidentialité, j'ai un peu simplifié les tests d'accès à l'administration tout en veillant à ce que tout fonctionne encore...
Dernière modification par Malta (28-09-2008 23:07:48)
Hors ligne
J'ai l'impression, à lire tous ces messages que je ne comprends pas toujours, que vous avez choisi une voie compliquée pour faire ce qui est simple.
J'ai donné à mon forum le même aspect que mon site en appliquant quelques astuces simples et abordable à un nul en programmation, et ça marche.
« Au bout de sept cents ans, le laurier reverdira. »
Attribué à Guilhem Bélibaste en 1209
Hors ligne