Gestion Erreur 404

Bonjour,

dans le cas d'un ancien site sans pluxml que l'on passerai sus Pluxml, comment faire pour gérer les erreurs 404 directement depuis l'admin afin que le message 404 soit intégré dans le template.php ? Je pense qu'un plugin serait interessant à ce niveau.

Dans l'idée je crois que si .htaccess redirige vers ./index.php?erreur404 alors le plugin prend le relais et affiche un message avertissant que la page demandée n'existe plus etc...

cela vous parrait-il gérable ?

Réponses

  • gcyrillusgcyrillus Member
    octobre 2008 modifié
    bonjour,

    On peut deja rapidement et en partie, gerer , disons , une page d'erreur interne a pluxml .O pourrait intervenir a differents niveau mais j'ai choisi pour l'exemple l'endroit ou le script nous renvoi en premier un message d'erreur .

    En effet , on a le droit a un message d'erreur sur un foreach , lorsque pluxml ne contient aucun article , que l'on pointe vers une url de catégorie qui n'existe pas (ou qui est vide) ou un article qui n'existe pas .

    Pour ce faire on peut rapidement mettre en place un test , verifiant que la requete (par l'url) nous renvois bien vers une page qui peut extraire des données a partir d'au moins un fichier physiquement présent .

    Dans le fichier 'class.pluxml.php' nous avons cette fonction :
    function getArticles(){

    foreach($this->uFiles as $i => $a) {
    $array[$i] = $this->parseArticle(PLX_DOC.$this->config.$a);
    }
    $this->result = new recordset($array);
    }
    Cette fonction n'a aucune alternative a proposé en l'absence de fichiers a parser.
    un petit test permet alors de lui renvoyé le nom d'un fichier qui sera le seul et unique a parser .

    Modification de cette fonction :
    function getArticles(){
    if ($this->uFiles) { // on test si des fichiers sont dispos et si oui on lance la boucle qui peut des lors alimenté notre tableau multidimensionnel .

    foreach($this->uFiles as $i => $a) {
    $array[$i] = $this->parseArticle(PLX_DOC.$this->config.$a);
    }
    }
    else { //si on a pas de fichier alors on crée et on alimente notre tableau a partir d'un seul fichier
    // fichier dont la structure est la copie conforme de celle de nos articles
    // fichier placé dans le repertoire xml et nommé erreurs.xml

    $array[0] = $this->parseArticle(PLX_DOC.$this->config.'erreurs.xml');

    }
    $this->result = new recordset($array); // ici que l'article existe ou pas on s'en fiche $array existera
    }
    Pour le coté 'edition' , on pourra par exemple editer en mode brouillons un article , puis par le ftp , renommer ce fichier en erreurs.xml . ou faire une copie modifier de la page d'edition d'article de façon a ce qu'elle ne charge que ce fichier .

    GC

    <edit>Ensuite pour le coté htaccess , il suffit de renvoyé sur une page ou une categorie inexistante dans votre pluxml .

    Attention , la gestion de ces erreurs n'est pas aussi claire qu'il se le pourrait , pluxml gere en partie ces erreurs en renvoyant sur la page d'acceuil ou la categorie la plus proche , une url mal ecrite ou legerement déformé ne souleve pas forcement une erreur .
  • pas mal comme idée de plugin, je plussoie :)
  • En effet , je ne sais pas comment stef va gerer ce plugin , pour ma part je viens de faire un test sur la derniere archive que j'avais modifié un fichier htaccess et le fichier d'erreur est crée a l'install.

    au départ j'avais tout simplement eviter l'apparition de c emessage d'erreur sans page alternative , finalement j'ai repris l'idée exposée plus haut et ajouté un fichier htaccess (ce fichier est généré a l'install , car en testant sur free je n'ai pas reussi a intégré/activé le php dans ce dernier fichier , du coup il est generé en pure texte a l'install .

    Dans ce test , donc , un htaccess est créer a la racine de cette version modifié de pluxml , un fichier erreurs.xml est aussi généré en même temps que les premiers articles . Ce fichier erreurs.xml est editable dans l'admin .

    l'archive de ce mod modifié : http://yidille.free.fr/plux-mod-gc-jui-2008/plux-mod-gc-jui-err-2008.zip

    test sur page d'erreur :
    1) 1 categorie qui n'existe pas ou plus : http://yidille.free.fr/plux-mod-gc-jui-2008/?031/
    2) 1 article qui n'existe pas ou plus : http://yidille.free.fr/plux-mod-gc-jui-2008/?11-or
    3) 1 page qui n'existe pas dans le repertoire de ce pluxml modifié : http://yidille.free.fr/plux-mod-gc-jui-2008/page_truc_muche_ki_existe_pas.plouf

    Dans la majeure partie des cas , pluxml renvoie sur la page d'acceuil quand il y a une erreur dans l'url , sauf cas particuliers .
    La soluce de proposé une page d'erreur est une solution , l'autre serait de reprendre les regex de façon plus strict (je ne sais pas franchement faire ;) )

    Me semble que la soluce page d'erreur + htaccess n'est pas mal
    @marama et @stef , je ne sais pas ce que vous en penser , mais comme on peut mettre ça en place a l'install , cela me parait léger , reste si un mode 'erreur' a l'instar du mode 'brouillons' est preferable coté admin . j'ai opté pour une page supplementaire dédié a ça dans cette version de test .
  • La version blog beta 4 gère cela en natif en réalité.
    En effet, désormais le template se divise en plusieurs fichiers (selon le mode) avec notamment, vu qu'il y a un mode erreur, un fichier erreur.php
    cordialement
  • Très bien si la prochaine version gère cela en natif. En attendant, pour les versions antérieurs..... je viens de créer une page "erreur 404" dans brouillon, je l'édite de façon classique. Ensuite je renomme le fichier .xml (ex: 0009.009.erreur404.xml) et je demande au .htaccess de rediriger vers cette page. Cela fonctionne bien pour le moment.

    Voyez-vous un problème auquel je n'aurai pas pensé qui va poser des problèmes dans l'avenir ? Précisions : le site n'est pas un blog, donc pas de nouveaux articles, ni catégories à ajouter. (http://www.xtremeglisses-samoens.com)
  • gcyrillusgcyrillus Member
    octobre 2008 modifié
    bonjour,

    okay , si pas de nouvel categorie ou articles , a premiere vue , tout va bien :)
    Cependant tu as omis les erreurs 'internes de pluxml :
    test : http://www.xtremeglisses-samoens.com/?022/ pour une cat qui n'existe pas ou une adresse vers un article fantome : http://www.xtremeglisses-samoens.com/?022-

    alors que : http://www.xtremeglisses-samoens.com/index.php?contacter ou http://www.xtremeglisses-samoens.com/?01- te renverrons sur la page d'accueil une autre url bien formé (comme pluxml les attend) mais qui ne pointe sur aucun vrai n° d'article ou de cat , te laisse page blanche :). sauf si cette article existe : ta page erreur en mode article est par exemple atteignable comme ceci : http://www.xtremeglisses-samoens.com/index.php?09-
    (ton post precedent precise : 0009.009.erreur404.xml , categorie n°9 et article n° 9 :) )

    Voilou , si ça t'aide a comprendre comment pluxml fonctionne au niveau des url

    ++

    <edit> remarques que en servant ta page d'erreur en 'mode article' , le titre de la page devient : erreur 404 - Xtreme Glisses et pas seulement Xtreme Glisses </>
Connectez-vous ou Inscrivez-vous pour répondre.