* Il manque les conditionnelles ("pas d’article à cette adresse") dans les squelettes par défaut ; rendre une page vide, c’est pas top, on devrait peut-être ajouter un
<include(404.php3)>.
Cette entrée de la TodoListe me tarabiscotte depuis un moment. On devrait ajouter ? Qu’à cela ne tienne, ajoutons !
1. Créer le fichier 404.php3 :
<?php
header("HTTP/1.1 404 Not found");
header("Status: 404 Not found");
$fond = "404";
$delais = 0;
$flag_preserver = true;
include ("inc-public.php3");
?>2. Créer le fichier 404-dist.html :
3. Ajouter le filtre non_publie dans mes_fonctions.php3 :
4. Ajouter les codes manquants dans ecrire/lang/local_fr.php3 :
5. Dans tous les squelettes *-dist.html,
modifier la fin de chaque fichier :
</body>
</html>
</BOUCLE_<objet>_principal><:aucun_<objet>:><INCLURE(404.php3){id_<objet>}><//B_<objet>_principal> [1]
5bis. Pour éviter d’avoir 2 déclarations de DOCTYPE, ajouter au début de chaque fichier *-dist.html :
<B_<objet>_principal>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<BOUCLE_<objet>_principal(<OBJETS>) {id_<objet>}>Attention ! Pour site-dist.html ce n’est pas la peine de se fatiguer, il n’est pas construit de la même manière et tient déjà compte du problème. On pourrait s’amuser à le réecrire entièrement...
6. S’arranger pour que les boutons d’administration n’apparaissent pas si l’id_<objet> n’existe pas dans la base.
C’est la raison de la présence de la ligne :
$flag_preserver = true; dans le fichier 404.php3 et de l’absence de la balise #FORMULAIRE_ADMIN dans le squelette.
Pour être plus fin, il faudrait, par exemple dans inc-admin.php3, modifier la fonction afficher_boutons_admin() pour qu’elle n’affiche QUE le bouton ’recalculer cette page’... Mais cela nous oblige à modifier le noyau, et pour si peu, ce serait balot...
7. S’assurer de la non-prise en compte du hit dans les statistiques... Pas de mystère, c’est une modification du code qui nous attend. Aussi, considérons que ce dernier point est facultatif. Dans inc-stats.php3, dans la fonction ecrire_stats() :
else {
$log_type = "autre";
$log_id_num = 0;
} // Conversion IP 4 octets -> entier 32 bits
7. Si vous y tenez, Le fichier .htaccess à la racine de votre site pourra contenir :
ErrorDocument 404 404.php3
8. Un bonheur n’arrivant jamais seul, la gestion des "erreurs" de ce type est intégré à la version 1.8

