Wikini

HistoriqueNavigation

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-3-93-75-242.compute-1.amazonaws.com

Expression de besoin

L'historique de navigation est une fonctionnalité permettant à l'utilisateur de suivre l'historique de ses pages consultées sur le wiki.
Contraintes :

Discussion

J'ai toujours été dubitatif de ce genre de chemin (pourtant recommandé par de nombreux ergonomes). Personnellement je trouve que ça surcharge, mais je suis ouvert à la discussion. -- CharlesNepote

L'internaute «lambda» aime bien savoir ce qu'il a déjà parcouru; et revenir d'un coup de clic sur une page ce qui n'est pas évident dans WiKini.
@+ jmg

Solution 1

- un historique des pages parcourues est visible sur le site http://www.arkheia.com
- c'est encore brut de «coffrage», mais vos commentaires sont attendus... que vous voudrez bien transcrire sur cette page.
@+ jmg


- Cette fonctionnalité peut et se doit d'évoluer ; ce qui fonctionne là n'est qu'une maquette... afin de susciter l'expression du besoin.
@+ jmg

- Pour que notre ami [ Charles ] ne harcèle pas sans arrêt le même lien > Les Infos > Les Infos , le fichier [ cookie.php ] est modifié afin d'annuler ce défaut.
@+ jmg



Sources

- fichier navigation.php

<?php

/*
    navigation.php - © 2004 jmg
    
    mettre le fichier << navigation.php >> dans le répertoire << /handlers/page/ >>

    mettre << include ("navigation.php"); >> 
    dans le fichier << /handlers/page/show.php >> après [ <div class="page"> ].

*/

    
$nom "histo" ;
    
$lien=$_COOKIE[$nom];

    if(!empty(
$lien)) {
        
$navig explode("|"$lien);
    
        echo 
"<p><strong>Historique</strong> :";
    
        foreach (
$navig as $element) {
            
$lien $element ;
            
$idsess strpos($lien"=") ;
            
$lien substr($lien$idsess 1) ;
    
            echo 
" > <a href='$element'>".urldecode($lien)."</a>";
            }
        echo 
"<br /><hr></p>";
    }

?>


- fichier cookie.php

<?php

/*
    cookie.php - © 2004 jmg
    
    mettre le fichier << cookie.php >> dans le répertoire << /actions/ >>

    mettre << include ("cookie.php"); >> 
    dans le fichier << /actions/header.php >> tout au début du code.

*/

    
$nom "histo" ;
    
$valeur $_SERVER['REQUEST_URI'];

    
$lien=$_COOKIE[$nom];
        if(empty(
$lien)) {
        
setcookie($nom$valeur "|");
        } else {
        
            
$navig explode("|"$lien);
            foreach (
$navig as $element) {
        
                if (
strcasecmp($element$valeur) == 0) {
                    return;
                    }
            }
            
$lien.=$valeur "|";
            
setcookie($nom$lien);
            }

?>


J'aime bien le concept mais:

Un cookie est une donnée que le client envoie au serveur à chaque demande.
Ici, sur chaque page differente que l'on visite, le cookie 'se remplit', sa taille augmente, donc à chaque visite d'une page, le cookie est envoyé du client au serveur.
Imagine maintenant qu'il y a 500 pages differentes sur le wiki et qu'il les visite toutes... Le cookie serait énorme et le temps de charge d'une page augmenterai très vite !
Je pense qu'il faudrait limiter l'historique des visites à x (<15) pages en arrières pour ne pas trop remplir le cookie.
Voila c'est tout ce que je pense ... Corrigez moi si j'ai tort ....
--
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]