Recommandations sur Squelettes et Boucles

Débuter est synonyme d’erreurs humaines ; des inattentions simplistes pour un œil expérimenté prennent un temps non négligeable au débutant, et -en plus- il a souvent du mal à se faire comprendre, Se faire aider pour debugger un squelette.

D’où quelques recommandations rassemblées ici, à la force de l’expérience, et de la pratique...

 
 
 
 
 
 
 
 
 
 
 
 
 
 

Trouver ces remarques et recommandations n’est pas toujours facile dans la documentation... ce qui explique la compilation ici-présentée !

 Commentez vos squelettes

Comme pour tout langage, on commencera par rappeler l’importance des Commentaires, surtout pour vos astuces : dans les squelettes, qui sont des fichiers HTML, ceux-ci peuvent s’écrire :
- soit en HTML : classiquement
<!--   Commentaire HTML -->
et vous retrouverez ce commentaire dans le source de votre page, si vous le cherchez dans le navigateur..
- soit dans le langage de SPIP : comme partie optionnelle d’une balise spécifique ne retournant rien... :

[  (#REM)  cette balise ne rend rien, donc....
       ce contenu n'est pas affiché, ni transmis !
  ]


mais attention, si vous vouliez utiliser cette astuce pour ’commenter une boucle’, sachez bien que la Boucle sera quand même exécutée lors de la compilation du squelette !

 Limitations des Boucles

La traduction des boucles SPIP au sein du compilateur introduit certaines contraintes :

  • d’abord, on n’est pas sensé écrire une boucle SPIP dans les parties optionnelles d’une balise [1] : la solution est simplement de reporter votre boucle dans une noisette, que vous pourrez tout-à-fait appeler par un <INCLURE{fond=noisette,env} /> (voyez INCLURE) !
  • pour commenter une #BALISE SPIP, la solution est plus souvent de simplement remplacer le "#" initial par un "(#REM)".
  • pour commenter une boucle SPIP, vous trouverez sans doute plus facile de simplement modifier le nom de tag de la BOUCLE_ (attention : en début et en fin de boucle ! ), puisqu’il s’agit de tags du SGML qui ne sont donc pas interprétés si non reconnus !
    Inclure cette boucle dans un (#REM) n’est pas accepté par le compilateur SPIP ; la solution, remplacer par l’INCLURE d’une noisette contenant la boucle.

Attention lors de ces manipulations, même avec un éditeur à coloration syntaxique, il est vite fait de laisser une erreur, en particulier d’appariement [2]. De là à voir changer tout le fonctionnement du squelette, en particulier dans les styles CSS, c’est vite fait !!

 Noms de fichiers squelettes

Nous avons tous fait cette Erreur.... une fois ! pas deux !!

  1. nous avons tous laissé une fois une erreur de casse : rappelons que la casse d’un texte concerne le caractère Majuscule ou minuscule des lettres utilisées pour nommer un fichier..... [3]
  2. le Dossier squelette doit bien être écrit en minuscules, et au pluriel : squelettes
  3. la cascade des dossiers surchargés induit parfois une erreur du développeur sur l’emplacement de noisette à utiliser :vérifiez systématiquement vos squelettes avec SkelEditor.
  4. le serveur Web n’est pas toujours capable d’interpréter des caractères spéciaux dans les noms de fichiers, donc évitez tout caractère "exotique", français, accentué ou autre ; en particulier, interdiction de laisser un espace dans un nom de fichier...
  5. quand SPIP recherche un fichier pour INCLURE dans son dossier ./squelettes, il suppose automatiquement que ce fichier possède l’extension .html (en minuscules).
    Celle-ci marque un fichier traité par SPIP, même s’il s’agit d’une feuille de style : SPIP n’interprète pas les extensions de fichiers a la manière de Windows...

 Traitements spécifiques en PHP

Justement, ce "traitement" par SPIP [4] consiste à une génération de fichiers php (à partir des squelettes HTML) qui seront ensuite évalués pour chaque page en fonction des paramètres d’Environnement d’un squelette.
Vous pourriez en déduire la possibilité (réelle, et théoriquement valide) pour Faire co-exister HTML et PHP dans les squelettes, de rajouter des instruction php [5] au sein des squelettes ; mais cela est à éviter !!


Merci de nous signaler les coquilles ou erreurs qui figureraient dans cette page.

[1La façon dont vous en serez averti par le compilateur est "inattendue" : vous verrez s’afficher un couple de parenthèses et le crochet fermant "quelque part" dans votre page !

[2L’appariement des séparateurs vérifie la correspondance entre parenthèses de début et de fin, de fermeture des chaines, séparateurs ou accolades de début et de fin des paramètres de #BALISE , le "crochet" des tags de boucles, les commentaires....

[3Et que les serveurs Linux ne sont pas aussi inconséquents que Microsoft, capable de confondre les fichiers Majuscule et majuscule, s’il n’existe que l’un des deux !

[4C’est le calcul des squelettes par le compilateur SPIP

[5Les instructions php doivent toujours etre enserrées entre les tags spécifiques <?php et ?> délimiteurs de code.


Liens visibles seulement pour les inscrits.

Article publié le 13 février 2012, et actualisé en juillet 2016 .

Répondre à cet article