Lien "retour à la liste"

Lien "retour à la liste"

Dans de nombreux site, lors de la consultation des pages de contenu, un lien “retour à la liste”. Une fonctionnalité toute simple me direz vous, en réalité c’est un peu plus complexe que cela.

Une implémentation naïve

La première implémentation naïve consiste à faire un lien vers la rubrique qui contient le contenu. Cette implémentation va marcher si on navigue par les rubriques du site.

On remonte simplement dans le fil d’Ariane.

Cas des articles dans plusieurs rubriques

Quand un article est présent dans plusieurs rubriques, cela devient déja plus compliqué. Si on remonte dans le fil d’Ariane, on va certe arriver à une liste mais ce n’est pas forcément celle qui a utilisé par l’internaute pour accéder à la page.

Une solution consiste à reproduire l’action du bouton “page précédente” du navigateur, le Javascript utilise la méthode go qui peut naviguer dans l’historique des liens gardé en mémoire par le navigateur.

<a href="javascript:history.go(-1)">Retour à la liste</a>

Cette solution à l’avantage de revoyer l’utilisateur vers la liste d’où il est venu.

Cas des sources externes

Il reste un cas de figure est non des moindres, c’est lorsqu’on vient d’un lien hypertexte externe au site : - d’un moteur de recherche tel que Google ou Yahoo - d’un agrégateur de flux en ligne - d’un lien dans un article d’un autre site - d’un lien dans un back-office d’un extranet - d’un lien dans un webmail - …

Notre implémentation ferait retourner vers cette source, et le ferais sortir du site. De plus, cliquer sur “Retour à la liste” et se retrouver dans son webmail ou l’extranet de son entreprise a de quoi surprendre.

C’est pourquoi il est de bon ton de désactiver cette fonctionnalité quand le referrer n’est pas son propre site, tout simplement parce que l’on ne vient pas forcément d’une liste.

En PHP, on peux par exemple récupérer le referrer via la varible superglobale ($_SERVER).

<?php if (preg_match('/^https://example\.com//', $_SERVER['HTTP_REFERER'])): ?>
  <a href="javascript:history.go(-1)">Retour à la liste</a>
comments powered by Disqus
A la une
  • Rencontre du numérique 2019 - Nîmes
  • référencement naturel d'un hôtel
  • Développeur eZ Platform
  • Tech lead Symfony
  • Expert Qualité Web

Copyright - Sylvain FIX

2009 - 2019