[spip-dev] #CHEMIN, SPIP_PATH et dossier_squelettes

Bonjour,

Après avoir quitté la liste pendant des mois, je reviens pour
des éclaircissements. Vu l'évolution, je voudrais revoir mes
squelettes pour les moderniser.

Très bien la structure plus propres des répertoires et fichiers
avec spip 1.9.

J'ai par contre un problème de compréhension de différentes
balise/variable/constante #CHEMIN, SPIP_PATH et dossier_squelettes

Comment ça marche? Je cherche dans la doc mais m'y perds.

Si cela peut aider à la compréhension, je vais dire que j'ai:
- plusieurs répertoires squelettes pour chaque site spip
- plusieurs répertoires css pour chaque site spip
- un fichier mes_options.php que je veux configurer pour
   tenir compte de ces répertoires

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?
- $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?
- #CHEMIN est une balise mais quelle variable ou constante
   est utilisée pour calculer le résultat? SPIP_PATH?
   $GLOBALS['dossier_squelettes']?

J'aurais tendance à penser:
- que SPIP_PATH et $GLOBALS['dossier_squelettes'] sont redondants
   (mais je dois certainement me tromper)
- qu'il manque une variable $GLOBALS['dossier_css'] (on devrait d'ailleurs
   mettre des "s" à ces dossiers_xxx)
- qu'il manque un exemple de fichier mes_options.php.exemple dans
   la distribution de spip.

Merci de m'éclairer. On pourrait sans doute alors faire une page
propre qui rassemble tout cela.

          Anne

Celui-ci peut t'éclairer déjà pas mal:

http://www.spip.net/fr_article3514.html

Committo,Ergo:Sum

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.

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

- $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}

Sont prioritaires les dossiers, de gauche à droite. $GLOBALS['dossier_squelettes'] = 'premier:second:troisieme';

Il est possible de tous les ranger dans un répertoire (ici squelettes/) :
$GLOBALS['dossier_squelettes'] = 'squelettes/premier:squelettes/second:squelettes/troisieme';

- #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.

Spipement,