Sujet cliquable

:discourse2: Résumé Clickable Topic rend toute la zone d’un topic-list-item cliquable, contrairement au seul titre du sujet.
:eyeglasses: Aperçu Aperçu sur Discourse Theme Creator
:hammer_and_wrench: Lien vers le dépôt https://github.com/discourse/discourse-clickable-topic
:open_book: Nouveau dans les thèmes Discourse ? Guide de démarrage pour l’utilisation des thèmes Discourse

Installer ce composant de thème

Fonctionnalités

preview

:discourse2: Hébergé par nous ? Les composants de thème sont disponibles pour une utilisation sur nos offres Standard, Business et Entreprise.

46 « J'aime »

Merci beaucoup, c’est vraiment nécessaire ! :heart:

4 « J'aime »

C’est un composant très utile ! À mon avis, il devrait être intégré à Discourse du point de vue de l’expérience utilisateur, mais ce n’est que mon opinion.

Quoi qu’il en soit, je suis bloqué en essayant de faire fonctionner la même logique pour les Catégories. Je voulais le faire avec api.modifyClass, mais il semble que je manque l’élément crucial. Pouvez-vous s’il vous plaît m’aider ?

J’ai ce paramètre pour ma page de bureau :
image

Fondamentalement, la boîte rouge à gauche devrait être cliquable :

Ou pour avoir une image parfaite de ce que je veux réaliser : recréer le design du forum Blizzard, car j’aime beaucoup :

Je vous remercie pour toute aide ici.

En attendant une réponse, j’ai également trouvé la page des composants ici :
https://github.com/discourse/discourse/tree/master/app/assets/javascripts/discourse/app/components
Et j’ai essayé différentes idées, mais il semble que mon hook ne soit même pas disponible ? Ou est-ce que je manque quelque chose ? :slight_smile:

Contenté que vous aimiez le composant !

Merci pour vos suggestions :grinning_face_with_smiling_eyes:

Pour le moment, ce composant est conçu uniquement pour fonctionner avec les Topics dans une liste de sujets.

1 « J'aime »

Si vous souhaitez expérimenter et bifurquer ce composant, vous êtes le bienvenu :+1:

Pour commencer à rendre une catégorie cliquable, je vous suggère d’examiner le code de ce composant qui le réalise en modifiant le composant topic-list-item au cœur de Discourse.

Vous pourriez essayer de créer un nouveau fichier dans ce même dossier, en ciblant l’un des nombreux types de mises en page de catégories inclus dans nos composants, et en veillant à choisir le même style de page de catégorie que celui sélectionné sur votre forum.

Certains d’entre eux sont listés ci-dessous avec leurs emplacements…

app/assets/javascripts/discourse/app/components/categories-and-latest-topics.js
app/assets/javascripts/discourse/app/components/categories-and-top-topics.js
app/assets/javascripts/discourse/app/components/categories-boxes-topic.js
app/assets/javascripts/discourse/app/components/categories-boxes-with-topics.js
app/assets/javascripts/discourse/app/components/categories-boxes.js
app/assets/javascripts/discourse/app/components/categories-only.js
app/assets/javascripts/discourse/app/components/category-list-item.js

3 « J'aime »

L’aperçu ne fonctionne plus

2 « J'aime »

Je pense que ça devrait aller maintenant. :slightly_smiling_face::+1:

2 « J'aime »

Cassé maintenant.

Nous nous sommes appuyés sur ce composant pour rendre les cartes de sujet de la vue Catégories + Derniers (par défaut dans notre cas) cliquables. Depuis la mise à jour d’aujourd’hui vers la dernière version 3.1.0beta8 (maintenant affichée comme 3.2.0.beta1-dev), le composant a cessé de fonctionner correctement.

Maintenant, l’état actif du curseur reste cliquable, mais la zone du sujet n’est pas cliquable. Avec la console du navigateur ouverte, il y a une erreur, qui pourrait aider les développeurs à identifier le problème :

Uncaught TypeError: this.router is undefined

function navigateToTopic(topic, href) {
    if (this.siteSettings.page_loading_indicator !== "slider") {
      // Avec le curseur, il est plus agréable que l'en-tête se mette à jour une fois que le reste du contenu du sujet est chargé,
      // donc sautez la définition précoce.
      this.appEvents.trigger("header:update-topic", topic);
    }
    this.session.set("lastTopicIdViewed", {
      topicId: topic.id,
      historyUuid: this.router.location.getState?.().uuid
    });
    _url.default.routeTo(href || topic.get("url"));
    return false;
  }

L’erreur déclenchée pour la ligne :

historyUuid: this.router.location.getState?.().uuid

Cela pourrait-il être lié aux mises à niveau d’Ember prévues/en cours dans le cœur ?

Salut @kinetiksoft - Je n’ai pas pu reproduire le problème de mon côté. Le composant de thème semble bien fonctionner avec la dernière version de Discourse. L’utilisation du lien « aperçu sur le créateur de thème » dans le message d’origine ici semble également fonctionner.

Pourriez-vous partager un lien vers un site présentant le problème ? Il y a peut-être un conflit avec un autre thème/plugin.

2 « J'aime »

Merci ! Je vous ai envoyé un message privé avec un lien vers la communauté en question. Il n’est pas approprié de la partager publiquement.

1 « J'aime »

Merci @kinetiksoft ! Il semble que le problème survienne lorsque le composant de thème est utilisé parallèlement à la vue « catégories + dernières » (que vous avez configurée comme page d’accueil).

J’ai créé une PR qui devrait résoudre le problème.

Je posterai ici une fois qu’elle sera fusionnée, et vous devrez ensuite mettre à jour votre forum vers la dernière version du cœur de Discourse.

3 « J'aime »

Merci David ! Heureux d’avoir pu aider à identifier le problème dans un composant parfaitement fonctionnel.

2 « J'aime »

C’est fait - cela devrait prendre effet la prochaine fois que vous mettrez à jour vers la dernière version de Discourse.

1 « J'aime »

Nous tenterons la mise à jour plus tard cette semaine et je reviendrai certainement sur ce sujet pour vous informer de l’avancement. Merci encore !

1 « J'aime »

Nous pouvons confirmer que le problème a été résolu. Merci encore ! :heart:

1 « J'aime »

Salut, comment puis-je modifier ce composant pour prendre en charge le plugin Docs ?

J’utilise la dernière version de Discourse 3.4.0.beta2-dev.


Je ne suis pas sûr si j’ai mal configuré ce composant de thème, mais tout le texte du corps sur le sujet dans la carte n’est pas cliquable. Si vous cliquez juste après la fin du texte sur l’une ou l’autre ligne, vous pouvez activer la carte et ouvrir le sujet.

Avez-vous des idées sur ce qui pourrait causer cela ?

Merci d’avance pour toute votre aide et vos suggestions. :slight_smile:

4 « J'aime »

Salut, merci pour ce TC, mais il semble qu’une région reste non cliquable ?

Je vois cette erreur de manière intermittente sur un site que j’administre :

J’utilise Discourse 52ab90911 et Clickable Topic 37f0aa135fe.

1 « J'aime »