Le problème se situe dans les cas des conditions simples.
Voici un extrait de configurer.php :
if ($arg == ‹ relayeur ›)
$r = parametre_url($r, ‹ retour_proxy ›, $GLOBALS[‹ retour_proxy ›],"&");
else if ($arg == ‹ langue ›) {
include_spip(‹ inc/rubriques ›);
calculer_langues_rubriques();
}
if (_request(‹ envoi_now ›)) cron(0, array(‹ mail › => -1));
L’absence de parenthèses entraine une ambiguïté lors de la lecture rapide : ici par exemple il n’est pas immédiat que la fontion calculer_langues_rubriques() n’est appelée que si $arg vaut ‹ langue ›. C’est aussi dû à l’indentation qui place le bloc au même niveau que le précédent.
Le ‹ if › suivi d’une fonction sans accolade autour, c’est par expérience souvent plantogène.
Je propose qu’on recommande de toujours mettre les accolades pour le bloc qui suit une condition ou une boucle
(avec espace, retour à la ligne et indentation du contenu par une tabulation)
Le code souhaitable serait alors le suivant :
if ($arg == ‹ relayeur ›) {
$r = parametre_url($r, ‹ retour_proxy ›, $GLOBALS[‹ retour_proxy ›],"&");
}else {
if ($arg == ‹ langue ›) {
include_spip(‹ inc/rubriques ›);
calculer_langues_rubriques();
}
}
if (_request(‹ envoi_now ›)) {
cron(0, array(‹ mail › => -1));
}
Qu’en dites-vous ?