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 :
- lorsque l'on clique plusieurs fois de suite sur la même page, elle ne doit pas être ajoutée plusieurs fois => correction faite...
- idéalement, l'historique ne doit pas couvrir un espace trop grand risquant de polluer la page => utiliser le CSS pour formater...
- cette fonctionnalité ne doit pas pénaliser les performances de WikiNi (par exemple : un cookie trop grand risque à terme de pénaliser les utilisateurs connecté via modem) => hum ! 10 fichiers = 340 octets... il est aussi possible d'utiliser $_SESSION...
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
- je trouve que c'est une très bonne idée, les infos sont stockées dans la session utilisateur ? pourrait-on avoir le code ? une copie d'ecran ci-dessous -- ActionsReseauxNumeriques
- 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 ....
--