Carnet Wiki

CheminRechercheFichiers

La version 1.8 introduit la notion de chemin de recherche pour les fichiers personalisables, c’est à dire les fichiers de squelette .html, les fichiers de formulaire, le fichier mes_fonctions.php3, les FichiersDeLangue et les fichiers de squelette .php appelés par INCLUDE (voir remarques plus bas).

SPIP cherche les fichiers d’abord dans $dossier_squelette, puis dans la racine et ensuite dans /squelettes/, dans /dist/ et finalement dans /formulaires/.

Le chemin de recherche des fichiers par défaut

Sauf pour le fichier mes_option.php3 puisque celui-ci sert à définir $dossier_squelette.

Les fichiers de /dist/ et /formulaires/ font partie de la distribution SPIP standard, il est fortement déconseillé de les modifier puisqu’ils seront écrasés à la mise à jour et vous perdriez votre travail.

De même si vous utilisez un squelette contribué par un développeur de la communauté (par exemple bioSPIP, Nono, SUD, EVA, Epona...) vous pouvez mettre celui ci dans /squelettes/ et faire vos modifs en sûreté dans $dossier_squelettes. Sur votre branche de développement perso, quoi.

Comment spécifier le $dossier_squelettes pour les php ?

Si les INCLURE des squelettes 1.7.2 ne fonctionnentpas bien sous la spip-1.8, peut être faut-il expliciter les chemins de recherche des fichiers php appelés par ces inclures.

Dans mes_fonctions.php3 :

<?php
    $GLOBALS['dossier_squelettes'] = 'nos_squelettes';
?>

Dans ecrire/mes_options.php3 :

<?php
  define ('_SPIP_PATH', 'nos_php/:./:squelettes/:dist/:formulaires/');
?>

N.B. Il faut la version $spip_version = 1.811 de ecrire/inc_version.php3

Remarque sur les fichiers d’appel

Concernant les .php il faut comprendre que certaines pages sont appelées directement par l’utilisateur. Quand on tape dans son navigateur l’adresse web http://monsite.org/article.php3&id_article=5, c’est APACHE qui chercher article.php et non pas SPIP. Dans ce cas le chemin de recherche de SPIP n’est pas utilisé. Si vous voulez surcharger article.php le plus simple est de le laisser à la racine (sinon voir la FaQ ou le lab).

breve-5.html qui ne fonctionne pas

À savoir : breve-5.html n’est pris en compte que si breve.html existe dans le même répertoire. [Note : ce comportement peut être changé en modifiant chercher_squelette ; voir le forum ou sur spip-contrib.]

Vérifie que le serveur web a bien les droits en lecture sur le fichier. SPIP teste maintenant avec is_readable(), alors qu’avant on testait file_exists()...

- Mise à jour :18 novembre 2007 à 17h31min