Evidenziatore di categoria

Questo componente del tema ti permette di evidenziare una (o più) categoria in Discourse. Puoi:

  1. Assegnare uno stile di sfondo speciale a categorie specifiche
  2. Aggiungere un link alla categoria nell’intestazione con lo stesso stile speciale

Un caso d’uso tipico è per una categoria contenente contenuti “Premium”.

:wrench: Come installare

:computer: Ottieni il codice


Navigazione delle categorie ed etichetta nell’intestazione

Elenco argomenti Menu del sito

Pagina delle categorie

Configurazione

Il componente del tema Category Highlighter ha un’impostazione principale: “highlight categories” (evidenzia categorie). Troverai questa impostazione nel pannello delle impostazioni del componente del tema Category Highlighter.

Ogni categoria che desideri evidenziare ha la propria voce in questa impostazione. Il formato di ogni voce è:

category_slug~background~text_color~header_label~header_label_mobile~parent_slug~alternate_link

Un esempio di questo formato è:

premium~linear-gradient(319deg, #cdedfd 0%, #ffec82 37%, #ffcfd2 100%)~#88562e~:star:  Premium~:star:

Ci sono sei valori possibili, ciascuno separato da ~ (una “tilde”). Analizziamo ciascun valore.

Category Slug

Questo è lo “slug” della categoria che desideri evidenziare. Puoi trovarlo nelle impostazioni della categoria.

Se devi evidenziare una sottocategoria, devi utilizzare lo slug della categoria “Parent” (genitore), seguito dallo slug della sottocategoria separato da una /.

Ad esempio, se esistesse una sottocategoria di premium con lo slug videos che desideri evidenziare, useresti:

premium/videos

Permessi

Tieni presente che solo gli utenti che hanno i permessi di read (lettura) per la categoria evidenziata vedranno gli evidenziazioni, inclusa l’etichetta nell’intestazione. Puoi modificare i permessi della categoria nelle impostazioni di “Sicurezza” della categoria.

Background

Questo è un valore che verrà assegnato alla proprietà CSS background del badge della categoria. Puoi utilizzare qualsiasi valore supportato da tale proprietà.

background - CSS: Cascading Style Sheets | MDN

La proprietà CSS abbreviata background imposta tutte le proprietà di stile di sfondo in una volta sola, come colore, immagine, origine e dimensione, o metodo di ripetizione.

Ad esempio linear-gradient(319deg, #cdedfd 0%, #ffec82 37%, #ffcfd2 100%).

Text Color

Questo è un valore che verrà assegnato alla proprietà CSS color del badge della categoria. Questo influisce sul colore del testo. Puoi utilizzare qualsiasi valore supportato da tale proprietà.

color - CSS: Cascading Style Sheets | MDN

La proprietà CSS color imposta il valore del colore in primo piano del testo di un elemento e delle decorazioni del testo, e imposta il valore currentcolor. currentcolor può essere utilizzato come valore indiretto in altre proprietà ed è il valore predefinito per altre proprietà di colore, come…

Nel nostro esempio, questo valore è #88562e.

Header Label

Questo valore serve a due scopi. Determina:

  1. se la categoria evidenziata riceverà un’etichetta nell’intestazione; e
  2. il contenuto di tale etichetta.

Se non desideri un’etichetta nell’intestazione, non includere affatto questo valore.

Questo valore supporta testo, entità HTML ed emoji.

Il valore dell’etichetta nell’intestazione qui è: :star:  Premium. Cioè:

  1. Lo shortcode per l’emoji stella: :star:
  2. Due entità HTML per spazi non divisibili (ciascuna aggiunge uno spazio bianco):   
  3. Il nostro testo dell’etichetta: Premium

Puoi trovare l’elenco completo degli shortcode delle emoji qui e l’elenco completo delle entità HTML qui.

Mobile Header Label

Anche questo valore serve a due scopi. Determina:

  1. se la categoria evidenziata riceverà un’etichetta nell’intestazione mobile; e
  2. il contenuto dell’etichetta nell’intestazione mobile.

L’utilizzo e la formattazione sono gli stessi dell’etichetta nell’intestazione. Una cosa da notare qui è che hai meno spazio su mobile, quindi potrebbe essere prudente utilizzare solo un’emoji o una parola breve per risparmiare spazio.

Categoria Genitore

Puoi creare un menu a tendina nell’intestazione impostando il “parent” (genitore) di un elemento. Inserisci lo slug della categoria come sesto elemento e l’elemento corrispondente diventerà un elemento di sottomenu di quella categoria nell’intestazione. Come per il primo elemento, assicurati di utilizzare qui lo slug della categoria, che puoi recuperare dalla finestra di dialogo delle impostazioni della categoria.

Alternate Link

Per impostazione predefinita, ogni elemento della categoria collega alla categoria a cui si riferisce. Puoi modificare il link aggiungendo un URL come sesto elemento nel blocco delle impostazioni.

25 Mi Piace

Così semplice, eppure così efficace. Da tempo avevo in programma di stilizzare con CSS alcune parti del forum per evidenziare i post provenienti dalle categorie di clienti paganti. Ora tutto è molto più semplice. Grazie per il lavoro, è fantastico!

Hai pensato a come evidenziare gli argomenti nella lista degli argomenti quando nel selettore delle categorie è attiva l’opzione ‘tutte le categorie’? Ad esempio, aggiungendo una stella prima del titolo dell’argomento?

2 Mi Piace

L’evidenziazione funziona in tutti i punti in cui appare il badge, quindi è già presente nell’elenco :slight_smile:

Elenco argomenti Menu del sito

Pagina delle categorie

Vedi anche https://try.thepavilion.io

4 Mi Piace

@Angus, sei un fantastico sviluppatore ed è un immenso piacere collaborare con te. Grazie per la tua creatività, l’eccellenza e la meticolosità. Sei un dono per la community di Discourse.

6 Mi Piace

È un componente davvero figo, bel lavoro :+1:

7 Mi Piace

ooo che sensazione così.. :sparkles: preeemium

10 Mi Piace

A prima vista ho pensato che ci fosse una barra laterale. Una barra laterale con questo stile potrebbe essere carina.

Ottimo componente, davvero carino. :+1:

@angus Vorrei sapere come applicare un border-radius allo sfondo evidenziato, grazie in anticipo.

1 Mi Piace

A causa della varietà di contesti in cui appare il badge della categoria, questa operazione è un po’ complessa. Potrei aggiungere una classe per semplificarla, ma per ora puoi procedere in questo modo:

### Pulsante dell'intestazione
.highlight-category-button {
    border-radius: 4px;
}

### Badge
.badge-wrapper[class*=" updates "],
.extra-info-wrapper .categories-wrapper .badge-wrapper[class*=" updates "],
.category-title-link-component[class*=" updates "] .category-text-title,
.select-kit.combo-box.category-drop .category-row[class*=" updates "] .badge-wrapper {
    &:before {
        border-radius: 4px;
    }
}

“updates” è lo slug della categoria nell’esempio

Esempio: https://try.thepavilion.io/

2 Mi Piace

Il componente ora supporta un menu a tendina per le categorie. :tada:

Se utilizzi lo slug della categoria genitore come sesto elemento nelle impostazioni, verrà visualizzato un menu a tendina con le sottocategorie come voci del menu.

Nota: Dovrai passare il quinto elemento, ovvero (Etichetta intestazione mobile), come vuoto se non vuoi utilizzarlo.

Grazie per aver sponsorizzato questo progetto @outofthebox.

4 Mi Piace

Ottimo lavoro @fzngagan!! Il team di Pavilion è eccezionale.

2 Mi Piace

È possibile evidenziare non solo lo slug, ma anche .select-kit .select-kit-row.is-highlighted?

Credo che sarebbe più gradevole per gli occhi.

Concordo con i commenti: il tuo lavoro è fantastico. Stavo dando un’occhiata al sito di Pavilion e sto testando molte cose.

Spero che presto lavoreremo insieme su alcune idee che abbiamo per la nostra community :ok_hand:

Per prima cosa, grazie per questo fantastico componente.

Penso che sarebbe più bello se ci fosse un po’ più di spazio bianco tra il titolo dell’argomento e il badge della categoria nella visualizzazione elenco argomenti. È possibile ottenere questo all’interno del componente? Sembra che le scatole siano un po’ più grandi della visualizzazione a scatole predefinita, creando una vista dolorosa per alcuni perfezionisti, lol.

La visualizzazione mobile è migliore rispetto a quella desktop:

Questo funziona ancora con gli ultimi test superati? Se sì, hai ancora la documentazione archiviata da qualche parte? @angus

Ho incollato la documentazione nell’OP sopra. Fammi sapere se non funziona.

1 Mi Piace

Fantastico! Soprattutto la parte del gradiente è stata fondamentale per raggiungere il mio obiettivo! Grazie mille!

1 Mi Piace

Qualcuno sta ancora usando questo TC e magari ha trovato una soluzione per il seguente problema?
Su 2.9.0.beta9 e beta10 il TC fa scomparire la meta della categoria dal campo a discesa delle categorie e dall’elenco degli argomenti.

Il log del forum è vuoto, l’unica cosa nel log della console è:

[THEME 190 'Category Highlighter'] Per evitare errori nei test, aggiungi una chiave `pluginId` alla tua chiamata `modifyClass`. Ciò garantirà che la modifica venga applicata una sola volta. 3 plugin-api.js:19