SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Outils pour squelettes > Archives outils squelettes

Squelette conditionnel

jeudi 3 février 2005, par Fil, James. Dernier ajout dimanche 27 mai 2007


* 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 !


* 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

Notes

[1] bien coller les balises, sans caractères supplémentaires, pour éviter l’envoi de caractères au navigateur avant l’envoi d’une entête, dixit Déesse A. qui a bien raison ;-)


Répondre à cet article



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net