Elenco dei topic filtrati

:information_source: Riepilogo Consente di creare elenchi di argomenti personalizzati utilizzando i filtri. Gli elenchi possono quindi essere visualizzati in un outlet di plugin selezionato per pagine selezionate.
:eyeglasses: Anteprima Theme Creator
:hammer_and_wrench: Repository https://github.com/gormus/discourse-filtered-topic-lists
:question: Guida all’installazione Come installare un tema o un componente del tema
:open_book: Nuovo ai temi di Discourse? Guida per principianti all’uso dei temi di Discourse

Installa questo componente del tema

Consente di creare elenchi di argomenti personalizzati utilizzando i filtri degli argomenti. Gli elenchi possono quindi essere visualizzati su pagine selezionate, in outlet di plugin selezionati.

Puoi creare tutti gli elenchi che desideri, definire le loro intestazioni, quanti argomenti devono essere elencati, quali filtri devono essere utilizzati per la query e, soprattutto, su quali pagine devono essere visualizzati e dove su quelle pagine.

Assicurati di rivedere la funzionalità sperimentale di filtro degli elenchi di argomenti e i filtri supportati:

Impostazioni

  • Titolo: un testo di intestazione opzionale; se fornito, viene visualizzato sopra l’elenco degli argomenti.

  • Lunghezza: il numero di argomenti da visualizzare.

  • Query: la query per filtrare l’elenco

  • Plugin Outlet: gli elenchi di argomenti curati possono essere inseriti nei seguenti outlet/regioni dei plugin:

    • below-site-header
    • above-main-container
    • before-topic-list
    • after-topic-list
    • topic-list-bottom
    • main-outlet-bottom
    • before-main-outlet
  • Mostra su: la pagina su cui visualizzare l’elenco.

    • everywhere: visualizza su ogni pagina, eccetto le pagine /admin.
    • homepage
    • top_menu: controlla le impostazioni del tuo menu principale, per le pagine abilitate.
    • categories: la pagina /categories.
    • latest: la pagina /latest.
    • top
    • new
    • unread
    • read
    • posted
    • bookmarks
    • hot
    • selected_categories:
    • selected_tags
  • Categorie selezionate: quando l’impostazione mostra su è impostata su selected_categories, vengono utilizzate le categorie selezionate in questo campo. L’elenco degli argomenti verrà visualizzato solo su queste pagine di categoria.

  • Tag selezionati: quando l’impostazione mostra su è impostata su selected_tags, vengono utilizzati i tag selezionati in questo campo. L’elenco degli argomenti verrà visualizzato solo su queste pagine di tag.

Plugin Outlets

Tutti gli outlet dei plugin disponibili sono renderizzati con una linea tratteggiata rossa attorno ad essi.

Ispirazione

Sono stato ispirato dal componente del tema Featured Lists. Ma alla fine, avevo bisogno di una soluzione meno restrittiva e più flessibile per il mio progetto.

Assicurati di controllarlo:

23 Mi Piace

Questo è piuttosto bello

Utilizza le stesse classi targetizzabili per poter stilizzare il tuo componente?

Potresti aggiungere un paio di esempi di elenchi personalizzati in un paio di outlet?

Grazie

1 Mi Piace

Sì, le tabelle dell’elenco degli argomenti filtrati utilizzano le stesse classi CSS della tabella principale dell’elenco degli argomenti. Inoltre, ci sono elementi DIV contenitori con classi che ti aiuterebbero a personalizzare le tabelle dell’elenco degli argomenti in qualsiasi plugin-outlet.

Di seguito puoi vedere la gerarchia, e nota che .topic-list è l’identificatore predefinito per l’elemento TABLE. Puoi anche targetizzare plugin-outlet specifici per applicare stili diversi, se necessario; vedi il secondo blocco di codice;

.filtered-topics-list {
    &__wrapper {
    }

    &__header {
        h2 {
        }
    }

    &__content.topic-list {
    }
}

.filtered-topics-list {
    &.below-site-header,
    &.above-main-container,
    &.before-topic-list,
    &.after-topic-list,
    &.topic-list-bottom,
    &.main-outlet-bottom,
    &.before-main-outlet {

        &__wrapper {
        }

        &__header {
            h2 {
            }
        }

        &__content.topic-list {
        }
    }
}

Non ho un sito demo per mostrartelo, ma ho condiviso uno screenshot che mostra tutti i plugin-outlet disponibili con varie liste di argomenti filtrati.

Per favore, ignora le regole tratteggiate rosse attorno ad essi, le ho aggiunte solo per evidenziare le tabelle e le regioni in cui si trovano.

2 Mi Piace

Sto usando /latest come homepage. Ho aggiunto gli argomenti più recenti da categorie specifiche alla mia homepage con questo componente, ma voglio rimuovere il componente standard e a scorrimento infinito degli argomenti più recenti di Discourse. L’ho fatto con il CSS, ma sta influenzando anche altre pagine. È possibile indirizzare il componente degli argomenti più recenti con selettori CSS solo sulla homepage?

3 Mi Piace

Credo che tu debba interrogare il percorso e aggiungere una classe personalizzata usando javascript. Ecco un esempio che potresti seguire:

https://gitlab.com/manuelkostka/discourse/helpers/css-classes/-/blob/main/javascripts/discourse/api-initializers/css-classes.js?ref_type=heads

3 Mi Piace

Trovato un bug (o comportamento previsto?):

impostare Filtro elenco predefinito: nessuna sottocategoria in una categoria impedisce la visualizzazione di qualsiasi elenco di argomenti filtrato in uno qualsiasi degli outlet.

Testato sulla versione stabile più recente 3.3.1.

3 Mi Piace

Ciao @jrgong potresti condividere uno screenshot del tuo preset?

2 Mi Piace

Ti ho inviato un PM con il mio preset

Un’altra domanda: Quale sarebbe il modo migliore per nascondere l’elenco degli argomenti principali quando si visualizza l’elenco filtrato in una categoria specifica?

L’unico modo che ho trovato tramite CSS è quello di selezionare il tag span, ma potrebbe attivarsi in diverse occasioni:

span + table.topic-list.topic-thumbnails-grid {
  display: none;
}

Ciao @jrgong, posso confermare le tue scoperte.

Passaggi per riprodurre:

  1. Crea una categoria e una sottocategoria. Ad esempio, Categoria di livello principale e Categoria di livello principale > Sottocategoria
  2. Modifica le impostazioni della Categoria di livello principale (/c/top-level-category/edit/settings)
  3. Nella sezione Aspetto, trova l’impostazione Filtro elenco predefinito.
  4. Cambia il valore da tutti gli argomenti a nessuna sottocategoria
  5. Configura un nuovo preset nel componente Elenchi argomenti filtrati per elencare il suo contenuto in entrambe le categorie principali e sottocategorie;
    1. Imposta Mostra su = categorie_selezionate
    2. Imposta Categorie selezionate = Categoria di livello principale, Sottocategoria
    3. Imposta Plugin Outlet = (qualsiasi)
  6. Visualizza le pagine di ciascuna categoria

Cosa è previsto?

Entrambe le pagine delle categorie mostrano i risultati del preset configurato sull’outlet del plugin selezionato.

Cosa è stato riscontrato?

  1. Qualsiasi categoria con l’impostazione Filtro elenco predefinito = nessuna sottocategoria non mostra gli Elenchi argomenti filtrati; indipendentemente dal fatto che abbia sottocategorie o meno.
  2. Tuttavia, se è impostato Mostra su = ovunque, l’Elenco argomenti filtrati viene visualizzato nell’outlet selezionato.

Problemi simili:

2 Mi Piace

Quando aggiungo un campo personalizzato, diciamo un filtro chiamato X, con 10 argomenti recenti, e quando questi 10 argomenti vengono scorcorsi, e diciamo che inizia “Ultimi” e se uno o più di questi argomenti sono ancora lì, vengono mostrati in entrambi. C’è un modo per nasconderli dagli ultimi o dal filtro?

1 Mi Piace

Ottima funzionalità del plugin! :+1:

D: Plugin Outlet : before-main-outlet

Come possiamo visualizzarlo, non lo vedo. Devo abilitare/disabilitare qualcosa nel tema standard affinché occupi il lato destro dello schermo come da grafica di layton?

Hmm l’ho trovato o almeno l’ho intravisto brevemente, poiché appare in fondo allo scroll infinito, non sul lato destro come previsto o atteso dalla guida visiva.