Les jetons créés sur Facebook lorsque l'on fait référence à un ami dans la boîte de création de statut sont officieusement connus sous le nom de mentions o étiquettes .
Il semble que vous recherchiez une solution existante et robuste pour créer ces choses ; si c'est le cas, jetez un coup d'œil à Mentionneur dont la maintenance est assurée par votre serviteur.
Si, en revanche, vous souhaitez savoir comment un tel utilitaire est fabriqué, lisez la suite.
Un utilitaire de gestion des "mentions" comporte trois éléments :
-
Module d'auto-complétion : Le composant responsable de l'obtention et de l'affichage de l'ensemble des éléments qui peuvent être utilisés pour créer une mention, à partir d'une chaîne de caractères.
-
Module de suivi des mentions : Le composant responsable du suivi des données associées aux mentions ; au strict minimum, l'emplacement ainsi que les valeurs superficielles et substantielles (si elles existent) de chaque mention doivent être suivis à travers toutes les modifications du texte de l'élément d'entrée auquel l'utilitaire est apposé.
-
Mentionner le module de différenciation visuelle : Composant chargé de différencier le texte de la mention du reste du texte de l'élément d'entrée sur lequel l'utilitaire est apposé*.
Si vous souhaitez savoir à quoi ressemble le code de chacun de ces modules, vous pouvez consulter le code source de Mentionator, qui est bien structuré, facile à suivre et abondamment commenté**.
*Il est important de noter que la mise en œuvre d'un tel dispositif par Facebook ne transforme pas les mentions en liens pendant la création du statut, comme je l'ai déduit. Au lieu de cela, le texte du statut est envoyé aux serveurs de Facebook avec des données (éventuellement en ligne) qui spécifient l'emplacement de chaque mention dans le statut. Lorsque le statut doit être transmis par les serveurs à un utilisateur, les données de localisation susmentionnées sont utilisées pour créer une version du texte avec des mentions "linkifiées".
**Le module d'autocomplétion de Mentionator est le widget jQuery UI Autocomplete, dont la source n'est pas incluse dans Mentionator.