Page déjà vu

31 mai 2013 nakama

Développement

(Cet article a été écrit il y a très longtemps, dans une galaxie très très lointaine)

Quand vous êtes sur des sites e-commerce et que vous consultez des produits, il y a là plus part du temps un endroit où vous voyez les produits que vous avez déjà vus.

Aujourd’hui nous allons voir comment ça fonctionne 🙂 et comment le mettre en place pour un blog par exemple.

1. Le principe

On va sur un article, l’identifiant de celui-ci est sauvegardé sous forme de cookie. On va sur un autre article, l’identifiant est alors rajouté à ce même cookie et ainsi de suite.

Si on retourne sur un article déjà vu, l’identifiant est d’abords supprimé du cookie pour éviter les doublons et ensuite on l’ajoute afin d’avoir bien le dernier article vu en fin de cookie.

2. le code

$id = 150;

// on transforme en tableau le cookie
// @ sert à ne pas afficher d'erreur si le cookie n'existe pas
$cookie = @explode( '|', $_COOKIE['activity_recent'] );

// s'il existe et que la première valeur n'est pas vide
if(!empty($cookie[0])){

	// on regarde si l'id se trouve déjà dans le cookie
	if(in_array($id, $cookie))
		unset($cookie[array_search($id, $cookie)]); // on le supprime l'id du cookie

	$newCookie = "";
	// on recrée le cookie avec les anciennes valeurs de celui-ci
	foreach ($cookie as $value) {
		$newCookie .= $value."|";
	}

	// et on lui r'ajoute l'id à la fin
	$newCookie .= $id;
}else{
	// le cookie n'existe pas encore, on lui ajoute seulement l'id
	$newCookie = $id;
}

// on crée le cookie avec le nom / la valeur / le temps : ici le cookie a une durée de vie de 24h
setcookie('activity_recent', $newCookie, time() + 24*3600, null, null, false, true);

Explications :

– $id = 150; est par exemple l’identifiant de l’article sur lequel on se trouve
– Supprimer l’identifiant est important si on retourne sur un article déjà vu, afin de le positionné à la fin du cookie (pour par exemple : afficher les 3 derniers articles vus)
– Le foreach sert à recréer le cookie en séparant chaque valeur par un pipe ( | )

Une fois qu’on a compris le principe, il est assez simple de le mettre en place.

Dans un prochain article, on verra comment faire son propre widget avec les 3 derniers articles vus sur un bloc WordPress.

Mots-clés associés à cet article :

Retrouvez d'autres articles par catégories