Au secours, je butte... un os dans le squelette ?

  ou comment se sortir de quelques périls spipiens...


Le début des squelettes ne va pas sans soucis :
- l’emploi de balises avec conditions laisse affiché des crochets et parenthèses disgracieuses,
- la modification de mon squelette n’est pas prise en compte,
- plus rien (ou presque) d’affiché,
...

Florilège de quelques erreurs classiques [1]
En cas de problèmes "importants" sur votre site, il faudra peut-être passer à un autre niveau Des cas..... résolus ! PHP5...

 
 
 
 
 
 
 
 
 
 
 
 

Cette page regroupe des symptômes essentiellement rencontrés lors de l’édition de squelettes (donc réservée au WebMestre) ; mais vous pourrez parfois retomber dans ce cas, lors de l’ajout ou la mise-à-jour de plugins, qui révèlerait certaines incompatibilités spécifiques entre ces derniers...

 Symptomes d’erreur de syntaxe

Lorsqu’on commence à écrire des squelettes, comme tout texte à faire interpréter par l’ordinateur, la syntaxe est d’une exigence incontournable... et les risques d’erreurs (fautes d’orthographe du langage HTML, SPIP ou PHP) fréquents : quelques exemples de pannes pour faciliter votre diagnostic :
- je comprends pas : j’ai beau vérifier tous les appariements de parenthèses et de crochets sur mes balises, il m’en affiche encore !!
ces couples de crochets et parenthèses non-voulues, mais bien appariées [2] sont le seul ? révélateur d’une erreur simplissime, par exemple dans un formulaire éditable :
N’auriez-vous pas une boucle dans une balise conditionnelle ? cette syntaxe est inacceptable pour le compilateur de SPIP : passez vos boucles, avec leur contenu, dans des noisettes : cela règle souvent le problème (et factoriser le code vous aidera à le maintenir, autant que cela pourra aider le compilateur à le cacher)....

- je comprends pas pourquoi j’ai des URL fantômes ...
la suite de mon texte est passé en lien cliquable ? d’où cela vient-il ?
(faut dire que y’a parfois des usages un peu extrêmes... qui peuvent bien égarer SPIP )

  1. <img src="#CHEMIN{images/transparent.gif}" width="800" height="15">
  2. <a href="#URL_ARTICLE">[(#LOGO_ARTICLE{left}|image_reduire{90,90})]</a> <a href="#URL_ARTICLE"> [(#LOGO_ARTICLE{#URL_ARTICLE,left,200,200})] </a>
  3. <p>[(#TEXTE|typo|justifier|couper{400, ... <a href="#URL_ARTICLE"> <em>Lire la suite...</em>})]</p>

Télécharger

Pour simplifier, avez-vous noter laquelle des deux lignes de #LOGO_ARTICLE est la plus efficace ?
Ensuite, vous controlerez qu’il manque effectivement une </a> de fermeture..

- tout d’un coup, je ne vois plus une partie de ma page ; ou pire encore, j’obtiens une page blanche dans l’espace public [3] :
Manifestement une erreur de syntaxe [4], sans doute un crochet de fermeture oublié en fin de balise SPIP ; plus vicieux, si vous modifiez un fichier php (en particulier les fichier de langues...), vous avez oublié un terminateur d’instruction (la virgule ou le point virgule, selon les cas..), ou bien, pire : vous avez laissé un caractère [5] après la cloture du fichier php (le fameux

  1. <?php
  2. ....... ;
  3. ?>

Télécharger

- j’ai modifié mon squelette mais rien ne change ! : vérifier :

  • avez-vous réellement enregistré votre fichier modifié [6].
  • au bon endroit : si vous faites tourner votre site en distant, et que vous modifiez vos squelettes en local, les avez-vous bien retransmis par FTP ?
  • vos pages jouent à cache-cache : savez-vous qu’il faut tenir compte de deux caches :
    • celui de votre navigateur : Actualisez ou F5 devrait suffire !
      _ Parfois les feuilles de style ne sont pas réactualisées..
    • celui de SPIP sur le serveur : vous l’avez oublié !
      Eh oui, SPIP enregistre un résultat prêt à distribuer de toutes les pages calculées, et le garde à disposition (en principe pendant #CACHE{24*60*60})

Plusieurs solutions pour régler ces difficultés :
- ecrire simplement #CACHE{0} dans tous vos squelettes
- suffixer toutes vos URL avec &var_mode=recalcul
Mais vous risquez de polluer votre esprit : je préfère des techniques de paresseux :
- activer la lame "Pas de cache" du Couteau Suisse
- utiliser le débloquage temporaire du Couteau Kiss a désormais ma préférence, car elle s’annule toute seule au bout de 24heures...
- et SPIP 3 a repris le même principe (dans Maintenance / Vider le cache)

 Nettoyer le cache

Le cache serveur de Spip présente les intérêts de permettre un fonctionnement accéléré en charge pour ne pas recalculer les pages récemment vues, et de pouvoir être utilisé en cas d’interruption de service [7].

Mais en cas de problèmes dans le développement de votre site, ces avantages vont vous gêner : la solution est souvent rappelée "Videz le cache" .

Mais que faut-il vider :
- le cache traditionnel (dans ./tmp/cache/* )
- le cache du CS, si vous l’utilisez (dans ./tmp/couteausuisse/* )
voyez du coté de Connexion impossible.... cache hé ? !


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

[1nous y sommes tous passé au moins une fois !

[2En bonne correspondance en ordre entre ouvrante et fermante.. crochets [..] ou chevrons<..> et parenthèses (..), en particulier avec (#..) !

[3Pour une page blanche dans l’espace privé, voir plutot Des cas..... résolus ! PHP5..

[4Pas toujours bien expliquée par les diagnostics intégrés au compilateur SPIP, utilisez le paramètre ?var_mode=debug..

[5PHP est particulièrement sensible aux retours de ligne et autres caractères invisibles en fin de fichiers source : vérifiez avec un éditeur (Editeurs du WebMestre PC) performant !

[6Ne rigolez pas, mon éditeur favori répond mal à ma souris, et souvent oublie d’enregistrer !

[7Panne du serveur MySQL par exemple, mais pas d’Apache, qui reste indispensable au Web.

[8nous y sommes tous passé au moins une fois !


Liens visibles seulement pour les inscrits.

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

Répondre à cet article