Sujet cliquable

:discourse2: Summary Clickable Topic makes the entire area of a topic-list-item clickable, as opposed to just the topic title.
:eyeglasses: Preview Preview on Discourse Theme Creator
:hammer_and_wrench: Repository Link https://github.com/discourse/discourse-clickable-topic
:open_book: New to Discourse Themes? Beginner’s guide to using Discourse Themes

Install this theme component

Features

preview

:discourse2: Hosted by us? Theme components are available to use on our Standard, Business, and Enterprise plans.

Last edited by @JammyDodger 2024-06-11T12:48:31Z

Check documentPerform check on document:
46 « J'aime »

Thank you so much, very needed thing! :heart:

4 « J'aime »

That is a very helpful component! Should be from user experience point of view built into Discourse, but that is my opinion.

Anyways, I’m stuck in trying to make the same logic work for Categories. I wanted to do it with api.modifyClass but seem to miss the crucial part. Can you please help me?

I have this setting for my desktop page:
image

Basically the red box on the left should be clickable:

Or to have a perfect picture what I want to achieve: recreating the Blizzard Forum design, cause I like it a lot:

Appreciate any help here.

While waiting for a response I also found the components page here:

And tried different ideas but it seems my hook is not even available? Or I’m missing something!? :slight_smile:

Glad you like the component!

Thanks for the suggestions :grinning_face_with_smiling_eyes:

At the moment this component is only designed to work for Topics in a topic list.

1 « J'aime »

If you want to experiment and fork this component, you are welcome to do so :+1:

As a starting point to get a category to be clickable, I would suggest looking through the code in this component that does so by modifying the topic-list-item component inside Discourse core.

You could try creating a new file within this same folder which targets one of the many types of category layouts included in our components, making sure to target the same category page style you have selected on your forum.

Some of these are listed in their locations below…

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 ?