I. Alors, j’ai fait comme tu m’as dit :
- J’ai créé le fichier menu.html avec simplement mes boucles dedans.
- J’ai ajouté le code suivant dans le template de PunBB :
<?php
include("/spip.php?page=menu");
?>
- Résultat : le code PHP n’a pas été interprété par PunBB (quand j’affiche le code source de la page web, je peux lire mon code php, preuve qu’il n’a pas été exécuté) : il ne se passe rien sur la page web de punbb, mes boucles sont absentes.
II. Du coup, je me suis souvenu d’un truc dans la doc de PunBB (http://docs.punbb.fr/faq.html#faq3_4 ) qui dit ceci :
- PunBB dispose d'une variable de remplacement spéciale appelée pun_include pour inclure des scripts dans les templates. Par exemple, si vous vouliez inclure un script appelé banner.php en bas de chacunes de vos pages de forums vous devriez placer votre script dans le répertoire include/user/ et ajouter ce qui suit à votre fichier template :
-
<pun_include "banner.php">
- Le script banner.php doit être placé dans le répertoire utilisateur d'inclusion mentionné ci-dessus. PunBB exécutera le script et la variable pun_include sera remplacée par ce que le script produira en sortie. Veuillez noter que tous les scripts inclus ont accès aux variables de PunBB, ainsi si vous -par exemple- vouliez accéder à la base de données, vous pourriez utiliser l'objet $db juste comme le fait PunBB. Le remplacement de la variable pun_include est la dernière chose que PunBB fait quand il produit une page, ainsi vous ne devez pas vous inquiéter de ne pas employer les noms variables que PunBB utilise.
III. Alors, à défaut de connaissances, je me suis fié à mon intuition...
- J’ai créé un fichier menu.php que j’ai placé, comme le dit la doc de punBB, dans /punbb/include/user et j’ai ajouté, dans mon fichier template de punbb la ligne : <pun_include « menu.php »>
- Dans le fichier menu.php, j’ai simplement mis le code suivant :
<?php
include("/spip.php?page=menu");
?>
- Cette fois, le code PHP a été interprété au sein de PunBB – on progresse !! – mais l’inclusion de mes boucles n’a pas réussi. J’ai obtenu le message d’erreur suivant en lieu et place de mes boucles :
Warning: main(/spip.php?page=menu) [function.main]: failed to open stream: No such file or directory in /home5/i/mon-site/www/forums/include/user/menu.php on line 2
Warning: main() [function.include]: Failed opening ‹ /spip.php?page=menu › for inclusion (include_path=‹ .:/usr/local/php4/pear ›) in /home5/i/mon-site/www/forums/include/user/menu.php on line 2
C’est ici que je bloque. Qu’est-ce que cela signifie ? Qu’est-ce qui ne va pas ? Il ne doit plus manquer grand chose pour que ça marche. Je suis sûr qu’on n’est plus très loin. S’il y a parmi vous un connaisseur de PHP à qui tout cela donne des idées, je le remercie d’avance vivement.
Stéphane.
Le 31/07/07, Dominique < dwojylac@free.fr> a écrit :
Tu ne pourras pas mettre des boucles spip dans un environnement non spip
(pas supervisé par spip). Mais par contre tu peux faire :
A. un fichier squelette « menu.html » avec dedans les boucles pour
afficher les menus de ton site spip. Tu le mets dans ton dossier
« squelettes » de spip.
B. depuis punBB, faire un include php du genre
include ‹ spip.php?page=menu ›;
pour que le squelette menu.html puisse être parsé par spip.
Après à voir avec les questions de chemin dans ton include. Il vaut
mieux que tu définisses un delai par #CACHE{xxx} dans ton squelette menu
pour bénéficer aussi du cache (si tu n’en met pas il me semble que par
défaut c’est 1h)
Pas testé il me semble que cela peut marcher.
–
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu’on a rien à dire
on cite généralement un proverbe chinois.
Stéphane VIAL <vial.stephane@gmail.com> wrote:
Voilà pourquoi j’aimerais simplement pouvoir inclure, dans mon template
PunBB (qui fonctionne en PHP), plusieurs boucles de SPIP me permettant
d’afficher l’arborescence (i.e. le menu principal) de mon site SPIP sur les
pages de mon forum PunBB.
Y a-t-il une méthode ou un moyen pour arriver à ce résultat ? Je suis sûr
que oui, mais n’étant pas programmeur, je ne vois pas. Je ne connais que
HTML et CSS !