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)....
c’est bizarre, mon URL résultante n’est pas bien calculée ??
less filtres ne semblent pas appliqués sur votre balise initiale : particulièrement depuis SPIP3, une expression SPIP enquillant balises et filtres doit être enclose dans une syntaxe complète d’expressions, entre le couple [ (
et } ]
!
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 )
- <img src="#CHEMIN{images/transparent.gif}" width="800" height="15">
- <a href="#URL_ARTICLE">[(#LOGO_ARTICLE{left}|image_reduire{90,90})]</a> <a href="#URL_ARTICLE"> [(#LOGO_ARTICLE{#URL_ARTICLE,left,200,200})] </a>
- <p>[(#TEXTE|typo|justifier|couper{400, ... <a href="#URL_ARTICLE"> <em>Lire la suite...</em>})]</p>
Pour simplifier, avez-vous noter laquelle des deux lignes de #LOGO_ARTICLE est la plus efficace ?
Ensuite, vous contrôlerez 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
- <?php
- ....... ;
- ?>
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 Internet : 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é !
- celui de votre navigateur : Actualisez ou F5 devrait suffire !
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é ? !
Article publié le 23 février 2012, et actualisé en janvier 2020 .
Répondre à cet article