Bonjour,
Dans la documentation de SPIP il est conseillé de séparer ses propres pages web et php des pages spip pour faciliter les mises à jour éventuelles.
J'ai essayé avec une hiérarchie :
---+- spip -----+- article.html
| +- article.php3
| +- backend.html
| +- backend.php3
| +- ...
|
+- annonces -+- index.php3
| +- index.html
| +- ...
et en mettant dans le fichier "annonces/index.php3"
------------
<?
$fond = "index";
$delais = 2 * 3600;
include ("../spip/inc-public.php3");
?>
------------
La distribution spip est dans le dossier "spip" et mes pages sont dans le dossier "annonces".
Quand j'essaie d'accéder à la page "annonces/index.php3" j'ai droit à plein d'erreurs PHP pour cause de fichiers non trouvés. Je n'ai pas ces messages quand mes fichiers sont dans le dossier spip
Existe-t-il une variable du genre $spip_racine qui permet d'indiquer où se trouve le répertoire spip par rapport au repertoire courant ?
Joël Brogniart
Salut Joël,
Tout d'abord, nostra culpa, si c'est dans la doc SPIP, c'est qu'il
y a une erreur dans la doc SPIP ;)) Est-ce que tu pourrais préciser
dans quel article, pour qu'on puisse corriger plus facilement ?
Les fichiers php d'appel de squelettes doivent être impérativement
placés dans le répertoire de base de SPIP. Sinon ça ne marche pas,
car PHP est un peu idiot au niveau des règles d'inclusion. En
effet si un script A appelle (inclut) un script B placé dans un
autre répertoire, et que B appelle lui-même un script C, le
script C sera cherché dans le répertoire de A et non dans le
répertoire de B (ce qui est assez peu pratique pour écrire des
librairies....).
Par contre, pour effectivement séparer tes squelettes des
squelettes par défaut, tu peux :
- soit mettre les fichiers .html dans un sous-répertoire.
Attention, car alors le chemin d'inclusion des images
ne sera pas le sous-répertoire des fichiers .html mais le
répertoire SPIP de base (celui où sont les fichiers php).
- soit tout bêtement ne pas utiliser les mêmes noms :
une.html au lieu de sommaire.html, par exemple.
D'autre part, il me semble peu recommandé d'utiliser
un "index.html" comme squelette, car alors si tu appelles
le répertoire directement, le serveur Web risque d'être
configuré pour renvoyer index.html en priorité par rapport
à index.php3 : ça affichera le squelette "nu" au lieu de
la page générée.
Amicalement
Antoine.
Bonjour,
car PHP est un peu idiot au niveau des règles d'inclusion. En effet
si un script A appelle (inclut) un script B placé dans un autre
répertoire, et que B appelle lui-même un script C, le script C sera
cherché dans le répertoire de A et non dans le répertoire de B (ce
qui est assez peu pratique pour écrire des librairies....).
Ce sera corrigé dans PHP 4.0.7 ou 4.1, je ne sais plus. C sera cherché
dans le rep de B, puis dans celui de A s'il n'y est pas.
Mais en général, on préfère se baser sur le include_path pour gérer
les includes. Ainsi, si on a le répertoire R1 dans l'include_path, tout
fichier '.../R1/R2/fichier.php' sera très simplement inclu avec
include 'R2/fichier.php';
et cela quel que soit l'emplacement du script faisant l'inclusion.
-Nicolas
--
Nicolas "Brush" HOIZEY
Free PHP projects http://www.phpheaven.net
Veille tous azimuts http://www.gasteroprod.com
(re)Bonjour,
en général, on préfère se baser sur le include_path
Quand cela est possible, bien évidemment ... 
-Nicolas
--
Nicolas "Brush" HOIZEY
Free PHP projects http://www.phpheaven.net
Veille tous azimuts http://www.gasteroprod.com