Bonjour,
J'ai regardé un peu les fichiers css de SPIP,
sous l'angle de la validation.
En utilisant le controleur du w3c :
http://www.w3.org/
http://jigsaw.w3.org/css-validator/
http://jigsaw.w3.org/css-validator/validator-uri
sur les fichiers
impression.css
spip_style.css
typographie.css
ecrire/spip_style.php3
ecrire/spip_style_invisible.css
ecrire/spip_style_visible.css
Les documents
http://www.spip.net/impression.css
http://www.spip.net/spip_style.css
http://www.spip.net/typographie.css
http://www.spip.net/ecrire/spip_style_invisible.css
http://www.spip.net/ecrire/spip_style_visible.css
sont entièrement validés pour CSS 2,
mais pas en CSS 1, pour qui le souligné (« _ ») n'est pas autorisé dans les noms de classes
et pour des propriétés absentes
http://www.spip.net/ecrire/spip_style.php3 n'est pas validé.
Nombreuses erreurs.
Le truc a même l'air de perdre les pédale
(c'est encore une version béta).
Un examen de http://www.spip.net/ecrire/spip_style.php3
montre qu'il y a tout de même des problèmes dans le code.
Je propose les modifications suivantes de ecrire/spip_style.php3 :
-mettre l'envoi des en-têtes et le test « if ($headers_only) exit; » au début
-tester l'existence des variables, par if(isset, avant leur valeur
Ce qui aboutirai en gros à ce qui suit, pour le début :
<?php
include("inc_version.php3");
// En-tetes
$lastmodified = @filemtime("spip_style.php3");
$headers_only = http_last_modified($lastmodified, time() + 24 * 3600);
@Header ("Content-Type: text/css");
if ($headers_only) exit;
// Envoyer la feuille de style
if (isset($left))
{
if ($left == 'right')
{
$right = "left";
$_rtl = "_rtl";
}
else
{
$left = "left";
$right = "right";
$_rtl = "";
}
}
else
{
$left = "left";
$right = "right";
$_rtl = "";
}