| Résumé | Affiche des infobulles lors du survol (ou du toucher sur mobile) des liens internes vers des sujets, permettant de voir un aperçu rapide du contenu du sujet lié. | |
| Aperçu | Lisez-moi de GitHub | |
| Dépôt | https://github.com/denvergeeks/discourse-topic-hover-cards | |
| Guide d’installation | Comment installer un thème ou un composant de thème | |
| Nouveau sur les thèmes Discourse ? | Guide pour débutant sur l’utilisation des thèmes Discourse |
Installer ce composant de thème
Des cartes d’aperçu enrichies au survol pour les liens internes vers des sujets dans les sujets, les réponses, les listes de sujets, les pages d’accueil des catégories, les catégories de documentation, les tableaux Kanban et les sujets suggérés. Pour ordinateur de bureau et/ou mobile. Valable pour tout le site et hautement configurable.
Fonctionnalités
- Peut être activé sur l’ensemble du site pour tous les liens internes vers des sujets, ou uniquement ceux apparaissant dans une ou plusieurs zones, notamment :
- Corps du sujet (publication originale)
- Réponses
- Listes de sujets standard (
/latest,/top,/tags, listes de sujets par catégorie, etc.) - Listes de sujets sur la page d’accueil des catégories (Catégories + Derniers, Uniquement catégories, et mises en page apparentées)
- Vues des catégories de documentation
- Vues de tableaux de style Kanban
- Sujets suggérés
- Mise en page adaptative :
- Carte pour ordinateur de bureau avec densité et placement des miniatures configurables
- Aperçu sous forme de feuille en bas d’écran sur mobile avec ouverture au toucher
- Contenu configurable :
- Image miniature
- Badge de catégorie
- Étiquettes (tags)
- Titre
- Extrait (nettoyé des images et des lightboxes)
- Auteur de la publication originale
- Date de publication
- Vues, réponses, likes, dernière activité
- Désactivation par utilisateur via un champ utilisateur personnalisé
- Mode de débogage réservé aux administrateurs pour un dépannage sécurisé
Paramètres
Mise en page et timing
-
card_width
Toute valeur de largeur CSS (pour ordinateur de bureau), par exemple32rem,420px,40vw,clamp(20rem, 40vw, 36rem). -
card_max_height
Toute valeur de hauteur maximale CSS, par exemple10rem,480px,50vh,min(60vh, 32rem). -
card_delay_ms
Délai avant l’affichage de la carte au survol, en millisecondes (par défaut :300). -
enable_on_mobile
Lorsqu’activé, toucher un lien interne vers un sujet pris en charge affiche une feuille d’aperçu mobile fixée en bas de l’écran. -
mobile_width_percent
Largeur de l’aperçu en feuille en bas d’écran sur mobile, exprimée en pourcentage de la largeur de la fenêtre d’affichage (par défaut :100). -
mobile_thumbnail_height
Hauteur de la miniature en pixels pour l’aperçu mobile.
Densité
-
density
Densité pour ordinateur de bureau :default,cozyoucompact. -
density_mobile
Densité pour mobile :default,cozyoucompact.
Ces options sont parallèles aux modèles de « Densité » de Discourse et ajustent simplement les espacements et les hauteurs de ligne.
Miniature et placement
-
show_thumbnail / show_thumbnail_mobile
Afficher/masquer l’image du sujet (le cas échéant) sur ordinateur de bureau et mobile. -
thumbnail_placement
Façon dont la miniature est positionnée sur ordinateur de bureau :topleftrightbottom
Sur mobile, la miniature est toujours rendue en haut de la carte.
-
image_size_percent
Contrôle la taille de la miniature en pourcentage de la taille de la carte au survol rendue.
Champs par fenêtre d’affichage
Pour chaque bloc ci-dessous, vous disposez d’interrupteurs pour ordinateur de bureau et mobile :
-
show_category / show_category_mobile
-
show_tags / show_tags_mobile
-
show_title / show_title_mobile
-
show_excerpt / show_excerpt_mobile
-
excerpt_length / excerpt_length_mobile
Nombre de lignes pour l’extrait (utiliseline-clampCSS). -
show_op / show_op_mobile
Affiche l’avatar et le nom d’utilisateur de l’auteur de la publication originale. -
show_publish_date / show_publish_date_mobile
-
show_views / show_views_mobile
-
show_reply_count / show_reply_count_mobile
-
show_likes / show_likes_mobile
-
show_activity / show_activity_mobile
Où les cartes au survol apparaissent
-
enable_on_topics
Liens vers des sujets dans la publication originale. -
enable_on_replies
Liens vers des sujets dans les réponses. -
enable_on_topic_lists
Liens vers des sujets dans les listes de sujets standard, par exemple/latest,/top, listes de sujets par catégorie. -
enable_on_category_homepage_topic_lists
Liens vers des sujets dans les listes « derniers sujets » ou équivalentes sur la page d’accueil des catégories :- Catégories + derniers sujets
- Uniquement catégories
- Variantes apparentées rendues à
/ou/categories, selon la configuration de votre page d’accueil.
-
enable_on_doc_categories
Liens vers des sujets dans les vues des catégories de documentation (le cas échéant). -
enable_on_kanban_boards
Liens vers des sujets rendus dans les mises en page de tableaux de style Kanban (le cas échéant). -
enable_on_suggested_topic_links
Liens dans la section « Sujets suggérés ».
Désactivation par utilisateur
Vous pouvez permettre à des utilisateurs individuels de désactiver les cartes au survol en utilisant un champ utilisateur personnalisé. Cela utilise le mécanisme standard des paramètres de thème et l’accès aux données de l’utilisateur actuel décrit dans les guides pour développeurs.
- user_preference_field_name
La clé utilisée pour détecter la désactivation chez l’utilisateur actuel. Cela peut être :- une clé de champ personnalisé directe, par exemple
disable_topic_hover_cards - un identifiant numérique, par exemple
1 - une clé
user_field_X, par exempleuser_field_1
- une clé de champ personnalisé directe, par exemple
Fonctionnement de la correspondance
- Le composant vérifie d’abord les
custom_fieldsetuser_fieldsde l’utilisateur actuel pour :- le
user_preference_field_nameconfiguré - la même valeur convertie entre
1etuser_field_1lorsque cela est approprié
- le
- Si aucune correspondance n’est trouvée et que l’utilisateur actuel est membre du personnel (administrateur/modérateur) et que resolve_user_field_id_for_admins est activé, le composant appelle :
/admin/config/user-fields.json
pour mapper la valeur configurée (nom du champ ouuser_field_X) à son identifiant numérique.
- Avec l’identifiant numérique, il vérifie :
user_fields[id]user_fields['user_field_' + id]custom_fields[id]custom_fields['user_field_' + id]
Toute valeur vraie à ces positions (par exemple 1, true, yes, on, checked) désactive les cartes au survol pour cet utilisateur.
Paramètres pour ce comportement
-
resolve_user_field_id_for_admins
Lorsqu’activé (recommandé), les administrateurs peuvent configurer le champ soit par nom, soit paruser_field_X, et le composant résoudra et correspondra automatiquement l’identifiant numérique. -
debug_mode
Lorsqu’activé, enregistre des informations détaillées de détection dans la console du navigateur pour le personnel, notamment :- quelles clés ont été vérifiées
- où une correspondance a été trouvée (utilisateur actuel vs enregistrement complet de l’utilisateur)
- l’identifiant numérique du champ utilisateur résolu, le cas échéant
Débogage
Si les cartes au survol n’apparaissent pas là où vous les attendez, utilisez le mode de débogage intégré :
- Activez debug_mode dans les paramètres de ce composant.
- Ouvrez la console de développement du navigateur.
- Passez la souris ou touchez un lien vers un sujet pertinent.
Vous verrez des messages similaires à :
Hover cards initialized– confirme l’initialisation et les emplacements activés.Resolved admin user-field mapping– confirme la correspondance du nom/clé de votre champ utilisateur configuré vers un identifiant numérique (pour le personnel).No disable field match found anywhere– confirme que les cartes au survol ne sont pas supprimées pour l’utilisateur actuel.
Pour déboguer où la carte devrait apparaître, vérifiez que :
- votre lien cible est un lien interne vers un sujet (
/t/...) quetopicIdFromHref()peut analyser - le drapeau d’emplacement pertinent est activé :
enable_on_topicsenable_on_repliesenable_on_topic_listsenable_on_category_homepage_topic_listsenable_on_doc_categoriesenable_on_kanban_boardsenable_on_suggested_topic_links
Paramètres et fonctionnalités prévus mais pas encore ajoutés :
- Étiquettes exclues
- Étiquettes incluses
- Classes exclues
- Classes incluses
- Exclure OneBoxes et autres par défaut
- Suggestions ??

