Argomento cliccabile

: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 Mi Piace

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

4 Mi Piace

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 Mi Piace

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 Mi Piace

L’anteprima non funziona più

2 Mi Piace

Penso che ora dovrebbe andare bene. :slightly_smiling_face::+1:

2 Mi Piace

Rotto ora.

Ci siamo affidati a questo componente per rendere cliccabili le schede degli argomenti della vista Categorie + Ultime (predefinita nel nostro caso). Dopo l’aggiornamento di oggi alla versione più recente 3.1.0beta8 (ora mostra come 3.2.0.beta1-dev), il componente ha smesso di funzionare correttamente.

Ora lo stato attivo del cursore rimane cliccabile, ma l’area dell’argomento non è cliccabile. Con la console del browser aperta, c’è un errore, che potrebbe aiutare gli sviluppatori a identificare il problema:

Uncaught TypeError: this.router is undefined

function navigateToTopic(topic, href) {
    if (this.siteSettings.page_loading_indicator !== "slider") {
      // Con lo slider, è più piacevole che l'intestazione si aggiorni una volta che il resto del contenuto dell'argomento viene caricato,
      // quindi salta l'impostazione anticipata.
      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’errore generato per la riga:

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

Potrebbe essere correlato agli aggiornamenti di Ember pianificati/in corso nel core?

Ciao @kinetiksoft - Non sono riuscito a riprodurre il problema da parte mia. Il componente del tema sembra funzionare bene con l’ultima versione di Discourse. Anche il link “anteprima nel creatore di temi” nell’OP qui sembra funzionare.

Potresti condividere un link a un sito con il problema? Forse c’è un conflitto con un altro tema/plugin.

2 Mi Piace

Grazie! Ti ho inviato un messaggio privato con un link alla community in questione. Non è appropriato condividerlo pubblicamente.

1 Mi Piace

Grazie @kinetiksoft! Sembra che il problema si verifichi quando il componente del tema viene utilizzato insieme alla visualizzazione “categorie + ultime” (che hai configurato come homepage).

Ho creato una PR che dovrebbe risolvere il problema.

Pubblicherò qui una volta che sarà stata unita, e poi dovrai aggiornare il tuo forum all’ultima versione del core di Discourse.

3 Mi Piace

Grazie David! Lieti di aver potuto aiutare a identificare il problema in un componente perfettamente funzionante

2 Mi Piace

Fatto - quindi dovrebbe avere effetto la prossima volta che aggiorni all’ultima versione di Discourse

1 Mi Piace

Faremo un tentativo di aggiornamento più tardi questa settimana e tornerò sicuramente su questo argomento per riferire come sta andando. Grazie ancora!

1 Mi Piace

Possiamo confermare che il problema è stato risolto. Grazie ancora! :heart:

1 Mi Piace

Ciao, come posso modificare questo componente per supportare il plugin Docs?

Sto eseguendo l’ultima versione di Discourse 3.4.0.beta2-dev.


Non sono sicuro se ci sia qualcosa di sbagliato nella configurazione di questo componente del tema, ma tutto il testo del corpo sull’argomento nella scheda non è cliccabile. Se fai clic subito dopo la fine del testo su entrambe le righe, puoi attivare la scheda e aprire l’argomento.

Qualche idea su cosa potrebbe causare questo?

Grazie in anticipo per tutto il tuo aiuto e i tuoi suggerimenti. :slight_smile:

4 Mi Piace

Ciao, grazie per quel TC, ma sembra che una regione rimanga non cliccabile?