Matthieu Marcillaud a écrit:
Merci pour cette belle réponse. Encore quelques doutes...
Anne Possoz a écrit :
> Voici donc des questions précises:
> - SPIP_PATH est une constante qui permet de définir une série de
> répertoires. Mais quels types de répertoires? Ceux des squelettes?
> Ceux des .css? Ceux de scripts persos?
> Quelle est sa valeur par défaut? Dans quel contexte cette variable
> est-elle utilisée?SPIP_PATH définit l'ensemble des lieux (répertoires) où SPIP va pouvoir
chercher des fichiers. Lorsque SPIP cherche un fichier (avec la fonction
prévue pour : find_in_path("fichier.ext") = chemin("fichier.ext") ou la
balise pour les squelettes #CHEMIN{fichier.ext} ), il va chercher dans
l'ordre des dossiers contenus dans SPIP_PATH.
$GLOBALS['dossier_squelettes'] est ajouté à cette constante par défaut.
Ajouté au début ou à la fin? J'interprète "à la fin".
Donc #CHEMIN se réfère à SPIP_PATH + $GLOBALS['dossier_squelettes'],
dans cet ordre. Ca c'est clair.
Ainsi, l'ordre de lecture, de mémoire est : $dossier_squelettes (rien,
un ou plusieurs selon la globale), squelettes (si ce dossier existe),
dist, prive, ecrire, racine
Et ce que j'aurais ajouté dans SPIP_PATH n'est pas pris en compte?
Dans quelle variable sont définis la suite "dist, prive, ecrire, racine"?
Ca, c'est pas encore clair.
Je peux définir SPIP_PATH et pas $GLOBALS['dossier_squelettes']?
Ou de toute façon $GLOBALS['dossier_squelettes'] contiendra
"dist, prive, ecrire, racine"?
Ou si j'ai des squelettes (.html et .css) en dehors du standard spip
je dois absolument ajouter les répertoires dans $GLOBALS['dossier_squelettes']
.
Ou je dois mettre les répertoires des .html dans $GLOBALS['dossier_squelettes'
]
mais je peux mettre les répertoires des css dans SPIP_PATH car
ils seront appelés par #CHEMIN?
[On le voit, je n'ai pas idée de l'usine et ne souhaite pas lire
le code mais l'utiliser au mieux.]
> - $GLOBALS['dossier_squelettes'] est-il uniquement pour les
> squelettes ou aussi pour les .css? Qui prime si je donne une liste?
> Le premier? Le dernier?Cette globale définit les squelettes, mais chaque dossier squelettes
peut se composer de différents sous-répertoires, dont, imaginons, un
répertoire 'css' qu'il sera possible d'appeler par #CHEMIN{css/fichier.css}
On sous-entends qu'un .css est comme un .html de squelette parce qu'ils
interviennent dans le même contexte de mise en page. C'est moi qui
fait une confusion en pensant "squelette = .html" et "css = .css"?
Je ne suis pas certaine car
- les .css sont appelés explicitement dans la partie <head>...</head>
du html (par la balise CHEMIN qui scanne SPIP_PATH +
$GLOBALS['dossier_squelettes']
- tandis que les .html sont appelés par l'usine spip qui scanne, non
pas SPIP_PATH mais $GLOBALS['dossier_squelettes'] (c'est mon interprétation
mais je n'ai pas lu cette information quelque part).
Sont prioritaires les dossiers, de gauche à droite.
$GLOBALS['dossier_squelettes'] = 'premier:second:troisieme';
J'ai bien compris. Il en est de même pour SPIP_PATH, selon supra.
En fait, je n'ai toujours pas compris la différence entre
SPIP_PATH et $GLOBALS['dossier_squelettes']. Tous deux sont des
paths qui contiennent des répertoires.
Pourquoi ne s'appelent-ils pas _PATH tous les deux? Pourquoi en
avoir 2? Pourquoi l'un une constante et l'autre une variable?
> - #CHEMIN est une balise mais quelle variable ou constante
> est utilisée pour calculer le résultat? SPIP_PATH?
> $GLOBALS['dossier_squelettes']?J'ai répondu plus haut.
>
> J'aurais tendance à penser:
> - que SPIP_PATH et $GLOBALS['dossier_squelettes'] sont redondants
> (mais je dois certainement me tromper)
Donc, en partie oui, sauf que SPIP_PATH inclu directement les dossiers
nécessaires à SPIP (+squelettes si présent), alors que
$GLOBALS['dossier_squelettes'] ajoute uniquement des répertoires pour
une utilisation précise (SPIP n'en a pas besoin pour fonctionner)> - qu'il manque une variable $GLOBALS['dossier_css'] (on devrait d'ailleurs
> mettre des "s" à ces dossiers_xxx)
Sauf que ces dossiers sont souvent uniques...
Pour le $GLOBALS['dossier_css'], ça se rapprocherait d'une idée de
thèmes graphiques pour des squelettes donnés. Quelques idées ont parfois
été abordées, mais rien de concret n'est encore sorti.
Merci pour ces bons éclaircissements. Pour vérifier ce que j'ai compris,
j'explicite.
Solution 1